1,解決問題:公司業務需求,因爲合作的App市場比較多,推廣IOS App時需要針對不同的市場提供不容的包(.ipa),用渠道號來區別,爲了提高效率和減少手工一個個修改渠道打包引入的bug,所以考慮引進自動化打包
2,自動化打包工具介紹:使用shell腳本,運行在Mac上,用終端運行即可。
思路:
a、先準備越獄包(例如test.ipa)。
b、解壓此越獄包,將生成Payload文件夾。
c、修改channel.txt文件中的渠道號,這個腳本是要求在你的項目目錄下有一個存放渠道的文本文件。
d、壓縮Payload文件夾,生成${channle}.ipa
3,配置自動化打包步驟:
下載工具包:http://download.csdn.net/detail/guitk/8345061
解釋:
1,先用xcode生成一個.ipa的母包,這裏命名test.ipa;
2,在桌面新建目錄test_jail(這個打包目錄是放在桌面上,可以根據情況更改目錄);
3,把test.ipa放到test_jail目錄下,同時在該目錄下新建文件channelList.txt,該文件是存放你要分發包的所有渠 道,每行只放一個渠道;
4,test_jail目錄下創建一個目錄package,用來存放批量生成的渠道包;
5,test_jail目錄創建一個文件batch.sh,用來存放打包腳本
6,執行腳本:在終端cd到test_jail目錄, 直接 sh batch.sh ,腳本開始運行,等到來年秋天,你就可以在package目錄下豐收一堆ipa了。
腳本解釋:
#!/bin/sh
#/xing是你的電腦用戶目錄
sourceipaname="/Users/xing/Desktop/test_jail/test.ipa"
#你的項目在xcode左側現實的項目名
appname="testapp.app"
#批量生成的包存放的目錄
distDir="/Users/xing/Desktop/test_jail/package/"
version="2.5"
#解壓母包
unzip $sourceipaname
#循環渠道列表
for line in $(cat channelList.txt)
do
ipafilename=`echo $line|cut -f1 -d':'`
echo "ipafilename=$ipafilename"
#targetName=`echo tabletest_${version}_${ipafilename}`
targetName=`echo ${ipafilename}`
echo "ipafilename =$ipafilename"
cd Payload
cd $appname
#channel.txt是你項目中存放渠道的一個文件,這也就是我們費勁心機要修改的東東
echo "$ipafilename" > channel.txt
cd ../..
#壓縮
zip -r "${targetName}.ipa" Payload
mv "${targetName}.ipa" $distDir
rm
done
#清理現場
rm -rf Payload
echo 刪除打包痕跡
echo 全部完成