摘要
在开发过程中,打包是一个相当繁琐、耗时且重复的一块工作,所以每个有志成为优秀的攻城狮人都在自动化解决打包的问题,今天我就说说自动化打包的第一步。
简介
xcodebuild是苹果发布自动构建的工具。它在一个xcode项目下能构建一个或者多个targets也能在workspace或者xcode项目上构建scheme.
用法说明
在终端输入man xcodebuild,查看文档,也可以查看官方文档
当你想构建一个xcode项目,在项目目录下运行xcodebuild
就可以了(目录下面包含projectname.xcodeproj
文件就行),如果目录下面有多个项目你需要用参数-project
指定一个项目。默认xcodebuild
命令会构建你第一个target的。当然,你也可以用targetname
指定。
要构建workspace,你必须指定-workspace
和-scheme
参数。
当然你可以以用就比如-version、-showsdks、-list等一些命令来获取一些项目相关的参数
Archive包
命令:
xcodebuild archive -workspace 项目名称.xcworkspace -scheme 项目名称 -configuration 构建配置 -archivePath archive包存储路径 CODE_SIGN_IDENTITY=证书 PROVISIONING_PROFILE=描述文件UUID
- -workspace 项目名称
- scheme 可以通过
xcodebuild -list
获取 - configration 一些参数,也可以通过
xcodebuild -list
获取,一般使用Debug
、Release
- archivePath archive后的路径
- CODE_SIGN_IDENTITY 证书的Inentity
-
PROVISIONING_PROFILE 描述文件UUID
证书Identity获取:
钥匙串访问->选中证书->上方的标题就是我们需要的Identity
获取Provisioning文件UUID
在xcode8.0以上,Provisioning文件的位置是:
/Users/用户名/Library/MobileDevice/Provisioning Profiles
使用security cms -D -i XXX.mobilprovision
查看描述文件的信息
生成ipa文件
xcodebuild -exportArchive -archivePath archive文件的地址.xcarchive -exportPath 导出的文件夹地址 -exportOptionsPlist "${EXPORT_PLIST}" CODE_SIGN_IDENTITY=证书 PROVISIONING_PROFILE=描述文件UUID
如果你不需要的指定证书和Provisioning文件,可以把上面的两个参数去掉,它会根据你的Xcode配置去匹配
- exportOptionsPlist 自己创建的plist文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>teamID</key>
<string>99WG99HF75</string>
<key>method</key>
<string>ad-hoc</string>
<key> compileBitcode</key>
<false/>
</dict>
</plist>
这里有三个参数:
teamID: 团队ID
method: ad-hoc或者app-store 如果找不到该参数,就会使用dev证书签名。。。
compileBitcode: 是否需要bitcode