所以我有一个名为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
答案 0 :(得分:232)
答案 1 :(得分:103)
我解决了这个问题:
再试一次!
来源:
答案 2 :(得分:56)
答案 3 :(得分:19)
此类问题是由于当前的Provisioning Profile不包含APNS信息,因为在创建APNS证书之前创建了Provisioning Profile。
因此,要解决此问题,请创建一个新的Provisioning Profile&amp;在Xcode中选择Provisioning Profile。那你就完成了。
此外,当您添加推送时,我相信您已经更新了钥匙串中的证书。
答案 4 :(得分:3)
出于某种原因,魏的解决方案对我不起作用。单击修复权利时,Xcode生成了两个文件但仍然无法正常运行,实际上生成的权利文件为空。
这显然是由该项目的PRODUCT_NAME造成的,包括空格和“ä”和“ö”字母。将其更改为仅包含英文字母的简短版本后,Wei的修复工作正常。
答案 5 :(得分:3)
关于Xcode 9,有些答案已经过时或不完整,无法解决此特定问题。
这是我要遵循的步骤:
(
要在开发过程中测试您的应用,您需要提供配置文件以进行开发,以授权您的设备运行尚未在App Store中发布的应用。
答案 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)