OGeek|极客世界-中国程序员成长平台

标题: ios - Xcode 4.6 自动授权不起作用 - "no valid aps-environment" [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 09:54
标题: ios - Xcode 4.6 自动授权不起作用 - "no valid aps-environment"

我遇到了著名的错误:
获取 token 失败,错误:错误域 = NSCocoaErrorDomain 代码 = 3000“找不到应用程序的有效 'aps-environment' 授权字符串” UserInfo=0x413be0 {NSLocalizedDescription=找不到应用程序的有效 'aps-environment' 授权字符串}

我可以通过编辑以下文件来修复它:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/Entitlements.plist

然后像这样手动添加 aps-environment 键:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>application-identifier</key>
    <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    <key>aps-environment</key>
    <string>development</string>
    <key>keychain-access-groups</key>
    <array>
        <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    </array>
</dict>
</plist>

然后,Xcode 正在生成正确的 Xcent 文件,其中包含 aps-environment 键:

/Users/mySelf/Library/Developer/Xcode/DerivedData/myApp-buauvgusocvjyjcwdtpewdzycfmc/Build/Intermediates/myApp.build/Debug-iphoneos/myApp.build/myApp.xcent

在 iPhone 上运行 App 可以生成设备 token 进行推送。
这是我发现解决问题的唯一方法。
(如果遇到此错误,您可以使用此信息进行自己的故障排除)

现在,我在另一台笔记本电脑上运行相同的项目(与 git 同步),
使用相同的 Xcode 版本 4.6。
此问题在该笔记本电脑上不会发生
两台机器上的项目设置/配置文件等都是 100% 相同的。
(请相信我这一点)

有人在 Xcode 4.6 中遇到过这样的问题吗?
我可能也应该在 Apple 的支持下开一张票。

只是想知道是否有其他更优雅的解决方案可用。

更新:

上述修复可能仅适用于开发阶段,但不适用于发布。



Best Answer-推荐答案


覆盖默认 Entitlements.plist 的更优雅的解决方案是复制您已编辑的默认 Entitlements.plist,并将其放入您的项目中。

然后,为您遇到问题的任何目标build设置代码签名权利(在这种情况下,我已将其设置为调试)。

http://i.stack.imgur.com/mph9t.png

这应该使用这个 plist 文件进行调试构建(即当简单地按下运行时),您的设备将注册到 APNs 开发服务器

关于ios - Xcode 4.6 自动授权不起作用 - "no valid aps-environment",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15687887/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4