Xcode 4.6自动授权不工作 – “没有有效的APS环境”

我得到了着名的错误:
无法获得令牌,错误:错误域= NSCocoaErrorDomain代码= 3000“没有有效的'aps环境'授权stringfind应用程序”UserInfo = 0x413be0 {NSLocalizedDescription =没有有效的'aps环境'授权stringfind应用程序}

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

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

并手动添加API环境键如下所示:

 <?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环境键:

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

在iPhone上运行应用程序是能够产生设备令牌推。
这是我发现解决这个问题的唯一方法。
(如果遇到此错误,您可以使用此信息进行自己的故障诊断)

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

有没有人遇到过Xcode 4.6的这个问题?
我也许应该在苹果的支持下打开一张票。

只是想知道是否有其他更优雅的解决scheme。

更新:

上述修复只能用于开发阶段,而不能用于发布。

用于覆盖缺省Entitlements.plist的更优雅的解决scheme是复制已编辑的默认Entitlements.plist,并将其放入项目中。

然后,设置Code Signing Entitlements(无论哪个目标版本都有问题)(在这种情况下,我已将其设置为Debug)。

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

这应该使用这个plist文件的debugging版本(即只需按下运行),您的设备将注册与APNs开发服务器