IOS批量打包工具

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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章