我已将我的应用程序上传到 TestFlight 并尝试使用 twilio 进行语音通话,但它抛出了错误 - 52134 无效的 APNs 设备 token 。我一直在阅读很多关于修复它的教程,但尽管我付出了所有努力,但我还是能够修复它。不过在沙盒中它运行良好。
我做了以下事情: 1) 从钥匙串(keychain)访问创建了一个新的 .certSigningRequest
2) 在 https://developer.apple.com/account/ios/certificate/distribution/create 上使用上述生成新的 VoIP 服务证书
3) 在钥匙串(keychain)中添加证书,从钥匙串(keychain)中导出 .p12 文件
4) 按照 https://github.com/twilio/voice-quickstart-swift 上的说明进行操作运行这三个命令来生成 key 和证书
5)在twilio上新建了一个Push Credential,并通过复制粘贴的方式添加了Certificate和key
6) SANDBOX 未勾选
7) 在我的服务器后端更改 CREDENTIAL SID
8) 重启服务器
我正在使用自动管理签名,所以我假设一切都应该没问题。
关于“APS 环境:生产”,我假设 xCode 会在将其上传到 TestFlight 时自动使其成为生产环境。我可以看到它包含在内。
尽管有上述所有内容,我仍然遇到这个可怕的错误 APS 环境:生产
我知道在 99% 的情况下,这个问题的解决方案是重新生成证书,但现在我被卡住了。我已经试过两次了。
不确定我还能做些什么来解决这个问题?
最佳答案
我是这样走的。它适用于沙箱和现场。
创建 Twilio 证书。按照这个说明。
第 1 步:
1. An Apple Developer membership to be able to create the certificate.
2. Make sure your App ID has the “Push Notifications” service enabled.
3. Create a corresponding Provisioning Profile for your app ID.
4. Create an Apple VoIP Services Certificate for this app by navigating to Certificates -> Production and clicking the + on the top right to add the new certificate (choose voip cert at the bottom).
5. Download the certificate, export the .p12 from keychain.
第 2 步: 然后按照这些步骤,导航到您添加 .p12 的文件夹。
1. openssl pkcs12 -in liveVoip.p12 -nocerts -out key.pem
2. openssl rsa -in key.pem -out key.pem
3. openssl pkcs12 -in liveVoip.p12 -clcerts -nokeys -out cert.pem
4. openssl pkcs12 -in liveVoip.p12 -out VOIP.pem -nodes -clcerts
在 Twillio 控制台中,转到 Push Credentials 页面并创建一个新的 Push Credential。粘贴从您的证书中提取的证书和私钥。您必须以明文形式粘贴 key :
For the cert.pem you should paste everything from -----BEGIN CERTIFICATE----- to -----END CERTIFICATE-----.
For the key.pem you should paste everything from -----BEGIN RSA PRIVATE KEY----- to -----END RSA PRIVATE KEY-----.
记得勾选“沙盒”选项。这个很重要。您生成的 VoIP 服务证书既可用于生产环境,也可用于 Apple 的沙盒基础设施。选中此框会告诉 Twill 将您的推送发送到适用于您的开发配置文件的 Apple 沙箱基础设施。
应用准备好提交商店后,使用“APS Environment: production”更新 plist 并使用相同的 VoIP 证书创建另一个 Push Credential,但不选中沙箱选项
第 3 步:要测试您的应用是否收到通知,获取设备 token ,打开终端,转到您添加 .p12 的文件夹。使用它来手动触发 voip 通知。
apn push "<XXXXXX XXXXXX XXXXXX XXXXXX XXXXXX XXXXXX e8aafbd9>" -c VOIP.pem -m "Testing VoIP" -p
注意:有时 twilio 会告知无效的 apns token 。但我们仍然能够收到 voip 通知。
关于ios - Twilio 错误 - 52134 无效的 APNs 设备 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54352049/