-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patharchiveExample.sh
executable file
·148 lines (112 loc) · 3.17 KB
/
archiveExample.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#!/bin/sh
# use current path for build
SCRIPT_BASE=`pwd`
# path where locate your project
PROJECT_PATH="/Users/apple/Documents/projectpath"
# workspace name
PROJECT_WORKSPACE="MyProject.xcworkspace"
# where to find your workspace
PROJECT_WORKSPACE_PATH="$PROJECT_PATH/$PROJECT_WORKSPACE"
# project file name
PROJECT_FILE_NAME="MyProject.xcodeproj"
# project file path
PROJECT_FILE_PATH="$PROJECT_PATH/$PROJECT_FILE_NAME"
# target to build
TARGET_NAME="TargetNameInXcode"
# scheme name to build
SCHEME_NAME="SchemeNameInXcode"
# out put app name also prefix for log files
APP_NAME="IPA file name"
# configuration name Release or Debug
CONFIGURATION_NAME="Release"
# tool for modify plist file
PB="/usr/libexec/PlistBuddy"
# time stamp for current build
TIMESTEMP=`date +%Y%m%d%H%M%S`
# use timestamp for build path you can change later
BUILD_DIR="archives/$APP_NAME$TIMESTEMP"
# you can change BUILD_PATH to your own path
#BUILD_DIR="archives/MyApp20151029010836"
cd ..
if [ ! -d $BUILD_DIR ]; then
mkdir -p $BUILD_DIR
fi
cd $BUILD_DIR
BUILD_PATH=`pwd`
LOG_PATH=$BUILD_PATH/log
if [ ! -d $LOG_PATH ]; then
mkdir -p $LOG_PATH
fi
DSYM_PATH=$BUILD_PATH/dsyms
if [ ! -d $DSYM_PATH ]; then
mkdir -p $DSYM_PATH
fi
# build target path
TARGET_PATH=$BUILD_PATH/$TARGET_NAME
# if you want update cocoapods
UPDATE_POD=false
# import build script
. $SCRIPT_BASE/buildAndArchive.sh
echo "\033[33mInfo: Start $APP_NAME Build\033[0m"
declare -i ret
ret=0
# build package
buildPackage
ret=$?
# package with same output you can call packageApp many times
# package first package
# profile file name
PROFILE_NAME="profilename.mobileprovision"
# profile path
PROFILE_PATH=$SCRIPT_BASE/$PROFILE_NAME
# developer name use user id eg.
# DEVELOPER_NAME="CCF342CZ34"
DEVELOPER_NAME=""
# ipa name
TARGET_IPA_NAME=$APP_NAME
# package app
if [ $ret -eq 0 ]; then
packageApp
ret=$?
fi
FILEPATH1=$BUILD_PATH/$TARGET_IPA_NAME.ipa
# package second package you can change provisioning profile and sign user
# profile file name
PROFILE_NAME="profilename.mobileprovision"
# profile path
PROFILE_PATH=$SCRIPT_BASE/$PROFILE_NAME
# developer name use user id eg.
# DEVELOPER_NAME="CCF342CZ34"
DEVELOPER_NAME=""
# ipa name
TARGET_IPA_NAME=$APP_NAME.copy
# package app
if [ $ret -eq 0 ]; then
packageApp
ret=$?
fi
FILEPATH2=$BUILD_PATH/$TARGET_IPA_NAME.ipa
open $BUILD_PATH
echo
echo "\033[32mBuild script path: $SCRIPT_BASE\033[0m"
echo "\033[32mLogging path: $LOG_PATH\033[0m"
echo "\033[32mDSYM file path: $DSYM_PATH\033[0m"
echo
if [ $ret -eq 0 ]; then
echo "All has been done!!! Have fun!!!🍻 "
else
echo "\033[91m😱 😱 😱 Build Failed!!!!!!\033[0m"
fi
echo
# upload every package to pyger.com for Ad-hoc user install
echo "\033[33mInfo: Uploading $FILEPATH1\033[0m"
uploadPgyer $FILEPATH1 "password" "_api_key" "uKey">$LOG_PATH/$APP_NAME.upload.log
if [[ $? -ne 0 ]]; then
echo "\033[91mUpload $FILEPATH1 failed try it later"
fi
echo "\033[33mInfo: Uploading $FILEPATH2\033[0m"
uploadPgyer $FILEPATH2 "password" "_api_key" "uKey">$LOG_PATH/$APP_NAME.copy.upload.log
if [[ $? -ne 0 ]]; then
echo "\033[91mUpload $FILEPATH2 failed try it later"
fi
echo "\033[33mInfo: Upload finished!\033[0m"