iOS 应用程序在通过 TestFlight 启动时因 EXC_CRASH (SIGKILL) 而崩溃,但从 Xcode 运行正常

iOS app crashes with EXC_CRASH (SIGKILL) when launched via TestFlight, but runs fine from Xcode

我 运行 遇到了一个奇怪的问题,我正在构建的应用程序在作为 TestFlight 的存档构建启动后不久就崩溃了,但是 运行 在 运行 直接从 Xcode 在同一台设备上连接。应用程序似乎没有完全终止 - 如果我双击主页按钮,我会在 运行 中途看到背景中的应用程序图像,即使新会话崩溃了很长时间在它到达显示屏幕之前。如果我随后将应用程序带回前台,它 returns 进入其加载屏幕,然后再次关闭,日志如下所示:

Incident Identifier: 983F8E4E-EFE0-4C93-8F46-D223FD86DF14
CrashReporter Key:   3515df1d8c55a27394a78b6efee5f83946ed9a99
Hardware Model:      iPhone7,2
Process:             FileProvider [218]
Path:                /private/var/containers/Bundle/Application/89708FF4-E848-4F49-BC0D-B2DC9EF536C6/Drive.app/PlugIns/FileProvider.appex/FileProvider
Identifier:          com.google.Drive.FileProviderExtension
Version:             4.2017.25202 (4.2017.25202)
Code Type:           ARM-64 (Native)
Role:                Unspecified
Parent Process:      launchd [1]
Coalition:           com.google.Drive.FileProviderExtension [368]




Date/Time:           2017-06-30 22:59:01.2937 -0700
Launch Time:         2017-06-30 22:59:00.7649 -0700
OS Version:          iPhone OS 10.3.2 (14F89)
Report Version:      104


Exception Type:  EXC_CRASH (SIGKILL)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Termination Reason: Namespace <0xF>, Code 0xdead10cc
Triggered by Thread:  0

...关于我应该调查什么以了解这里发生的事情有什么想法吗?

应用程序是使用 Cocos2d-x framework.

在 C++ 中构建的

谢谢! _凯文

弄清楚发生了什么,如果还没有确切原因的话。当我进一步调查时,上面发布的一些细节被证明是转移注意力的信息。最初看起来是存档构建与直接从 Xcode 启动的构建之间的行为差​​异实际上是调试构建与发布构建之间的行为差​​异。

解决方案是在 Xcode 中创建一个新方案到 运行 发布版本(Product->Scheme->Manage Schemes in Xcode 8.3), 复制我默认的移动方案,然后设置新方案的运行->Info->Build Configuration 发布.

一旦我 运行 一个附加了 Xcode 的发布版本,我发现了一个错误(可能是一个错误初始化的变量,但我仍在调查)只发生在发布版本中。

未生成崩溃日志的原因似乎是错误导致断言失败(Cocos2d-x 中的 CC_ASSERT 宏),因此 iOS认为应用关闭是合法终止,没有将其记录为崩溃。