应用程序仅在Testflight Build上崩溃

loo*_*oop 43 xcode objective-c ios swift

我在swift上创建了一个应用程序,并使用iPhone 6,iPhone 6 plus和iPhone 5设备以及Xcode提供的所有模拟器进行了大量测试.该应用运行良好,并在本地上传时不会崩溃.(iOS 8)

我终于提交了Testflight的版本.通过Testflight构建下载应用程序后,应用程序在同一位置始终崩溃.

是否存在已知问题,其中上载的构建与本地创建的构建不同 我如何使用Testflight构建调试问题?

Che*_*C D 63

我想这是一个快速的编译器问题.要首先验证是否转到Edit Scheme,然后在"运行"选项卡中将" 构建"配置更改为" 发布"模式,然后在本地安装构建.您将了解其崩溃的确切位置.

  • 我实际上通过将swift编译器优化从最快改为无来解决了这个问题.我不确定这是否是一个理想的长期解决方案,但构建不再崩溃. (14认同)
  • 1)构建设置2)Swift编译器 - 代码生成3)优化级别 (4认同)
  • 我有类似的问题.使用该方案中的发布配置为我确定了崩溃并让我意识到我的错误:我使用DEBUG标志只在开发时运行一些代码.没有运行调试代码使我的应用程序处于错误状态并发生崩溃....对我感到羞耻,非常感谢您的提示! (2认同)
  • @Taylor 你应该创建一个答案,说明你是如何解决的,并将其标记为正确 (2认同)

bra*_*ray 11

在我的情况下,这是在开始使用 Xcode 11 之后发生的。它是一个UISearchDisplayController(自 iOS 8 起已弃用)似乎在调试模式下在设备或模拟器上工作,但不在发布版本中。Xcode 11.3 不会在代码中给出任何内联警告。崩溃很难找到,因为不再使用搜索控制器,它是孤立代码。

  • 上帝祝福你!旧的 UISearchDisplayController 仍然链接在我的 Storyboard 文件中。 (3认同)

loo*_*oop 9

我通过改变迅速编译器的优化解决这个问题fastestnone.我不确定这是否是一个理想的长期解决方案,但构建不再崩溃.


ama*_*mar 7

对于所有遇到此类似问题的人,可以按照以下步骤操作

转到Xcode->widows->organiser,然后选择crashes选项卡,然后选择您的应用程序。如果您在Xcode->preferences->accounts 中添加了您的 Apple 帐户,那么您 Xcode 将下载所有崩溃报告,即使是 testflight 构建。

它将具有堆栈跟踪,您无需像过去那样对其进行符号化。PS:-我见过的最常见的是 UISearchDisplayController 问题


小智 5

这可能是与位相关的问题。然后检查所有第三方库是否都支持位码,然后仅将位码设置为YES,否则设置为NO

实际上,位码是编译程序的中间表示。您上载到iTunes Connect的包含位码的应用程序将在App Store上进行编译和链接。