redexpress的收藏iOS点点滴滴iOS Developer

实现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

前排提示:需要确保工程在没使用脚本的情况下也可以成功的进行归档与打包,脚本只是为了简化过程


遇到过的问题

  1. xcodebuild: error: The flag -scheme is required when specifying -archivePath but not -exportArchive.
    问题在于当你设置了 archivePath 的时候,必须要设置对应的是哪一个 scheme 。否则的话,命令不知道是对哪个 scheme 进行归档操作,无法继续进行
  2. 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文件
上一篇下一篇

猜你喜欢

热点阅读