获取令牌失败,错误信息:错误领域=NSCocoaErrorDomain,代码=3000,“应用程序中未找到有效的'aps-environment'授权字符串”。

12

我已经在这个问题上卡了很长时间了。尝试运行以下代码:

[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 https://dev59.com/X2gu5IYBdhLWcg3w6bKo but little luck. 

这包括: 1)重新创建配置文件 2)重新创建ID并检查其是否匹配并启用推送 3)清理和重建等操作 4)创建新的证书 5)通过Xcode > 首选项 > 帐户 > 查看详细信息(选择您的帐户)进行刷新

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

很乐意分享任何其他信息,以帮助解决此问题。

非常感谢提前的帮助!


请发布错误信息。 - vichevstefan
如果有更多信息的话,请在上面添加。错误消息只是标题... - John
如果在构建设置中有授权,请尝试将其删除。另一个可能的原因是,您可以使用iPhone配置实用程序删除除最新版本之外的所有授权。 - vichevstefan
我在哪里找到授权? - John
它在构建设置/代码签名部分,但如果您的项目不使用授权文件,那么我可以猜测是供应问题? - vichevstefan
3个回答

22

前往项目的Capabilities选项卡下的目标,您会发现这个错误正在闪烁。XCode可能会自动建议修复它enter image description here

您需要在项目中创建两个entitlements文件(AppName_Debug.entitlements和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>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>

将这两个文件添加到适当选项下的“构建设置”中的“代码签名授权”中。

enter image description here


2

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


如何检查配置文件是否有效? - Kaptain
与您的个人资料相关联的 .p12 文件无效,请在钥匙串中检查它。 - nahlamortada

0
如果您看到错误消息“找不到应用程序的授权字符串”,请像上面所述,在授权文件中添加aps-environment和development键值对。

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