xcode 8推送通知功能和权利文件设置

时间:2016-09-01 08:50:58

标签: push-notification ios10 xcode8 xcode8-beta6 unnotificationrequest

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

然后它将生成AppName.entitlements文件,如下所示

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

但是对于生产版App,如果我们将字符串更改为

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

然后功能显示警告

Capabilities warning

似乎无论在aps-environment中指定了哪个字符串值,我们仍然可以在application:didRegisterForRemoteNotificationsWithDeviceToken:

获取推送设备令牌

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

3 个答案:

答案 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";