【问题标题】:iOS Push Notifications work for Dev but not Enterprise DistributioniOS 推送通知适用于开发,但不适用于企业分发
【发布时间】:2013-03-28 11:01:47
【问题描述】:

我在这里阅读了很多帖子,并且整天阅读 Apple 文档。这里的帖子都没有答案,文档也不清楚这个问题。

我们有一个应用在使用 Dev 配置文件时接收推送通知,但在我们使用 Enterprise 分发配置文件时却没有。

为沙盒中的推送通知启用了应用 ID。

证书和两个配置文件都与应用 ID 相关联。

如果我构建表单 Xcode 推送通知就可以了。如果我存档和分发服务器返回:

[Failed to push 6dje7djksis7hyhdjshsjksjd74jdjskshdjd8dhjjdkwu for reason 8]

哪个是无效令牌。

我注意到的一件事是,我们的开发配置文件具有以下适用于 aps-environment 的内容:

<key>aps-environment</key>
<string>development</string>

虽然企业分发配置文件具有:

<key>aps-environment</key>
<string>production</string>

当我对我的手机运行调试版本(推送工作)时,.app 文件的权利是:

<key>aps-environment</key>
<string>development</string>

当我存档它们时(无论我使用什么配置文件或方案):

<key>aps-environment</key>
<string>production</string>

谁能告诉我这是否是预期的?我在这个网站上找到的其他问题都没有真正说明 Dev 可以工作但 Enterprise Distribution 不能工作的原因。

为什么归档总是会使 aps 环境生产?

感谢您的宝贵时间。

更新 这很有趣。

发件人:

http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ProvisioningDevelopment/ProvisioningDevelopment.html

“您必须为沙盒(开发)环境和生产环境获取单独的证书。证书与作为推送通知接收者的应用程序的标识符相关联;此标识符包括应用程序的捆绑 ID。当您创建对于其中一个环境的配置文件,必要的权利会自动添加到配置文件中,包括特定于推送通知的权利。这两个配置文件称为开发和分发。分发配置文件是提交的要求将您的应用程序添加到 App Store。”

这可能意味着您不使用分发配置文件,除非您要进行生产。真的吗?这似乎很奇怪,因为您可以在进入应用商店之前制作企业分发配置文件。

有人对此有想法吗?我在文档中找不到任何具体信息。

谢谢

【问题讨论】:

  • AppID 的开发和生产版本都启用了推送通知(在 Apple 配置网站上)?
  • 啊!好问题!我应该这么说的。不,我故意从未启用生产配置文件。门户中的开发端为绿色,生产端仍为黄色。
  • 企业版使用生产/发行证书。您需要启用它并将其与您的推送服务一起使用。

标签: ios push-notification enterprise-distribution


【解决方案1】:

AppID 的开发和生产版本都需要在 Apple 'provisioning profile' 网站上启用推送通知。

【讨论】:

  • 我不确定我是否清楚。我们目前只针对沙盒运行。如果我们不使用生产配置文件,为什么需要启用生产?我们的问题是使用企业分发配置文件而不是开发人员配置文件会使推送停止工作。我错过了什么?谢谢
  • 好吧,这很容易尝试。只需启用它,安装更新的配置文件并查看。您使用的沙盒不相关。
  • 在我这边,我的两个配置文件都包含推送通知,但它仅适用于开发人员配置文件,而不适用于分发...我现在应该做什么?
  • @GoZoner 几个小时前,我的帐户已迁移到组织。现在通知停止工作。我应该删除以前的配置文件和分发/开发证书并创建新的吗?
  • 我在这个话题上已经过时了。对不起。祝你好运。
【解决方案2】:

您的应用有 2 个推送证书。 1个用于开发,1个用于生产。查看供应门户的推送证书部分。

因此,无论您使用何种推送机制来发送推送,都需要使用正确的证书进行配置。在您的情况下,企业版本将使用生产/分发证书接收推送。

【讨论】:

  • 是的!我做了一些测试,发现没有办法让企业构建具有生产以外的任何 aps-environment 值。不过,这对我来说很奇怪。企业构建的目的是在您投入生产之前将其发送给人们。但它就在那里。现在我只需要弄清楚为什么将构建发送给人们会导致推送通知不起作用,即使我在构建后使用我的开发配置文件而不是企业配置文件进行分发。也许它以某种方式知道它不是临时的。谢谢丹克里克!
  • Enterprise 的目的是用于生产版本。它旨在供公司用于生产内部工具。它是通往 App Store 的私有替代生产途径。
  • K.这也是很好的信息。再次感谢丹克里克!
  • 只是想指出,这里对我有用的部分是“您用于发送推送的任何推送机制都需要配置正确的证书”。就我而言,我使用的是 Parse.com,并且我没有更新他们这边的 .p12 证书,只有我在构建应用程序时使用的所有证书。谢谢!
  • 今天我的开发者账户从个人迁移到了组织。远程通知停止工作,我签入了应用程序委托,但它们没有到达。我将 ,p8 与 firebase 一起使用。我应该删除以前的证书和配置文件并创建新的吗?
【解决方案3】:
  1. 使用生产证书。
  2. 使用生产 APN 主机:gateway.push.apple.com 而不是开发 APN:gateway.sandbox.push.apple.com
  3. 使用生产 APN 反馈主机:feedback.push.apple.com

更多请查看here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多