没有为应用商店中的应用找到有效的“aps-environment”权利字符串

时间:2014-12-05 20:18:43

标签: ios objective-c xcode app-store push

所以我有一个名为Dripper的应用程序,我在一个月前推出,然后几天前更新。该更新添加了推送通知和一些小调整。我使用开发配置文件使用sandbox-apn测试了它,并且工作得很好。然后我将东西切换到生产apn并将其推送到试飞,再次完美的工作。一旦我将更新推向市场并运行它,我注意到我没有在服务器上获得任何新的推送注册。我查看了设备的控制台日志,发现了这个:

  

Dec 4 17:55:15 Ina-touch-it coffco [1210]:注册远程通知
  12月4日17:55:15 Ina-touch-it SpringBoard [52]:没有效的' aps-environment'应用程序找到的权利字符串' Dripper' :( null)。通知将不会发送。
  12月4日17:55:15 Ina-touch-it coffco [1210] <Warning>: Failed to register with error : Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' entitlement string found for application" UserInfo=0x174270900 {NSLocalizedDescription=no valid 'aps-environment' entitlement string found for application}

我有点困惑,因为我认为production-apn在ad-hoc和app store构建之间的功能相同。

这是我的应用ID及其权利 - &gt; http://i.stack.imgur.com/uf4pB.png

以下是应用商店的配置文件 - &gt; http://i.stack.imgur.com/AYOV5.png

9 个答案:

答案 0 :(得分:232)

我通过启用推送通知功能来解决此问题。

点击.xcodeproj - &gt;能力 - &gt;启用推送通知

答案 1 :(得分:103)

我解决了这个问题:

  • 转到Xcode“偏好设置”
  • 转到“帐户”标签
  • 选择我的Apple ID,然后单击“查看详细信息”
  • 点击左下角的箭头以刷新
  • 点击“完成”

再试一次!

来源:

答案 2 :(得分:56)

您必须启用Target-&gt; capabilities-&GT;推送通知。我使用Xcode 8 enter image description here

遇到了这个问题

答案 3 :(得分:19)

此类问题是由于当前的Provisioning Profile不包含APNS信息,因为在创建APNS证书之前创建了Provisioning Profile。

因此,要解决此问题,请创建一个新的Provisioning Profile&amp;在Xcode中选择Provisioning Profile。那你就完成了。

此外,当您添加推送时,我相信您已经更新了钥匙串中的证书。

答案 4 :(得分:3)

出于某种原因,魏的解决方案对我不起作用。单击修复权利时,Xcode生成了两个文件但仍然无法正常运行,实际上生成的权利文件为空。

这显然是由该项目的PRODUCT_NAME造成的,包括空格和“ä”和“ö”字母。将其更改为仅包含英文字母的简短版本后,Wei的修复工作正常。

答案 5 :(得分:3)

关于Xcode 9,有些答案已经过时或不完整,无法解决此特定问题。

这是我要遵循的步骤:

1.创建配置文件

,但其指南非常清晰,here is the link

要在开发过程中测试您的应用,您需要提供配置文件以进行开发,以授权您的设备运行尚未在App Store中发布的应用。

  1. 导航到Apple Developer Member Center并登录。
  2. 导航到证书,标识符和配置文件。
  3. 在左上角的下拉菜单中,选择iOS,tvOS,watchOS(如果尚未选择),然后导航到Provisioning Profiles> All。
  4. 单击+按钮创建新的配置文件。
  5. 选择“ iOS应用开发”作为配置文件类型,然后单击“继续”。
  6. 在下拉菜单中,选择要使用的应用ID,然后单击“继续”。
  7. 选择上一步中选择的App ID的iOS开发证书,然后单击“继续”。
  8. 选择要包括在“配置文件”中的iOS设备,然后单击“继续”。确保选择要用于测试的所有设备。
  9. 为此配置文件输入名称(例如Firebase示例应用程序开发配置文件),然后单击“生成”。
  10. 单击“下载”将“配置文件”保存到Mac。
  11. 双击Provisioning Profile文件进行安装。

2。激活推送通知功能

  1. official manual转到项目编辑器 enter image description here
  2. 在功能部分,激活推送通知 enter image description here

答案 6 :(得分:1)

我花了一些时间来弄清楚导致无效的aps-environment权利错误的原因。 问题是XCode项目中有两个.entitlements文件。一个是platform / ios //。权利,另一个是platform / ios // Resources / .entitlements,只有当XCode配置为使用后者时,前一个文件中才会出现相应的权利。我手动更新了后一个文件,一切都开始工作了。 解决此问题的另一个选择是更改XCode使用的.entitlements。这可以在Build Settings - &gt;中完成。签名 - &gt;代码签名权利配置参数。

我不确定为什么XCode中有两个.entitlements文件。可能是cordova push插件创建了第二个(我正在开发混合Cordova移动应用程序)? .entitlements文件的正确位置是什么?

答案 7 :(得分:0)

我遇到了这个问题,并用第一个解决方案解决了。

但是,我失败了一次,因为我已经登录了两个Apple帐户。卸下一个后,一切正常。

答案 8 :(得分:0)

在更高版本的Xcode中,用于添加推送通知功能的导航略有变化。这里使用12.2

Xcode 12 add notifications capabilities instructions