为啥我们不能在 xcode 6.1.1 中为推送通知选择配置文件和代码签名

Posted

技术标签:

【中文标题】为啥我们不能在 xcode 6.1.1 中为推送通知选择配置文件和代码签名【英文标题】:why can't we select provisioning profiles and code signing in xcode 6.1.1 for push notifications为什么我们不能在 xcode 6.1.1 中为推送通知选择配置文件和代码签名 【发布时间】:2015-03-11 13:08:26 【问题描述】:

我正在尝试让推送通知同时适用于开发和生产环境

到目前为止,似乎一切正常。我按照 Ray Wenderlich 教程http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1 中的步骤操作,控制台似乎可以正常使用 php 脚本。毕竟,它说“消息已成功传递”

但是,即使应用程序正确注册了通知,通知也不会发出。

我能想到的唯一不起作用的是配置文件附加到通配符。所以我想我会手动更改配置文件。但是在代码签名下的构建设置中,当我单击以更改它时,不再有配置文件列表。相反,它只会显示一个愚蠢的文本视图,您可以在其中输入内容。它是空白的,对于 Debug 或 Release 版本都没有。

只有我一个人有这个问题吗?

同样,配置文件错误只是一种理论。我实际上不知道这是否是导致问题的原因。

但奇怪的是……推送通知昨天还在开发中,但今天没有,实际上什么都没有改变。

我删除了所有配置文件。

我删除了应用程序。

我重启了电脑

我下载了所有配置文件

我重启了电脑

该应用不会询问我是否希望它接收推送通知,尽管它曾经是。

服务器端没有任何变化。

.pem 文件在用于开发而非生产时仍然相同。

.pem 文件是使用正确的开发和分发证书和密钥制作的。

应用仍然没有收到推送通知。

怎么了?

【问题讨论】:

为什么这个问题被否决了? 【参考方案1】:

发布版本提供与调试版本不同的令牌。打开控制台以查看您的令牌日志。完成后删除日志,这样没人会看到它。

【讨论】:

【参考方案2】:

据我回忆,您无法通过使用通配符 AppID 的应用成功利用推送通知。我刚刚检查了我的企业门户,我什至无法在我的任何通配符应用上启用 APN。

我建议取消通配符 AppID 并改用它的专用版本。如果您需要使用相同的 VendorID 或 AdvertisingID,请确保您的应用套件维护相同的根标识符。

com.mycompany.foo == com.mycompany.bar
com.mycompany.foo != com.mycompany.foo.bar

【讨论】:

以上是关于为啥我们不能在 xcode 6.1.1 中为推送通知选择配置文件和代码签名的主要内容,如果未能解决你的问题,请参考以下文章

在 ionic cordova 和 firebase 中为 iOS 应用程序设置推送通知

Xcode/Cocoapods 为啥我不能从 Pod 实现 Swift 协议?

为啥不能在 python 中为对象添加属性? [复制]

为啥我不能在 notepad++ 中为 Scintilla 命令添加“Enter”?

为啥我不能在 VS2019 中为对话框添加 Class?

为啥我不能在 AsyncTask 中为另一个类的 ListView 设置适配器?