Xcode 8.1 "Provisioning profile doesn't include the aps-environment entitlement" Xcode 8.1“配置文件不包含aps-environment的授权”

29

有人遇到这个问题吗?

在解决KeyChain上的持久化问题和信息检索后,我启用了KeyChain共享功能。这是为了创建一个名为.entitlements的文件。

因此,当我要运行档案时,就会出现这个错误:

Check Dependencies:  
Provisioning profile doesn't include the aps-environment entitlement.  
Code signing is required for product type 'Application' in SDK 'iOS 10.1'

我正在使用OS El Capitan 10.11.6和Xcode 8.1。如果有人能帮忙,请帮忙一下。拜托了...

2
"aps环境"与苹果推送通知服务有关。 - vadian
10个回答

45

检查目标设备的 Capabilities 选项卡,确保在 Push Notifications 下方的 Add the Push Notifications entitlement to your entitlements file 一项中出现了勾选标记。如果出现错误,请进行修复,然后您就可以继续了。


在我的情况下,我只需要在开发者账户网站上接受一个新的协议,然后它就开始上传了,没有任何问题。 - user924

7

对于我的情况,Xcode 9

案例1:

在添加推送通知功能和授权文件之前,我使用了fastlane match

解决方案1:

再次运行fastlane match。它会检测到由于您添加了功能而使配置文件无效,并重新生成并推送到您的repo。

案例2:

在添加推送通知功能和授权文件之前,我使用了fastlane match

我手动在developer.apple.com帐户中重新生成了无效的配置文件。所以当我运行match时,我得到了错误信息

Provisioning profile '4d89b10f-568e-400d-a4e9-c96e0a51fd46' is not available on the Developer Portal for the user a@xyz.com Make sure to use the same user and team every time you run 'match' for this Git repository. This might be caused by deleting the provisioning profile on the Dev Portal

这也可能发生在您从Xcode中按下Fix Issue按钮时

解决方案2:

步骤1: 从您的certificates repo中删除无效的配置文件 enter image description here 步骤2: 运行

fastlane match

6

有时候你的Entitlements文件里会有两个“Apple Push Notifications Service”的条目。这似乎是XCode(即使在v8.2版本中)自己无法解决的一个bug。

用你喜欢的文本编辑器打开Entitlements文件。

我在我的Entitlements文件中发现了以下重复的条目:

<key>aps-environment</key>
<string>development</string>
<key>com.apple.developer.aps-environment</key>
<string>development</string>

尝试删除两个键值对中的一个。对我来说,删除第一个条目 aps-environment 解决了这个问题。


3

当您为应用程序添加推送通知时:

如果您已经拥有一个配置文件:

它将会变得无效。

您需要前往 developer.apple.com

编辑您的配置文件。

然后下载新创建的配置文件并双击相同的文件。

XCode 将自动替换上一个已失效的配置文件。


2

同时,请确认您在开发者门户(developer.apple.com)上创建的Apple ID已启用推送通知。我曾经遇到过这个问题,在启用应用程序ID的推送通知之前创建了配置文件,因此我不得不编辑应用程序ID。


2

目标 -> 能力

确保在您的entitlements文件中添加推送通知权限时,在Push Notifications下面显示一个勾号。

如果显示错误,则进行修复。

enter image description here


在我的情况下,我只需要在开发者账户网站上接受一个新的协议,然后它就开始上传而没有问题了。 - user924

2

我刚刚退出了Xcode并重新打开,问题得到了解决。Xcode版本为11.7(11E801a)。


1
这对我有用。重新启动后,Xcode安装了一些附加组件。通过选择自动管理登录,一切都正常工作了。谢谢!! - RKS

0

请确保您的项目Bundle Identifier与开发者门户网站上的App ID证书相匹配。


0

我将其添加到我的entitlements.plist中,问题解决了。

<key>aps-environment</key>
<string>production</string>

1
你能解释一下为什么这个可以解决错误信息吗? - Philip Adler

-2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接