7

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

参考までに、最新の更新でアプリのアイコンを「事前レンダリング」するように更新しましたが、クラッシュする可能性はないと思います。

4

1 に答える 1

1

問題を再現するには、次の手順を試してください。

  1. アドホック プロビジョニング プロファイルを使用して両方のバージョンをビルドします。
  2. iTunes を使用して古いバージョンをインストールします。
  3. デバイスでアプリを開き、すべてのビューを通過します。
  4. iTunesを使用して新しいバージョンのアプリで更新し、実行します
于 2012-10-19T05:39:34.530 に答える