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 全部完成