启动时应用程序崩溃只有更新而不是全新安装

时间:2012-10-19 04:53:40

标签: iphone ios crash ios6

我在App Store上的最新版本有一个奇怪的问题。一些用户报告升级应用程序后启动时应用程序崩溃,只有iOS6才会发生。但是,如果用户删除应用程序并进行全新安装,则不会发生崩溃。

我检查手机上的崩溃日志并看到此错误。

OS Version:      iOS 6.0 (10A403)

Exception Type:  EXC_BAD_ACCESS (SIGBUS)
Exception Codes: EXC_ARM_DA_ALIGN at 0x2fe6f785
Crashed Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   My App                          0x00074ace +[aClass sharedNormalImages] (aClass.m:34)
1   dyld                            0x2fe79628 ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) + 16
2   dyld                            0x2fe76a3a ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&) + 382
3   dyld                            0x2fe76874 ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) + 36
4   dyld                            0x2fe6dd04 dyld::initializeMainExecutable() + 172
5   dyld                            0x2fe7085c dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) + 1804
6   dyld                            0x2fe6d32c dyldbootstrap::start(macho_header const*, int, char const**, long, macho_header const*, unsigned long*) + 604
7   dyld                            0x2fe6d064 _dyld_start + 60

sharedNormalImages函数根本没有从最近的版本更改,它只是一个返回这样的数组的函数。

static NSArray *normalImages = nil;
+ (NSArray *)sharedNormalImages
{
     if (normalImages == nil) {
             normalImages = @[@"xx.png", @"xy.png", @"yx.png", @"yy.png"];
     }

     return normalImages;
}

我真的不知道发生了什么。我尝试使用旧版本安装,然后使用Xcode替换新版本。问题也不会发生。所以我根本无法用环境复制它。这太奇怪了。

修改

不确定它是如何相关的,但我在设备控制台上看到此错误消息。

Oct 19 12:36:16 iPhone My App[210] <Error>: objc[210]: Class  is implemented in both /var/mobile/Applications/A5EC61E7-7DBA-4FA5-A5FE-6D49EAFAD6EB/My App.app/My App and /var/mobile/Applications/A5EC61E7-7DBA-4FA5-A5FE-6D49EAFAD6EB/My App.app/My App. One of the two will be used. Which one is undefined.
Oct 19 12:36:16 iPhone kernel[0] <Debug>: launchd[210] Builtin profile: container (sandbox)
Oct 19 12:36:16 iPhone kernel[0] <Debug>: launchd[210] Container: /private/var/mobile/Applications/A5EC61E7-7DBA-4FA5-A5FE-6D49EAFAD6EB (sandbox)
Oct 19 12:36:16 iPhone ReportCrash[211] <Notice>: Formulating crash report for process My App[210]
Oct 19 12:36:16 iPhone com.apple.launchd[1] (UIKitApplication:com.acompany.myapp[0x813f][210]) <Warning>: (UIKitApplication:com.acompany.myapp[0x813f]) Job appears to have crashed: Bus error: 10
Oct 19 12:36:16 iPhone com.apple.launchd[1] (UIKitApplication:com.acompany.myapp[0x813f]) <Notice>: (UIKitApplication:com.acompany.myapp[0x813f]) Throttling respawn: Will start in 2147483647 seconds
Oct 19 12:36:16 iPhone backboardd[52] <Warning>: Application 'UIKitApplication:com.acompany.myapp[0x813f]' exited abnormally with signal 10: Bus error: 10
Oct 19 12:36:16 iPhone ReportCrash[211] <Error>: libMobileGestalt copySystemVersionDictionaryValue: Could not lookup ReleaseType from system version dictionary
Oct 19 12:36:16 iPhone ReportCrash[211] <Notice>: Saved crashreport to /var/mobile/Library/Logs/CrashReporter/My App_2012-10-19-123616_iPhone.plist using uid: 0 gid: 0, synthetic_euid: 501 egid: 0

仅供参考,我将应用程序图标更新为最新更新的“预渲染”,但我认为不会导致崩溃。

1 个答案:

答案 0 :(得分:1)

要复制此问题,请尝试以下步骤:

  1. 使用Ad-Hoc Provisioning配置文件构建两个版本,
  2. 使用iTunes安装旧版本。
  3. 在设备上打开应用并浏览所有视图。
  4. 使用iTunes更新新版应用并运行