iphone app APNS 无法获取设备令牌,错误:“没有为应用程序找到有效的‘aps-environment’权利字符串”
Posted
技术标签:
【中文标题】iphone app APNS 无法获取设备令牌,错误:“没有为应用程序找到有效的‘aps-environment’权利字符串”【英文标题】:iphone app APNS can't get device token, error: "no valid 'aps-environment' entitlement string found for application" 【发布时间】:2012-02-01 07:13:51 【问题描述】:生成的 XCode 错误:
"Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' entitlement string found for application" UserInfo=0x1c7a60 NSLocalizedDescription=no valid 'aps-environment' entitlement string found for application" error.
我已生成启用 APNS 的 App ID(开发版)。 并使用此 App ID 创建了一个新的配置文件,并将其安装在 XCode 中以供使用。
我认为问题出在“ios 团队供应配置文件:*”配置文件上。它的 AppID 是我几个月前生成的,没有启用 APNS,我不再使用它。 但问题是,我无法编辑/删除它!每次我通过在苹果门户中单击删除“删除”它时,它都会再次出现。
我认为问题出在这里的原因是因为我打开了这个provisioning profile来查看文本,我找不到aps-environment,而我可以在新创建的provisioning profile中找到这个标签启用 APNS 的新应用 ID。
我还在安装了我的应用程序的 iPhone 中包含了新的配置文件。但我担心这是因为旧的配置文件(即 iOS 团队配置文件:*)也总是出现在设备中。
或者可能是因为其他原因。希望有人能给我解决问题的想法。
【问题讨论】:
您也可以从 iPhone 中删除旧配置文件 从设置->配置文件只需选择要删除的配置文件,然后从配置文件的详细视图中单击删除配置文件按钮。 【参考方案1】:解释为启用推送通知的应用程序创建配置文件的Apple documentation 提到不能使用“通配符”应用程序 ID。这意味着团队供应配置文件不能用于签署正在注册推送通知的应用程序(团队供应配置文件中没有 aps-environment 密钥)。
您无法删除应用程序 ID。见this post。只要有一个“通配符”AppID,XCode 就会在您尝试刷新 XCode Organizer 中的配置文件时自动为该 ID 创建一个团队配置文件。所以看起来一旦创建了 XCode 中的 Team Provisioning Profile 就不可能摆脱它。
【讨论】:
【参考方案2】:我收到此错误消息一次,发现我没有在我的应用程序中分配新生成的配置文件
您可以通过转到您的项目构建设置来做到这一点。搜索 Code Signing Identity 并根据您的需要在 Debug 下设置上述开发配置文件并启用 APNS。 (您可以在 Targets Build Settings 中找到类似的设置)
【讨论】:
以上是关于iphone app APNS 无法获取设备令牌,错误:“没有为应用程序找到有效的‘aps-environment’权利字符串”的主要内容,如果未能解决你的问题,请参考以下文章