前段时间由于公司产品推广需要多渠道自动打包,故网上查了很多资料,大部分说的都不够详细,故在这里总结下,方便他人。这里主要介绍2种自动打包方式,一种是通过xcodebuild和xcrun。另一种是解压文件->修改文件->签名->压缩文件。
第一种打包方式主要包含以下几个步骤:
1、证书拷贝:
打开钥匙串把你打包使用的证书(一般都是发布证书)从登录目录拷贝到系统目录。(这一步非常重要不然签名会失败)
2、自己手动生产一个channel.plist文件,放到工程中,这里主要用来保存channelID的。
3、sh脚本:(终端执行sh脚本是先cd到工程文件目录下)
for ((i=1;i<=10944;i++))
do
xcodebuild -target youtarget clean
/usr/libexec/PlistBuddy -c “set :channelID ${i}” channel.plist文件路径 #修改channelID
xcodebuild -target youtarget -configuration release -sdk iphoneos build #打包
xcrun -sdk iphoneos PackageApplication -v “工程文件目录下/build/Release-iphoneos/6p.app” -o “保存的文件目录/oola_${i}.ipa” #生成ipa
done
第二种打包方式:
1、证书拷贝:
打开钥匙串把你打包使用的证书(一般都是发布证书)从登录目录拷贝到系统目录。(这一步非常重要不然签名会失败)
2、自己手动生产一个channel.plist文件,放到工程中,这里主要用来保存channelID的。
3、手动生产一个entitlements.plist和你的应用.ipa在同一目录下
key:application-identifier value:证书id.你的应用的bundleID
key:aps-environment value:production #推送
4、sh脚本
cd “你的应用.ipa文件路径”
unzip “你的应用.ipa文件”
for (i=1;i<2001;i++)
do
cd Payload
cd “解压后Payload目录项.app文件”
/usr/libexec/PlistBuddy -c “set :channelID ${i}” channel.plist文件路径 #修改channelID
cd ../..
rm -rf Payload/你的app.app/_CodeSignature
cp “你的应用配置文件.mobileprovision” Payload/你的应用.app/embedded.mobileprovision
/usr/bin/codesign -f -s “你的证书” –entitlements entitlements.plist Payload/你的应用.app
zip -r “{你的新的应用}_{i}.ipa” Payload #打成其他渠道的包
mv “{targetName}_{i}.ipa” “新的文件存放路径”
done
rm -rdf Payload