最近在使用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。
具体的操作步骤如下。
-
使用
XcodeArchive一个新的版本 -
在
Organizer中找到刚刚Archive出来的版本,选择Export。 -
选择你要导出的
ipa类型,如果你需要不同版本,可以重复该流程,就可以得到其他类型所需要的信息了。 -
导出
ipa到目录 -
最终导出的目录下会有
4个文件,除了ipa文件还有一个ExportOptions.plist文件,这个文件就是我们使用xcodebuild -exportArchive命令时,-exportOptionsPlist参数需要指定的plist文件。
我们用这个新的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><none></string>
</dict>
</plist>
<推广> 综合计算器 是一款多功能计算器,可以计算房贷、个税、年终奖、利息、BMI指数以及大小金额的计算器,再也不用下载多个计算器找来找去了。还支持实时更新贷款利率哦~。