gpt4 book ai didi

ios - 在 testflight 上推送通知

转载 作者:行者123 更新时间:2023-12-01 18:07:43 25 4
gpt4 key购买 nike

我正在使用 uraban airship 为我的 ios 应用程序发送通知
它在我的开发阶段工作得很好
现在我用生产配置文件替换了我的配置文件,我为它创建了一个新的 apns 证书,并将这个证书上传到我的
Urban Airship 上的新制作应用程序
我得到的是什么。

我尝试制作一个新的 appid 并吊销我的证书并重新颁发它们,但什么都没有。
我应该提到我正在使用生产配置文件而不是临时文件在 tesflight 上测试我的应用程序,可以吗?
我必须发布到应用商店才能正常工作吗?

最佳答案

检查您的使用链中的所有 4 个东西现在都在生产中:

虽然还有其他原因,但在很大一部分时间里,推送失败的原因是由于推送“方程式”被打破了。

有两个方程,必须严格遵循其中一个方程才能使推送起作用。

发展方程:

Development build of the App + Development APN token + Development Certificate + Development Apple gateway == SUCCESS



生产方程:

Production build of the App + Production APN token + Production Certificate + Production Apple gateway == SUCCESS.



如果生产方程中有任何开发元素,或者开发方程中有任何生产元素,那么推送将不起作用。等式的所有四个要素必须要么全部为开发,要么全部为生产。

当您通过 Xcode 运行应用程序时,默认情况下它将是应用程序的开发版本(它可以在方案中更改,但除非您知道并这样做,否则它将是调试版本),因此在使用 Xcode 时,您必须使用插入功能的发展方程。如果您创建一个临时分发或应用商店构建,那么它将是一个生产构建,您必须使用生产方程式才能使其工作。

如果创建广告/分发/应用商店构建等,那么失败的常见原因是没有在build设置中正确设置 Xcode 的代码签名和配置文件部分。

此外,应用程序的生产版本和应用程序的开发版本会产生不同的推送 token ,因此如果您临时将 token 硬编码到某些服务器测试脚本或类似脚本中,则必须确保其 token 正确。在旧版本的 iOS 中,一旦你获得了 token ,它就永远不会改变(它们可以,但这种情况很少见)。但在 iOS9 中,情况不再如此, token 可以并且确实会更改,因此请始终确保您在服务器上使用的 token 是最新的。

推送也必须通过正确的网关发送,Apple 开发网关是沙盒网关:

ssl://gateway.sandbox.push.apple.com:2195



而生产网关是:

ssl://gateway.push.apple.com:2195



使用生产网关时,服务器当然必须使用生产证书签名,使用沙盒网关时必须使用开发证书签名。

如果您对两个证书使用相同的密码,那么您可以在同一个 .pem 文件中使用生产证书和开发证书对您的服务器进行签名。 IE。您可以将所有提升证书和 key 连接到单个 .pem 文件中,并使用该文件对服务器进行签名。在使用 Xcode 进行测试时,服务器当然需要使用沙盒网关,并为最终的应用商店发布使用生产网关。

关于ios - 在 testflight 上推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37868346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com