实现Xcode 9自动化打包
2017-11-30 本文已影响1400人
3697d6c42285
自动化打包脚本
#!/bin/sh
#需要接受3个参数 1、scheme名 2、工程目录 3、工程名字
#project目录
PROJECT_PATH=$1
#project名称
PROJECT_NAME=$2
#scheme名称
SCHEME_NAME=$3
#现在时间(做文件夹名称使用)
DATE=`date +%Y%m%d%H%M`
#归档文件地址
ARCHIVE_PATH=$PROJECT_PATH/$DATE/$SCHEME_NAME
#通过archive归档出对应的xcarchive文件
#对应步骤:
#1、清理工程
#2、归档工程
#3、工程名称
#4、设置工程Scheme
#5、设置Debug或者Release模式
#6、归档输出地址
#7、特殊设置,可忽略,为了让过程更清晰
xcodebuild clean \
archive \
-project "$PROJECT_PATH/$PROJECT_NAME" \
-scheme "$SCHEME_NAME" \
-configuration "Release" \
-archivePath "$ARCHIVE_PATH" \
| xcpretty
echo "--------------------------------------"
#通过归档文件打包出对应的ipa文件
#对应步骤:
#1、打包命令
#2、归档文件地址
#3、ipa输出地址
#4、ipa打包设置文件地址
xcodebuild -exportArchive \
-archivePath "$ARCHIVE_PATH.xcarchive" \
-exportPath "$PROJECT_PATH/$DATE" \
-exportOptionsPlist "$PROJECT_PATH/ExportOptions.plist"
open $PROJECT_PATH
前排提示:需要确保工程在没使用脚本的情况下也可以成功的进行归档与打包,脚本只是为了简化过程
遇到过的问题
-
xcodebuild: error: The flag -scheme is required when specifying -archivePath but not -exportArchive.
问题在于当你设置了 archivePath 的时候,必须要设置对应的是哪一个 scheme 。否则的话,命令不知道是对哪个 scheme 进行归档操作,无法继续进行 -
This project contains no schemes.
通过命令xcodebuild -list
查找工程中包含有哪些 scheme 的时候,提示该工程没有 scheme。
解决方法:
1、打开管理 scheme 界面
进入管理 scheme
2、打开对应的 Shared 开关
scheme 管理界面
3.exportOptionsPlist 内容
如果不确定exportOptionsPlist中的内容有哪些,那么可以通过 Xcode 打包来获取对应的.plist的内容,再作删减等处理。
1、Export 对应的Archive
2、选择 Development (其他的暂时没试过)
打包界面
3、 然后选择对应的配置,一直 next 直到打包出来就好
4、打包出来之后,在文件夹中会有多个文件,ExportOptions.plist即为所需的.plist文件