Xcode9下自动化编译错误

617 阅读2分钟

最近在使用CI平台打包时突然失败了,查看日志后发现是在exportArchive时失败了。之前一直都是好好地,升级了Xcode之后突然就不行了,提示如下信息:

error: exportArchive: "AppName.app" requires a provisioning profile with the Push Notifications and App Groups features.
Error Domain=IDEProvisioningErrorDomain Code=9
"AppName.app" requires a provisioning profile with the Push Notifications and App Groups features." UserInfo={NSLocalizedDescription="AppName.app" requires a provisioning profile with the Push Notifications and App Groups features., NSLocalizedRecoverySuggestion=Add a profile to the "provisioningProfiles" dictionary in your Export Options property list.}

查阅资料后发现,在Xcode9下,xcodebuild需要配置更多的信息才能导出ipa,最主要的一个就是provisioningProfiles。 具体的操作步骤如下。

  1. 使用Xcode Archive一个新的版本

    1.png

  2. Organizer中找到刚刚Archive出来的版本,选择Export

    2.png

  3. 选择你要导出的ipa类型,如果你需要不同版本,可以重复该流程,就可以得到其他类型所需要的信息了。

    3.png

  4. 导出ipa到目录

    4.png

  5. 最终导出的目录下会有4个文件,除了ipa文件还有一个ExportOptions.plist文件,这个文件就是我们使用xcodebuild -exportArchive命令时,-exportOptionsPlist参数需要指定的plist文件。

    5.png

我们用这个新的plist文件就可以了。如果你需要打其他类型的ipa,可以重复上述步骤,在第三步重新选择即可。你也可以按照刚才导出的plist自己修改。

新的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>compileBitcode</key>
	<false/>
	<key>method</key>
	<string>ad-hoc</string>
	<key>provisioningProfiles</key>
	<dict>
		<key>com.tsing.calculate</key>
		<string>calculate_adhoc</string>
	</dict>
	<key>signingCertificate</key>
	<string>iPhone Distribution</string>
	<key>signingStyle</key>
	<string>manual</string>
	<key>stripSwiftSymbols</key>
	<true/>
	<key>teamID</key>
	<string>CL32FD34</string>
	<key>thinning</key>
	<string>&lt;none&gt;</string>
</dict>
</plist>

扫码关注公众号

<推广> 综合计算器 是一款多功能计算器,可以计算房贷、个税、年终奖、利息、BMI指数以及大小金额的计算器,再也不用下载多个计算器找来找去了。还支持实时更新贷款利率哦~。