bas*_*han 82 objective-c apple-push-notifications
我正在尝试配置我的应用程序以支持推送通知,但不断收到此错误:无法获取令牌,错误:错误Domain = NSCocoaErrorDomain Code = 3000"找不到有效的'aps-environment'应用程序的权限字符串"UserInfo = 0x1f818fc0 { NSLocalizedDescription =找不到应用程序的有效'aps-environment'权利字符串}
还有什么想法吗?谢谢.
Dre*_*rew 64
就我而言,我的配置文件中的内容:
security cms -D -i ~/Downloads/spolskyDevelop.mobileprovision
...
<key>application-identifier</key>
<string>P5GM95Q9VV.com.dca.spolsky</string>
<key>aps-environment</key>
<string>development</string>
Run Code Online (Sandbox Code Playgroud)
与实际构建的应用程序中的内容不同(您可以通过查看Xcode的"日志"选项卡找到它的构建位置)
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>
Run Code Online (Sandbox Code Playgroud)
即使代码签名身份下的"当前匹配"提示文本指示了正确的配置文件,这也是如此- 很奇怪,是吧?为了制作一个奇怪的故事,我运行时在设备上安装了正确的配置文件,(设置 - >常规 - >配置文件)让我相信配置文件是正确的 - 但它又回到了通配符ID当应用程序实际启动时.
线索是这两个命令输出的差异:
Y2X6Z7Z2GR .com.dca.spolsky-ios vs P5GM95Q9VV .com.dca.斯波斯基
当我将粗体部分匹配时,斜体部分会自动更改为匹配.此外,安全性和协同设计的输出是一致的,并且没有更多的aps-entitlement错误.
我的猜测是,XCode在我的非通配符ID上使用了通配符式匹配.("spolsky"毕竟是非常"spolsky-ios"),这解释了"当前匹配"输出.但是构建链中的某些内容对此更加严格,因此它在构建期间会回退到实际的通配符ID.
Rap*_*tor 37
问题是由于当前的Provisioning Profile不包含APNS信息,因为在创建APNS证书之前创建了Provisioning Profile .
因此,要解决此问题,请创建新的Provisioning Profile并选择Xcode中的Provisioning Profile以清除错误.
Ore*_*ren 29
推送通知已在我的设备上运行后,我遇到了同样的问题.看起来像Xcode缓存的东西不正确,所以刷新它解决了我的问题:
请注意,捆绑标识符必须以区分大小写的方式与配置文件匹配.它应该是com.Firstlast.appname之类的com.FirstLast.appname.好吧,这让我忙了好一阵子.
| 归档时间: |
|
| 查看次数: |
63140 次 |
| 最近记录: |