最近在不连网的机器上,尝试打包unity生成的xcode工程,遇到一些问题,记录如下;
xcode本身需要登录才能执行打包,签名等工作,而使用xcodebuild 命令行,就可以只使用证书和私有钥匙,以及provision 文件进行自动打包。
xcode 7.3.1最新版本
xcodebuild clean archive -archivePath xxx.xcarchive -scheme Unity-iPhone
在Unity生成的xcode工程中,执行上面的命令将会生成一个 xxx.xcarchive 文件,也就是相当于xcode的archive命令生成的文件。 包括:dsym 符号表, xxx.app 可以上传的程序
xcodebuild -verbose -exportProvisioningProfile "provisionFileName" -exportArchive -exportFormat ipa -archivePath xxx.xcarchive -exportPath xxx.ipa CODE_SIGN_IDENTITY="iPhone Developer:xxxxxx (xxxx) "
将上一行命令生成的xcarchive 签名打包为一个ipa。
如果是越狱机器,可以直接将 xxxx.app 拷贝到一个 Payload 文件夹里面,然后zip压缩即可, 对于非越狱机器,需要对每个文件签名,才能安装。
其中CODE_SIGN是证书类型,根据要打包 开发者包 还是 发布的adhoc 或者 store商店包,选择开发证书或者发布证书。这个可以在自己的keychain中看到证书名字。
provisionFile 是本机的prov文件,从苹果的 developer.apple.com 网站下载下来,双击安装,然后 在参数里面写入 prov文件名字即可。
通过这两个命令可以实现 编译和打包,时间比较久,因为编译时从头开始编译的。
如果换证书签名,只需要执行下面那步即可。
快速发布越狱版本,可以直接调用xcodebuild 即可, 生成出来的xxx.app 可以手动放到一个Payload 名字文件夹即可, 然后zip -r 压缩打包即可。