65

使用xcode 8推送通知设置时xcode 7xcode 8需要开发者打开推送通知功能开关(位于TARGETS -> AppName -> Capabilities下图), 推送通知功能

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

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

但是对于生产版本的应用程序,如果我们将字符串更改为

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

然后功能显示警告

能力警告

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

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

4

3 回答 3

32

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

即使在通用汽车中,似乎 Xcode 仍然非常有问题

于 2016-09-09T21:52:41.343 回答
0

我的问题是我的推送客户端已过时,只能成功推送以调试令牌。我仍在努力解决的另一个问题是,我只能通过启用了 legacy-api 的gym 导出应用程序,这并没有将 apns-environment 设置为“production”并将其保留为“development” Embedded-mobile.provision 文件。但是,我现在已经能够通过 xcode 管理器成功部署应用程序以使用 apns(prod)。

于 2016-12-15T05:01:32.133 回答
0

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

改变CODE_SIGN_ENTITLEMENTS

CODE_SIGN_ENTITLEMENTS = "your-app/production.entitlements";
于 2016-12-21T10:01:30.793 回答