无法获得令牌,错误:错误域= NSCocoaErrorDomain代码= 3000"无效' aps-environment'找到应用程序的权利字符串"

时间:2015-04-03 22:39:38

标签: ios notifications push-notification apple-push-notifications provisioning-profile

现在已经搁置了这个问题很长一段时间了。试图运行以下行:

[application registerForRemoteNotifications];

并收到错误

(via: - (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error
{
    NSLog(@"Failed to get token, error: %@", error);
})

2015-04-03 16:06:42.753 TownHall[696:169453] Failed to get token, error: Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' entitlement string found for application" UserInfo=0x17426a1c0 {NSLocalizedDescription=no valid 'aps-environment' entitlement string found for application}

Tried some of the stuff with the following associated post http://stackoverflow.com/questions/10987102/how-to-fix-no-valid-aps-environment-entitlement-string-found-for-application but little luck. 

这包括: 1)重新创建配置文件 2)重新创建ID并检查它是否匹配并启用了推送 3)清洁和重建等 4)创建新证书 5)用Xcode刷新>偏好>帐户>查看详细信息(选择您的帐户)

想知道是否有人对此有任何解决方案?

很高兴分享人们可能会发现解决此问题的任何其他信息。

非常感谢您的帮助!

3 个答案:

答案 0 :(得分:15)

转到Capabilities部分下的目标,您会发现此错误在发光。 XCode可能会建议您自动修复它。enter image description here

您必须在项目中创建两个权利(AppName_Debug.entitlements和AppName_Release.entitlements)文件,其中包含以下内容: AppName_Debug.entitlements

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
 "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
      <dict>
        <key>aps-environment</key>
          <string>development</string>
      </dict>
</plist>

AppName_Release.entitlements

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
 "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
      <dict>
        <key>aps-environment</key>
          <string>production</string>
      </dict>
</plist>

在适当的选项下,在Build Settings中的Code Signing Entitlments下添加这两个文件。

enter image description here

答案 1 :(得分:2)

您没有有效的配置文件或团队没有

答案 2 :(得分:0)

如果看到错误“找不到应用程序的授权字符串”,请在如上所述的授权文件中添加aps环境和开发键值对