前言
之前写个一个自动打包脚本
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 + R
、 Command + B
都会打开一个文件夹
有点讨厌~
上面说了,格式不能错!一个空格都不行
可以去掉一个空格,让脚本执行没有效果
就不会每次打一个文件夹了
比如,把
if [ "${CONFIGURATION}" = "Debug" ]
改成这样
if ["${CONFIGURATION}" = "Debug" ]
等到真正要打包的时候
再改回来
就OK了!
问题2
切换账号打包,导致少了文件,无法安装
原因:调试证书未配置好
Build Setting -> Provisioning Profile
详细看图: