ios - Twilio 错误 - 52134 无效的 APNs 设备 token

标签 ios swift twilio voip

我已将我的应用程序上传到 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% 的情况下,这个问题的解决方案是重新生成证书,但现在我被卡住了。我已经试过两次了。

不确定我还能做些什么来解决这个问题?

enter image description here

最佳答案

我是这样走的。它适用于沙箱和现场。

创建 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/

相关文章:

swift - 转到 UIPageViewController 中的下一页

ios - 如何只显示网页的一部分? UIWebView Swift

ios - (iOS 6) 从 UIActivityViewController 外部使用 UIActivity 的自定义子类

swift - 如何从swift访问服务器端javascript

ios - 删除 UITableView 附件上的背景颜色

ruby-on-rails - Twilio 短信表单适用于本地但未推送到 heroku - Ruby

php + ios加密解密3des + base64

ios - TestFlight:提交外部测试构建需要完整的测试信息

java - 电话 session iOS/android?

json - Twilio webhook 短信响应格式