升级Xcode后Cordova应用编译失败(错误70):需推送通知配置文件
解决Cordova iOS构建时"requires a provisioning profile with the Push Notifications feature"错误
针对你使用VS2015 Remote Build、Cordova 6.5.0、Xcode 9.3.1遇到的归档导出失败问题,核心原因是你的iOS应用需要推送通知权限,但当前使用的描述文件(Provisioning Profile)未包含该功能,下面是一步步的解决方法:
1. 确认App ID已开启推送通知权限
- 登录苹果开发者后台,进入「Certificates, Identifiers & Profiles」页面
- 找到你的应用对应的App ID,点击编辑,确保Push Notifications选项已经开启(开发和生产环境都需要配置对应的证书)
- 如果之前未开启,开启后需要重新生成相关推送证书
2. 重新生成包含推送权限的描述文件
- 在开发者后台的「Provisioning Profiles」板块,选择对应环境(开发/Ad Hoc/生产)的描述文件
- 编辑该描述文件,确保关联的App ID已开启推送通知权限,然后重新生成并下载
- 将下载的描述文件安装到远程构建的Mac机器上(双击即可安装,或者通过Xcode的「Preferences -> Accounts」同步到本地)
3. 配置exportOptions.plist文件
错误提示明确要求在exportOptions.plist的provisioningProfiles字典中添加正确配置,你可以手动修改该文件:
找到远程构建目录下的exportOptions.plist(路径:/Users/UserName/.taco_home/remote-builds/taco-remote/builds/20190/cordovaApp/platforms/ios/exportOptions.plist),添加或修改如下内容:
<key>provisioningProfiles</key> <dict> <key>com.yourcompany.yourapp</key> <!-- 替换成你的应用Bundle ID --> <string>你的描述文件名称</string> <!-- 替换成刚生成的描述文件的完整名称 --> </dict>
也可以在Cordova构建时通过命令参数指定自定义的plist文件:
cordova build ios --device --exportOptionsPlist=path/to/your/custom-exportOptions.plist
4. 检查Cordova推送插件配置
如果你使用了cordova-plugin-push,确保插件已正确安装并配置:
- 执行
cordova plugin list确认插件已安装 - 检查config.xml中是否配置了正确的Bundle ID:
<widget id="com.yourcompany.yourapp" version="1.0.0" xmlns="http://www.w3.org/ns/widgets">
5. 验证Xcode项目的Capabilities配置
在远程构建的Mac上,打开生成的XXX.xcodeproj项目:
- 进入项目的「Capabilities」标签页
- 确保Push Notifications开关已打开,且Xcode自动关联了正确的描述文件
完成以上步骤后,清理之前的构建缓存,重新执行远程构建命令,应该就能解决归档导出失败的问题了。
内容的提问来源于stack exchange,提问作者Larry
相关产品推荐
相关产品推荐

