使用xcode 8
执行推送通知设置时,与xcode 7
不同,xcode 8
需要开发人员启用推送通知功能开关(位于TARGETS -> AppName -> Capabilities
,如下图所示),
然后它将生成AppName.entitlements文件,如下所示
//AppName.entitlements
<key>aps-environment</key>
<string>development</string>
但是对于生产版App,如果我们将字符串更改为
//AppName.entitlements
<key>aps-environment</key>
<string>production</string>
然后功能显示警告
似乎无论在aps-environment中指定了哪个字符串值,我们仍然可以在application:didRegisterForRemoteNotificationsWithDeviceToken:
那么推送通知权利的正确设置是什么? 谢谢
答案 0 :(得分:32)
我今天在Xcode 8 GM中苦苦挣扎。禁用该设置后,删除我的开发人员门户配置文件并重新生成它并再次启用该设置,我能够消除Xcode中的警告。请记住,我没有使用权利文件。我把它留在开发环境中,归档后我得到了正确的aps环境设置(生产)。
似乎Xcode即使在GM中也是非常错误的答案 1 :(得分:0)
我的问题是我的推送客户端已经过时,只会成功推送调试令牌。我仍在努力修复的其他问题是,我只能通过启用了legacy-api的健身房导出应用程序,这不是将apns环境设置为&#39; production&#39;并把它留作“发展”。在“嵌入式移动设备”中。文件。然而,我已经能够通过xcode组织器成功部署应用程序,以便现在使用apns(prod)。
答案 2 :(得分:0)
我认为更好的解决方案是打开项目包并打开project.pbxproj
更改CODE_SIGN_ENTITLEMENTS
CODE_SIGN_ENTITLEMENTS = "your-app/production.entitlements";