testflight应用程序在启动时关闭

Dan*_*llo 5 xcode adhoc apple-push-notifications ios testflight

我正在尝试通过testflight安装ad-hoc应用程序,所以我从Apple门户创建了一个临时配置,我构建.ipa然后我将它提交给testflight.

问题是我可以从testflight安装应用程序(我没有收到任何错误),但是当它启动应用程序时,它关闭时没有任何警报或消息.

经过一些测试,我已经将设备连接到xcode,然后我点击了"配置开发"(或类似的东西,我不记得正确,因为我再也看不到那个选项).之后,应用程序在启动时没有关闭,效果很好.

问题是,如果我必须为任何设备启用xcode开发,我无法通过testflight分发应用程序!

为什么我有这种行为?我做错了什么?

谢谢

Hei*_*erg 1

如果您可以从 TestFlight 安装应用程序而不会出现错误,则您的设备已正确列在配置文件中。你的问题是别的问题。

尝试查看设备的崩溃日志,看看出了什么问题。您可以提取它们并在 Xcode 中对它们进行符号化。

对 MusiGenesis 答案的更正:临时构建不支持推送通知当然是不正常的!您只需正确设置和使用系统即可。

当您的临时构建未收到推送通知时,常见的错误来源:

  • 为应用程序启用推送后,您没有生成新的配置文件。这会导致收到的推送令牌为零。
  • 您正在使用开发证书连接到 APNS 服务器。特别构建被视为分发构建,因此您必须使用生产密钥。
  • 您将混合开发令牌(来自开发版本)和生产令牌(来自临时版本)发送到 APNS 服务。这会导致整批推送通知被服务器默默丢弃。将您的开发、临时和生产令牌数据库完全分开以避免这种情况。无法识别哪些令牌正在污染您的批次,因此您必须将它们全部清除并确保仅插入正确类型的令牌。

我总是为需要注册推送的应用程序运行 3 个后端实例。一种用于开发构建,一种用于临时构建,一种用于 App Store 构建。例如,您可以将单独的 API 端点保持在线状态dev.mybackend.comstaging.mybackend.com并由production.mybackend.com不同的数据库实例支持以将它们隔离。

然后,在 Xcode 项目中,我为这些类型的构建提供单独的构建配置,并使用预处理器宏交换正确的后端。如果您想确保您的开发版本不会向生产帐户报告错误的分析,自动使用正确的配置文件等,单独的构建配置也很方便。