xcode 8推送通知function和授权文件设置

当使用xcode 8进行推送通知设置时,与xcode 7不同, xcode 8需要开发人员打开推送通知function开关(位于TARGETS -> AppName -> Capabilities ,如下图所示), 推送通知功能

那么它将生成AppName.entitlements文件如下

 //AppName.entitlements <key>aps-environment</key> <string>development</string> 

但对于生产版本的应用程序,如果我们改变string

 //AppName.entitlements <key>aps-environment</key> <string>production</string> 

那么能力显示警告

功能警告

并且似乎无论在aps-environment中指定了哪个string值,仍然可以在application:didRegisterForRemoteNotificationsWithDeviceToken:处获取推送设备标记application:didRegisterForRemoteNotificationsWithDeviceToken:

那么推送通知权利的正确设置是什么? 谢谢

我今天在Xcode 8 GM上苦苦挣扎。 禁用设置后,删除我的开发人员门户configuration文件并重新生成它,并再次启用设置,我能够消除Xcode中的警告。 请记住,我没有摆弄权利文件。 我把它留在开发环境,归档后我得到了正确的aps环境设置(生产)。

似乎即使在通用汽车公司Xcode仍然是非常错误的

我的问题是我的推客户端已经过时,只能成功地debugging令牌。 其他问题,我仍然在努力解决的问题是,我只能通过健身房导出应用程序与legacy-api启用,这不是将apns环境设置为“生产”,而是将其作为“开发”embedded式mobile.provision'文件。 然而,我已经能够通过Xcode组织者成功地部署应用程序来与apns(prod)一起工作。

我认为更好的解决scheme是打开项目包并打开project.pbxproj

更改CODE_SIGN_ENTITLEMENTS

 CODE_SIGN_ENTITLEMENTS = "your-app/production.entitlements";