提交App Store或者Export导出ipa包的时候,报错,主要信息及截图如下,附解决方案。
None of the valid provisioning profiles allowed the specified entitlements:beta-reports-active,aps-environment
error.png原因:用xcode8和xcode7编译了同一份代码,用xcode8编译以后就会多一些配置文件,最明显的就是多了一个MyApp.entitlements文件
解决方案:在打包的时候需要将如下图箭头所指的值修改为production.
About Entitlements
entitlements###
n.授权,有资格( entitlement的名词复数 ); 有权得到的东西;
N. authorized, qualified (entitlement plural noun); the right to get something;
在此,我们把它统称为“授权文件”以免造成混淆。
以下是苹果开发文档对此的介绍,以及个人对其做出的一些理解。
Set entitlement values in order to enable iCloud, push notifications, Apple Pay, and App Sandbox. Each entitlement has a default value, which in most cases disables the capability associated with the entitlement. When you set an entitlement, you are overriding the default by providing an appropriate key-value pair.
设置“授权文件”的值是为了启用iCloud,苹果推送通知,支付,和应用程序沙盒。每个权利都有一个默认值,在大多数情况下,禁用与权利相关的能力。设置权限时,通过提供适当的键值对来重写默认值。
推送功能在项目中使用率高,问题也大都再此,于是乎,果断拿推送说事儿。
Xcode 8 中,打开推送开关,就会自动生成此文件,而且提交的时候也必须有这个。
下面看一下
You set a value for the push notification entitlement by way of your development and distribution provisioning profiles, as described in Local and Remote Notification Programming Guide.
the provisioning portal assigns a value of development or production to the key.
对于iOS 来说,设置这个"授权文件"的值取决于你 provisioning profiles的类型,那么Value只有两个 development or production .
结论:
当我们遇到这个问题的时候解决顺序,
- 1.先查看"授权文件"即entitilements 的Value是否与配置文件匹配
- 2.如果如果匹配,接下来就检查配置文件的问题等。
网友评论