1. 程式人生 > >iOS 測試包打包自動化 筆記

iOS 測試包打包自動化 筆記

前言

之前寫個一個自動打包指令碼
https://github.com/xjh093/iOSAutoPacking

利用終端操作
還是得手動操作幾步

有沒有一步就搞定的呢?
有!


正文

真正 commond + B 打好測試包。(提前配置好除錯證書等…)

Build Phases 新增一個指令碼 New Run Script Phases

輸入以下指令碼:(格式不能錯!一個空格都不行的)

if [ "${CONFIGURATION}" = "Debug" ] && [ -d "${BUILD_ROOT}/${CONFIGURATION}-iphoneos" ]
then
cd ${BUILD_ROOT}/${CONFIGURATION}-iphoneos
rm -rf Output
mkdir Payload
mkdir Output
cp -rf ${PROJECT_NAME}.app Payload/${PROJECT_NAME}.app
zip -r Output/${PROJECT_NAME}.ipa Payload
rm -rf Payload
open ./Output
fi

符號表 dSYM

如何生成對應的符號表?

需要先設定一下:
Build Setting
1. Debug Information Format -> DWARF with dSYM File
2. Generate Debug Symbols -> YES

配合指令碼語句
cp -rf ${PROJECT_NAME}.app.dSYM Output/${PROJECT_NAME}.app.dSYM
rm -rf ${PROJECT_NAME}.app.dSYM

就可以了!

完整的指令碼:

if [ "${CONFIGURATION}" = "Debug" ] && [ -d "${BUILD_ROOT}/${CONFIGURATION}-iphoneos" ]
then
cd ${BUILD_ROOT}/${CONFIGURATION}-iphoneos
rm -rf Output
mkdir Payload
mkdir Output
cp -rf ${PROJECT_NAME}.app Payload/${PROJECT_NAME}.app
zip -r Output/${PROJECT_NAME}.ipa Payload
rm -rf Payload
cp -rf ${PROJECT_NAME}.app.dSYM Output/${PROJECT_NAME}.app.dSYM
rm -rf ${PROJECT_NAME}.app.dSYM
open ./Output
fi

問題1

每次 Command + RCommand + B 都會開啟一個資料夾
有點討厭~

上面說了,格式不能錯!一個空格都不行
可以去掉一個空格,讓指令碼執行沒有效果
就不會每次打一個檔案夾了

比如,把

if [ "${CONFIGURATION}" = "Debug" ] 

改成這樣

if ["${CONFIGURATION}" = "Debug" ] 

等到真正要打包的時候
再改回來
就OK了!

問題2

切換賬號打包,導致少了檔案,無法安裝
原因:除錯證書未配置好
Build Setting -> Provisioning Profile

詳細看圖:
在這裡插入圖片描述


參考

更多細節:
https://www.jianshu.com/p/d1e7dd688df7