|
|
1
20
我重新下载了推送生产证书,并将其从密钥链导出为.p12。这似乎解决了问题。但似乎奇怪的是,一个坏的私钥给了我“无效令牌”错误。 |
|
2
18
用于生产的设备令牌与开发令牌不同,因此如果您向生产APNS服务器发送开发令牌(反之亦然),这就是问题的原因。 切换到生产模式时,您可能没有从服务器中删除开发设备令牌。 或者,如果您正在从生产应用程序获取开发令牌,则应用程序将返回本地存储的设备令牌(您可能在开发期间已存储在设备上),而不是要求Apple获取新的令牌,或者(如果您确实要求Apple获取当前令牌,但仍获得开发令牌)您的应用程序未与生产配置文件进行签名。 |
|
|
3
3
MyApp是一个iOS应用程序,它使用从数据库获取的APN令牌ID向MyApp发送和接收推送通知MyApp,每个MyApp在登录时都会保持更新。推送通知由MyApp使用 NW推进器 框架API。 只要项目在开发人员(调试)模式下运行,发送和接收推送通知就可以完美工作。但是,在生产模式下,发送推送通知将不起作用。 我回去重新创建了我的AppID、SSL证书、规定等,但没有效果。接下来我使用 NW推进器 苹果操作系统 推进器 应用程序尝试向MyApp发送推送通知。我已配置 推进器 发送推送通知(发送到 特设 MyApp的分发),并在 推进器 日志:“ 通知错误:APN无效令牌 ". 我接下来注意到 推进器 具有复选框选项 应使用沙盒环境 选中的。我取消选中该选项并再次尝试。这一次,推送通知被发送,然后被目标手机接收,没有任何错误。这让我重新审视了 NWPusher.connect(NWPusher.connect) 电话: 斯威夫特:
它有一个环境参数NWEnvironment枚举,可能值为0=无,1=沙盒,2=生产,3=自动。 将rawValue:1(开发沙盒)更改为rawValue:2(生产)解决了问题:生产推送通知现在可以无错误地工作。 |
|
|
4
2
|
|
|
5
0
|
|
|
6
0
在中的ios App Bundle ID菜单下 https://developer.apple.com/account/ios/identifier/bundle 如果在生产中,请单击应用程序的id,如果旧证书已过期,请添加新证书。
确保您的应用程序捆绑包ID
|