如何在 aps-environment 设置为“生产”的情况下运行我的 iOS 应用程序(Xcode 6)?

Posted

技术标签:

【中文标题】如何在 aps-environment 设置为“生产”的情况下运行我的 iOS 应用程序(Xcode 6)?【英文标题】:How do I run my iOS app (Xcode 6) with the aps-environment set to "production"? 【发布时间】:2015-02-16 23:27:52 【问题描述】:

我正在使用 Xcode 6 开发应用程序,并且我想测试生产推送通知,但我似乎无法在生产应用程序环境中运行我的应用程序。如何手动启用此功能以进行测试?

我已经通过 Apple Developer 使用开发和生产推送通知证书注册了我的应用程序,并且使用沙盒开发人员推送通知环境一切正常。但我在注册生产推送令牌并继续接收开发推送令牌时遇到问题。

我尝试将目标的代码签名身份更改为 iOS Distribution,但这导致了其他问题,我什至无法启动我的应用程序。应用发布后,我只能使用生产环境吗?如果是这样,那么我如何在发布前测试生产推送通知?

进一步的信息是该应用程序尚未发布,我正在使用 node.js 服务器上的 Amazon SNS 来传递推送。再一次,整个链条都在使用 APNS_Sandbox(开发人员)环境完美运行。

【问题讨论】:

【参考方案1】:

要使用生产 APS,您的应用必须使用生产配置文件进行签名。

试试这个:

    创建一个 Ad Hoc 配置文件,其中包含您手机的设备标识符。 将您的发布目标的配置文件设置为这个新的配置文件。 存档您的应用程序(Xcode 中的产品 > 存档)。注意:确保 Archive 构建了发布目标。 导出应用程序的 .ipa(导出 > 保存以在 Organizer 中进行 Ad Hoc 部署)并将其安装到您的手机上(将其拖到 iTunes 中,在您的设备上的 Devices Organizer 中等)。

当您运行该版本时,您的应用应该会发送生产令牌。据我所知,您无法通过 Xcode 直接将应用的生产版本放到手机上(但我可能错了)。

【讨论】:

感谢这工作!很糟糕,虽然没有更优雅的方法。我不明白为什么我们必须管理两个完全独立的推送系统(dev 和 prod),而且测试生产基础设施是如此的麻烦。 附加问题 Aaron,有没有一种方法或变量可以知道您是在应用内使用生产配置文件还是开发配置文件? 您可以检查是否定义了“DEBUG”。这是一个在默认调试配置中设置的环境变量,而不是默认发布配置。 我该如何调试这个临时 .ipa?

以上是关于如何在 aps-environment 设置为“生产”的情况下运行我的 iOS 应用程序(Xcode 6)?的主要内容,如果未能解决你的问题,请参考以下文章

在 xamarin for ios 上调试时找不到应用程序的有效“aps-environment”权利字符串

iphone app APNS 无法获取设备令牌,错误:“没有为应用程序找到有效的‘aps-environment’权利字符串”

应用签名的权利不包括“aps-environment”权利。是的,它确实

仅在发布版本中找不到适用于应用程序的有效“aps-environment”权利字符串

Xcode 8.1“配置文件不包括 aps-environment 权利”

如何在 macOS 应用程序的生产环境中测试推送通知?