5

我正在尝试通过 testflight 安装一个 ad-hoc 应用程序,因此我从苹果门户创建了一个 ad-hoc 配置,我构建了 .ipa,然后将其提交给 testflight。

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

经过一些测试,我已将设备连接到 xcode,然后单击“配置开发”(或类似的东西,我记错了,因为我再也看不到那个选项了)。之后,应用程序在启动时没有关闭,并且运行良好。

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

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

谢谢

4

2 回答 2

1

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

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

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

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

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

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

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

于 2012-06-05T16:40:26.010 回答
1

这是 2012 年的一个老问题,但最近我遇到了完全相同的问题。我想出了我们的问题所在。我使用的是 OCMock 框架,当我将它更新到 3.0 版时,我开始遇到这个问题。我把它恢复了,它工作正常。我还不知道 OCMock 3.0 中的什么导致了这个问题。如果我弄明白了,我会在这里再写一次。

http://ocmock.org/ocmock3/

于 2014-07-02T22:54:16.447 回答