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认为应用关闭是合法终止,没有将其记录为崩溃。
我 运行 遇到了一个奇怪的问题,我正在构建的应用程序在作为 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
.
谢谢! _凯文
弄清楚发生了什么,如果还没有确切原因的话。当我进一步调查时,上面发布的一些细节被证明是转移注意力的信息。最初看起来是存档构建与直接从 Xcode 启动的构建之间的行为差异实际上是调试构建与发布构建之间的行为差异。
解决方案是在 Xcode 中创建一个新方案到 运行 发布版本(Product->Scheme->Manage Schemes in Xcode 8.3), 复制我默认的移动方案,然后设置新方案的运行->Info->Build Configuration 到发布.
一旦我 运行 一个附加了 Xcode 的发布版本,我发现了一个错误(可能是一个错误初始化的变量,但我仍在调查)只发生在发布版本中。
未生成崩溃日志的原因似乎是错误导致断言失败(Cocos2d-x 中的 CC_ASSERT 宏),因此 iOS认为应用关闭是合法终止,没有将其记录为崩溃。