2

我的应用程序仅在我将其加载到应用程序商店后才会崩溃。

一些背景知识,我已经在多个物理设备上通过试飞测试了该应用程序。该应用程序不会在所有设备上崩溃,首先安装在设备上可以正常工作(从未安装过该应用程序的设备)。在我测试过的大多数设备上安装之前安装了该应用程序的设备。即使我先从设备上删除了该应用程序,然后从应用程序商店安装它,也会发生这种情况。

另一件事是,在设备上发生了崩溃,从应用商店安装时,它首先安装了旧版本,然后允许我更新到新版本。在没有崩溃的设备上,它直接加载了新版本(无需先安装旧版本)。

任何如何解决这个问题的想法都将受到高度赞赏,以及如何在我的开发/测试环境中复制该问题的想法。

以下是其中一台设备的崩溃日志:

Incident Identifier: 2F05957D-D4B0-49A0-9DEC-9F93AC008ED7
CrashReporter Key:   0dcfb6f747b264afdb9bc565deb821964c811b36
Hardware Model:      iPhone5,1
Process:         SlimNavigator [10283]
Path:            /var/mobile/Applications/C4110616-BE4C-4433-9FB9-C43F042D4CCA/SlimNavigator.app/SlimNavigator
Identifier:      SlimNavigator
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  launchd [1]

Date/Time:       2013-07-14 20:17:22.268 -0700
OS Version:      iOS 6.1.4 (10B350)
Report Version:  104

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000001
Crashed Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   SlimNavigator   0x0010ad46 +[NSHTTPCookieStorage(DeleteForURL) deleteCookiesForURL:] (NSHTTPCookieStorage+DeleteForURL.m:20)
1   dyld            0x2ff076c0 ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) + 16
2   dyld            0x2ff04a36 ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&) + 382
3   dyld            0x2ff04870 ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) + 36
4   dyld            0x2fefbd0e dyld::initializeMainExecutable() + 174
5   dyld            0x2fefe85e dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) + 1802
6   dyld            0x2fefb32c dyldbootstrap::start(macho_header const*, int, char const**, long, macho_header const*, unsigned long*) + 604
7   dyld            0x2fefb064 _dyld_start + 60

Thread 0 crashed with ARM Thread State (32-bit):
r0: 0x00000001    r1: 0x2fd8fd3c      r2: 0x00000000      r3: 0x2fd8fd68
r4: 0x000000a5    r5: 0x00000000      r6: 0x0010ad55      r7: 0x2fd8eb18
r8: 0x2ff1d674    r9: 0x0000a100     r10: 0x00000000     r11: 0x00000001
ip: 0x0000a100    sp: 0x2fd8eae0      lr: 0x2ff075b5      pc: 0x0010ad46
cpsr: 0x40000030

Binary Images:
0x71000 -   0x20bfff +SlimNavigator armv7  <65ab2d7c06c932f6b3925448d72d95bf> /var/mobile/Applications/C4110616-BE4C-4433-9FB9-C43F042D4CCA/SlimNavigator.app/SlimNavigator
0x2fefa000 - 0x2ff1afff  dyld armv7s  <67efe80b9d863d6bb30fe51e6e17b070> /usr/lib/dyld
0x304d9000 - 0x305bffff  AVFoundation armv7s  <56f22385ccb73e31863f1fa9e0b621dd> /System/Library/Frameworks/AVFoundation.framework/AVFoundation
4

1 回答 1

4

谢谢大家的回答。问题解决了,我添加了两个更改 1. -all_load 标志到链接器以加载发生崩溃的有问题的库, 2. 删除对崩溃的库方法的可能调用。我仍然不确定为什么在设备上运行发布版本时问题没有表现出来,并且只发生在应用商店的版本中。

根据答案和我的经验,我可以给出的最相关的建议是比较您的调试和发布“构建设置”并尝试更改它们以匹配发布设置(“优化级别”是第一个尝试)。

于 2013-07-16T22:15:35.253 回答