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