1. 自动打包并发布应用
1.1. xcodebuild打包
1.1.1. 各参数使用说明
$ man xcodebuild
查看xcodebuild
所有用法
-workspace
指定workspace
.
必须和“-scheme”一起使用,构建该workspace下的一个scheme。
-project
指定project
.
当根目录下有多个project的时候,必须使用“-project”指定project,
-target
指定target
-scheme
指定scheme. 和“-workspace”一起使用,指定构建的scheme。
-showsdks
列出可用的SDK
$ xcodebuild -showsdks
-sdk
设置SDK
-sdk iphoneos9.2
-list
列出所有可用的Targets
、Build Configurations
、Schemes
// 列出默认Project的
$ xcodebuild -list
// 列出指定workspace的
$ xcodebuild -list -workspace <NAME>.xcworkspace/
-configuration
编译的方式,Release,Debug,Adhoc 等
-destination
generic/platform=iOS
ONLY_ACTIVE_ARCH
ONLY_ACTIVE_ARCH=NO
1.1.2. 构建行为
- clean:清除build目录下的
- build: 编译
- test: 测试某个scheme,必须和"-scheme"一起使用
- archive:打包,必须和“-scheme”一起使用
1.1.3. scheme
用到的scheme都要设置成share
1.1.4. 编译
$ xcodebuild -workspace ${WORKSPACE_NAME}.xcworkspace -scheme ${SCHEME_NAME} -sdk ${SDK_VERSION} -configuration ${CONFIGURATION} ONLY_ACTIVE_ARCH=NO build
1.1.5. 打包
clean
$ xcodebuild -workspace ${WORKSPACE_NAME}.xcworkspace -scheme ${SCHEME_NAME} -sdk ${SDK_VERSION} -configuration ${CONFIGURATION} ONLY_ACTIVE_ARCH=NO clean
archive
导出.xcarchive该文件
$ xcodebuild -workspace ${WORKSPACE_NAME}.xcworkspace -scheme ${SCHEME_NAME} -sdk ${SDK_VERSION} -configuration ${CONFIGURATION} -destination ${ARCHIVE_DESTINATION} -archivePath ${APP_DIR}/${APP_NAME}.xcarchive ONLY_ACTIVE_ARCH=NO archive
export ipa
导出ipa文件
-exportProvisioningProfile
描述该文件名称,描述该文件<key>Name</key>
对应的值
-exportOptionsPlist
plist文件路径。
$ xcodebuild --help
plist文件参数
eg:
$ TIMESTAMP=`date "+%Y_%m_%d_%H_%M_%S"`
$ IPA_PATH_NO_SUFFIX=${APP_DIR}/${APP_NAME}_${TIMESTAMP}
$ xcodebuild -exportArchive -archivePath ${APP_DIR}/${APP_NAME}.xcarchive -exportPath ${IPA_PATH_NO_SUFFIX} -exportProvisioningProfile "${PROFILE_NAME}" -exportFormat ipa -verbose
1.2. 发布到fir.im
1.2.1. 安装cli
https://github.com/FIRHQ/fir-cli/blob/master/README.md
$ ruby -v # > 1.9.3
$ gem install fir-cli
1.2.2. 发布ipa
fir publish ${IPA_PATH_NO_SUFFIX}.ipa -T ${FIR_TOKEN} || failed "fir publish"
1.3. 常见问题
1.3.1. Q1
** ARCHIVE FAILED **
The following build commands failed:
CompileC ***** normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)
1.3.2. A1
直接用Archive
:Xode
> Product
> Archive
,可以提示具体的代码错误。
1.4. 实例
1.5. 相关资料
- xcodebuild's new exportOptionsPlist flag
- 构建iOS持续集成平台(一)——自动化构建和依赖管理
- xcodebuild详细的命令行
- 使用 xcodebuild 从 archive 导出 ipa
- http://blog.octo.com/en/automating-over-the-air-deployment-for-iphone/
- https://fir.im/
- http://blog.reohou.com/how-to-export-ipa-from-archive-using-xcodebuild/
- http://www.tuicool.com/articles/FBbmEn
- http://magicalboy.com/xcodebuild-usage/