当使用 Xcode 7 构建+提交时,仅在运行 iOS 8 的 iPhone 4s 上,iOS Testflight 应用程序在启动屏幕上崩溃

标签 ios objective-c iphone crash xcode7

简短:

我正在开发一款 iPhone 应用程序,现已在应用程序商店上架,并使用 TestFlight 为下一个版本的生产做好准备。不过,有几位 iPhone 4s 用户报告说,当启动画面出现时,应用程序就崩溃了。

具体:

  • 崩溃仅发生在运行 iOS8 的 iPhone 4s 上的 TestFlight 版本的应用程序上。每次打开应用程序时都会发生这种情况,在主视图出现之前可以看到启动画面。

  • 它在所有设备上的模拟器上加载得非常好,没有崩溃。它还可以在所有 iPhone 5 及更高版本上正常运行。

  • 我使用 Xcode 7.0.1 构建了此版本的应用程序。

可能的线索:

  • 我过去遇到过类似的问题,在删除或重命名图像资源后,应用程序的 TestFlighted 版本在加载时崩溃,即使它们不再在任何代码中使用。然而,这个问题在所有 iPhone 设备上都会重现,但这里的情况并非如此。因此我认为这不是问题所在。

  • 我唯一的猜测是,Xcode 7 在构建时搞砸了(iPhone 4s 运行 32 位,iPhone 5s 及更高版本都运行 64 位),这可能是 32 位与 64 位架构的问题。我将使用 Xcode 6 重建并再次提交到 TestFlight,并报告这是否解决了问题。

崩溃日志:

我从我的一位 Beta 测试人员那里获得了一份崩溃日志,并将其包含在下面——但是,我需要帮助来理解这一点,因为我无法理解它。我尝试按照此处的建议将崩溃日志拖放到设备日志中:How to symbolicate crash log Xcode? ,但它似乎没有正确表示,如下所示:

Beta:                YES
Code Type:           ARM (Native)
Parent Process:      launchd [1]

Date/Time:           2015-10-03 20:23:13.499 -0700
Launch Time:         2015-10-03 20:23:12.279 -0700
OS Version:          iOS 8.4.1 (12H321)
Report Version:      104

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Triggered by Thread:  0

Last Exception Backtrace:
(0x288760d2 0x36d08c72 0x2739c81c 0x1bc6e8 0x1d2e8e 0x15a412 0xfbcaa 0xff894 0x2bed7558 0x2bf822f0 0x2bf82218 0x2bf8178c 0x2bf814c2 0x2bf81230 0x2bf811c4 0x2bed49c6 0x2b8ea3e0 0x2b8e5c30 0x2b8e5ab8 0x2b8e545a 0x2b8e524a 0x2c13afd0 0x2c13bd58 0x2c1465e4 0x2c13a0c2 0x2f34aebc 0x2883c030 0x2883b2f4 0x28839e4e 0x287856cc 0x287854de 0x2bf3c862 0x2bf37440 0x182b6e 0x372d6aaa)

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libsystem_kernel.dylib          0x3739cdf0 0x37388000 + 85488
1   libsystem_pthread.dylib         0x3741dc86 0x3741a000 + 15494
2   libsystem_c.dylib               0x3733b8bc 0x372f2000 + 301244
3   libc++abi.dylib                 0x36515bb8 0x36515000 + 3000
4   libc++abi.dylib                 0x3652f66a 0x36515000 + 108138
5   libobjc.A.dylib                 0x36d08f0e 0x36d02000 + 28430
6   libc++abi.dylib                 0x3652cdec 0x36515000 + 97772
7   libc++abi.dylib                 0x3652c8b4 0x36515000 + 96436
8   libobjc.A.dylib                 0x36d08dba 0x36d02000 + 28090
9   CoreFoundation                  0x28785768 0x2876b000 + 108392
10  CoreFoundation                  0x287854de 0x2876b000 + 107742
11  UIKit                           0x2bf3c862 0x2bec8000 + 477282
12  UIKit                           0x2bf37440 0x2bec8000 + 455744
13  Dap'd                           0x00182b6e 0xef000 + 605038
14  libdyld.dylib                   0x372d6aac 0x372d5000 + 6828

Thread 1 name:  Dispatch queue: com.apple.libdispatch-manager
Thread 1:
0   libsystem_kernel.dylib          0x3738924c 0x37388000 + 4684
1   libdispatch.dylib               0x372a94ec 0x37297000 + 74988
2   libdispatch.dylib               0x372a921e 0x37297000 + 74270

Thread 2 name:  Dispatch queue: FBSSerialQueue
Thread 2:
0   libsystem_kernel.dylib          0x373894ec 0x37388000 + 5356
1   libdispatch.dylib               0x372a6b8e 0x37297000 + 64398
2   FrontBoardServices              0x2f34ae9e 0x2f335000 + 89758
3   libdispatch.dylib               0x37298c80 0x37297000 + 7296
4   libdispatch.dylib               0x372a34ce 0x37297000 + 50382
5   libdispatch.dylib               0x372a2d9c 0x37297000 + 48540
6   libdispatch.dylib               0x372a548e 0x37297000 + 58510
7   libdispatch.dylib               0x372a689e 0x37297000 + 63646
8   libsystem_pthread.dylib         0x3741ad9a 0x3741a000 + 3482
9   libsystem_pthread.dylib         0x3741aaec 0x3741a000 + 2796

Thread 3:
0   libsystem_kernel.dylib          0x3739d9c0 0x37388000 + 88512
1   libsystem_pthread.dylib         0x3741ae14 0x3741a000 + 3604
2   libsystem_pthread.dylib         0x3741aaec 0x3741a000 + 2796

Thread 4:
0   libsystem_kernel.dylib          0x3739d9c0 0x37388000 + 88512
1   libsystem_pthread.dylib         0x3741ae14 0x3741a000 + 3604
2   libsystem_pthread.dylib         0x3741aaec 0x3741a000 + 2796

Thread 5:
0   libsystem_kernel.dylib          0x3739d9c0 0x37388000 + 88512
1   libsystem_pthread.dylib         0x3741ae14 0x3741a000 + 3604
2   libsystem_pthread.dylib         0x3741aaec 0x3741a000 + 2796

Thread 6:
0   libsystem_kernel.dylib          0x3739d9c0 0x37388000 + 88512
1   libsystem_pthread.dylib         0x3741ae14 0x3741a000 + 3604
2   libsystem_pthread.dylib         0x3741aaec 0x3741a000 + 2796

Thread 7:
0   libsystem_kernel.dylib          0x3739d9c0 0x37388000 + 88512
1   libsystem_pthread.dylib         0x3741ae14 0x3741a000 + 3604
2   libsystem_pthread.dylib         0x3741aaec 0x3741a000 + 2796

Thread 8:
0   libsystem_kernel.dylib          0x3739d9c0 0x37388000 + 88512
1   libsystem_pthread.dylib         0x3741ae14 0x3741a000 + 3604
2   libsystem_pthread.dylib         0x3741aaec 0x3741a000 + 2796

Thread 9 name:  AVAudioSession Notify Thread
Thread 9:
0   libsystem_kernel.dylib          0x3738949c 0x37388000 + 5276
1   libsystem_kernel.dylib          0x37389290 0x37388000 + 4752
2   CoreFoundation                  0x2883b5ce 0x2876b000 + 853454
3   CoreFoundation                  0x28839b94 0x2876b000 + 846740
4   CoreFoundation                  0x287856cc 0x2876b000 + 108236
5   CoreFoundation                  0x287854de 0x2876b000 + 107742
6   libAVFAudio.dylib               0x27484ef8 0x2746b000 + 106232
7   libAVFAudio.dylib               0x274773f4 0x2746b000 + 50164
8   libsystem_pthread.dylib         0x3741cddc 0x3741a000 + 11740
9   libsystem_pthread.dylib         0x3741cd4e 0x3741a000 + 11598
10  libsystem_pthread.dylib         0x3741aaf8 0x3741a000 + 2808

Thread 0 crashed with ARM Thread State (32-bit):
    r0: 0x00000000    r1: 0x00000000      r2: 0x00000000      r3: 0x00000003
    r4: 0x00000006    r5: 0x39cdd9dc      r6: 0x39cc9840      r7: 0x0039a438
    r8: 0x145d6610    r9: 0x7420666f     r10: 0x39cc8074     r11: 0x145d6634
    ip: 0x00000148    sp: 0x0039a42c      lr: 0x3741dc8b      pc: 0x3739cdf0
  cpsr: 0x00000010

最佳答案

事实证明我犯了一个菜鸟错误,并且崩溃确实是 iPhone 4s 特有的:

我的应用程序需要 iOS 8 或更高版本,并且我正在初始化一个相机捕获 session 预设值,该值与所有支持 iOS8 的 iPhone 的所有相机兼容(iPhone 4s 的前置相机除外)。

这也解释了为什么模拟器中无法重现崩溃,因为那里不支持相机捕获。

关于当使用 Xcode 7 构建+提交时,仅在运行 iOS 8 的 iPhone 4s 上,iOS Testflight 应用程序在启动屏幕上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32930477/

相关文章:

iphone - iOS从nsmutablearray中删除对象并重新索引数组

ios - 如何摆脱整行 tableView 分隔符?

iphone - MDM - 无线配置文件交付和配置

objective-c - iOS 上一篇/下一篇文章或页面中使用硬件音量按钮的常用应用程序

objective-c - 在通用ios应用中管理资源

objective-c - 如何在 Objective-C 中实现或修改方法调度表?

ios - 刷新 TableView iphone

iphone - 函数调用参数是未初始化的值?

ios - 在 ios 上使用 typescript/web 音频 api

ios - 核心数据对象实体比较随机崩溃 EXC_BAD_ACCESS