objective-c - 找不到适用于应用程序的有效 'aps-environment' 权利字符串

标签 objective-c apple-push-notifications

我正在尝试配置我的应用程序以支持推送通知,但不断收到此错误: 获取 token 失败,错误:Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' entitlement string found for application"UserInfo=0x1f818fc0 {NSLocalizedDescription=no valid 'aps-environment' entitlement string found for application}

  • 我确实让我的应用支持推送通知(目前仅用于开发)。
  • 我确实在启用推送通知后创建了配置文件。
  • 我的 bundle 标识符与配置文件中显示的相同。
  • 在我的配置文件中有一个字符串:aps-environment
  • 我确保在“代码签名身份”部分下的项目和目标中,所有值都被选为我的配置文件。

还有什么想法吗?谢谢。

最佳答案

就我而言,我的配置文件中的内容:

security cms -D -i ~/Downloads/spolskyDevelop.mobileprovision 
...
<key>application-identifier</key>
<string>P5GM95Q9VV.com.dca.spolsky</string>
<key>aps-environment</key>
<string>development</string>

与实际构建的应用程序中的内容不同(您可以通过查看 Xcode 的 Logs 选项卡了解它的构建位置)

codesign -d --entitlements - '/Users/drew/Library/Developer/Xcode/DerivedData/spolsky-bdbtdfjeeywhqzccpmmceqvnhgtm/Build/Products/Debug-iphoneos/spolsky-ios.app'
<dict>
    <key>application-identifier</key>
    <string>Y2X6Z7Z2GR.com.dca.spolsky-ios</string>
    <key>get-task-allow</key>
    <true/>
    <key>keychain-access-groups</key>
    <array>
        <string>Y2X6Z7Z2GR.com.dca.spolsky-ios</string>
    </array>
</dict>

这是真的即使代码签名身份下的“当前匹配”提示文本指示正确的配置文件——很奇怪,是吧?为了让一个奇怪的故事更奇怪,当我运行时,正确的配置文件被安装在设备上,(设置->常规->配置文件)让我相信配置文件是正确的——但它回退到通配符 ID应用实际启动的时间。

线索是这两个命令的输出不同:

Y2X6Z7Z2GR.com.dca.spolsky-ios vs P5GM95Q9VV.com.dca.spolsky

当我使粗体部分匹配时,斜体部分变为自动匹配。另外security和codesign的输出一致,没有aps-entitlement错误。

我的猜测是 XCode 在我的非通配符 ID 上使用通配符样式匹配。 (毕竟,“spolsky”非常接近“spolsky-ios”),这解释了“当前匹配”输出。但是构建链中的某些东西对此更加严格,因此在构建期间它回退到实际通配符 ID

关于objective-c - 找不到适用于应用程序的有效 'aps-environment' 权利字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13432203/

相关文章:

ios - 请求多个权限

ios - 在 iOS 应用程序中显示通知,而应用程序在前台/在 swift 3 中处于事件状态

ios - 突然 fcm 通知在某些 iOS 设备上不起作用

ios - 数据交给UIPasteBoard是深拷贝还是浅拷贝?

ios - 在运行时更改 UITableView 行的部分

iphone - 找出带有矩形字体的字符串的行数?

ios - 当应用程序在前台时检测用户何时点击通知

objective-c - 如何在保留合成代码的同时向合成的 getter/setter 添加一些代码

iphone - Facebook 安装的参数不返回数据

ruby-on-rails - 如何测试 APNS p12 证书环境 ruby​​?