标签:des style 代码 com 文件 问题 si it 方法 由于公司有批量打包的需要,只是渠道号不一样,网上搜索一番,大致有两个方式:a) 从源程序一次性打出所有渠道的ipa包,大概的思路就是利用脚本循环执行打包过程,而每次打包前都通过脚本修改项目中存放渠道号的文件为当前循环的最新渠道号,让后逐个打包。b) 提供一个ipa格式的母包 从母包生成其它所有的渠道包,可能你会问:用一个包生成其他的包可行么?? 通过从母包打出其他渠道的包这种方法:得到以下好处 i. 降低了rd ,qa的工作量。 ii. 让测试发布程序时的风险得到了控制。 iii. 提高了打包发布工作效率。(几十个包 只需短短的几分钟)。 iv. 提高了自动化。 v. 不依赖mac 以及xcode环境 直接在linux 下即可完成 从母包生成其它包 具体代码如下:(可以用xcode 创建.sh文件)
#!/bin/sh
CONFIG_ROOT_PATH="/Users/hezhujin/Desktop/"#.ipa母包的路径 cd $CONFIG_ROOT_PATH
sourceipaname="wgc_ios.ipa" #ipa母包的名字 appname="wgc_ios.app" #解压后Payload目录项.app文件名需要根据自己的项目修改 distDir="/Users/hezhujin/Desktop/Qa" #打包后文件存储目录 rm -rdf "$distDir " mkdir "$distDir" unzip $sourceipaname #解压母包文件
for ((i=1001;i<1011;i++)) do cd Payload cd $appname targetName="wgc_ios" /usr/libexec/PlistBuddy -c "set :kChannelNumber ${i}" Info.plist #修改Info.plist文件的kChannelNumber 对应的值,Info.plist中必须先存在这个Key 才能修改 cd ../.. zip -r "${targetName}_${i}.ipa" Payload #打成其他渠道的包 mv "${targetName}_${i}.ipa" $distDir #移动打好的包到目标路径 done
rm -rdf Payload
可以直接把把编辑好的Script.sh 文件拖到终端上 回车 或者终端输入 ./Script.sh 遇到权限问题可以执行 chmod 777 Script.sh 以下是用数组形式循环指定的渠道号 非递增形式 #!/bin/sh CONFIG_ROOT_PATH="/Users/hezhujin/Desktop/" cd $CONFIG_ROOT_PATH
sourceipaname="wgc_ios.ipa" appname="wgc_ios.app" #加压后Pauload目录项.app文件名需要根据自己的项目修改 distDir="/Users/hezhujin/Desktop/Qa" #打包后文件存储目录 rm -rdf "$distDir " mkdir "$distDir" unzip $sourceipaname #解压母包文件
kChannelNumber=("aaa" "bbb" "ccc") for ((i=0;i<${#kChannelNumber};i++)) do cd Payload cd $appname
ipafilename=${kChannelNumber[$i]} targetName="wgc_ios" /usr/libexec/PlistBuddy -c "set :kChannelNumber ${kChannelNumber[$i]}" Info.plist
cd ../.. zip -r "${targetName}_${ipafilename}.ipa" Payload #打成其他渠道的包 mv "${targetName}_${ipafilename}.ipa" $distDir done rm -rdf Payload
以下是不建议的方法:每次包都是重新编译的方法
#!/bin/sh
# Script.sh # shell # # Created by hezhujin on 15/3/4. # Copyright (c) 2015年 hezhujin. All rights reserved. #!/bin/sh CONFIG_ROOT_PATH="/Users/hezhujin/Desktop/wgc_ios"
cd $CONFIG_ROOT_PATH #循环数 CHANNELID=("aa" "bb" "cc") for ((i=0;i<${#CHANNELID};i++)) do #删除 rm -rf "/Users/hezhujin/Desktop/wgc_ios/build/" #清除 xcodebuild -target wgc_ios clean #修改plist /usr/libexec/PlistBuddy -c "set :CHANNELID ${CHANNELID[$i]}" /Users/hezhujin/Desktop/wgc_ios/wgc_ios/Info.plist #/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString 1.0.4" /Users/hezhujin/Desktop/wgc_ios/wgc_ios/Info.plist
#打包 xcodebuild -target wgc_ios -configuration Distribution -sdk iphoneos build #生成ipa xcrun -sdk iphoneos PackageApplication -v "/Users/hezhujin/Desktop/wgc_ios/build/Release-iphoneos/wgc_ios.app" -o "/Users/hezhujin/Desktop/wgc_ios/wgc_ios_${CHANNELID[$i]}.ipa"
done
|
|