iOS APNS 通过 Amazon SNS 和 Unity - 无法创建开发 iOS 证书

5
我正在尝试通过Amazon SNS在Unity中设置推送通知。Android方面我已经完美地解决了问题,但是在iOS上出现了问题。我能够让设备注册到一个Apple Production SNS应用程序并订阅主题,但是一旦我尝试发送通知,端点的“启用”状态就会变为“False”。
我读到说这可能是由于证书被设置为Production所致,尽管我们按照创建Development证书的说明操作,但当我尝试上传.p12文件以在SNS中创建一个Apple Development平台时,它总是会给出错误提示:
“您提供了一种iOS Production类型的证书”
我们已经多次尝试下载开发证书,并尝试使用新的Bundle ID和新的Apple开发网站上的应用程序重建应用程序,而不触及生产按钮,但无论如何,在从KeyChain导出.p12后,它总是成为生产证书。
此外,我们创建的每个.p12都具有与上一个完全相同的私钥和证书。
可能出了什么问题?

5
尝试在不包括私钥的情况下导出推送证书。我之前遇到过类似问题,并通过这种方式解决了它。问题在于私钥用于签署开发和生产推送证书。 - utogaria
1
谢谢!那个完美地运行了。 - Obi-Dan
1
我在stackoverflow上找到了一些类似于“未找到有效的'maps-environment'授权字符串”的问题。可能会有答案解决这个问题。我强烈建议您尝试一下,看看它们是否有帮助。与其他平台相比,苹果的证书/签名/配置非常复杂,因此在配置应用程序时要小心。基本上,您需要确保每个环境(调试/发布,即开发/生产)的推送证书、配置文件和代码签名一致,以使推送正常工作。 - utogaria
1
如果你在尝试了stackoverflow上的所有解决方案后仍然无法解决问题,可以回到我这里,我会想出其他办法。 - utogaria
也许我可以在Xcode中设置一些类来实现类似的功能。 我找到了这个链接(https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSDistributedNotificationCenter_Class/index.html#//apple_ref/occ/cl/NSDistributedNotificationCenter),但我不认为它是我正在寻找的东西? - Obi-Dan
显示剩余9条评论
2个回答

13

这是我成功的方法:

1 - 从 Apple 下载证书(用于开发或生产的 APNS 证书)

2 - 双击您的证书以在 KeyChain 中打开它

3 - 选择它,右键单击它并按 EXPORT “Cer”***不要与您的私钥一起选择它,只选择它本身!

4 - 命名您的新 p12 并将其上传到设置阶段的 SNS

完成,这将起作用!

--->奇怪的是亚马逊的 SNS 需要一个非签名的 .p12,而不是像其他平台那样的组合 .p12(包括私钥),但...去向亚马逊讨论...


1
除了p12文件上传方式不同之外,您是如何输入证书和私钥的? - achabacha322
1
@achabacha322,您可以通过从“平台应用程序操作”下拉菜单中选择“更新凭据”来完成此操作。 - Mohsin Khubaib Ahmed
4
我意识到自己做错了,我应该通过点击“加载凭据”按钮从文件中加载凭据,但 AWS 把这个按钮放在一个非常愚蠢的地方,让我以为它与加载密码文件之类的东西有关。 - achabacha322
1
每当我开始学习新技术时,都会遇到像你这样用简单步骤指导我的人,谢谢你。 - BEJGAM SHIVA PRASAD
嗨,@BEJGAM SHIVA PRASAD,感谢您的回复,您介意给这个答案投票吗?谢谢;-) - Hernan Arber
干得好,@HernanArber。这真的帮了我们很多。 - Siddharth Sunil

1
这对我有用; 按照本指南的步骤进行操作;

http://docs.aws.amazon.com/sns/latest/dg/mobile-push-apns.html

现在在SNS创建时,不要上传p12文件。

在文本编辑器中打开步骤2和3生成的文件。

将第2步生成的.pem文件中的证书复制到证书文本区域中。

将第3步生成的.pem文件中的私钥复制到私钥文本区域中。

这样应该就创建成功了。我猜测是我的.p12文件中携带了一些旧的证书。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接