0

アプリの最初のバージョンはアプリ ストアにあります。アプリを国際化するために、アプリで使用されるコア データ モデルにマイナーな変更が 1 つ加えられました。変更点は、エンティティの 1 つに新しい属性が追加されたことです。

新しいバージョン管理モデルをコア データに追加し、現在の Core DataModel を作成されたこの新しいバージョンに設定することで、変更を加えました。

軽量の移行を行うために、次のように必要なオプションを追加しました。

NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
    [NSNumber numberWithBool:YES],    NSMigratePersistentStoresAutomaticallyOption,
    [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
NSError *error = nil;
__persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc]  initWithManagedObjectModel:[self managedObjectModel]];
[__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error];

シミュレーターでテストし、デバイスでテストする場合 (MAC に接続されている場合)、これはすべて正常に機能します。ipa ファイルを作成してデバイスにインストールすると、アプリを起動するとすぐにアプリがクラッシュします。default.png ファイルが表示され、他のビューは読み込まれません。

アプリのクラッシュ ログには、CoreData に関するいくつかの問題が示されていますが、これが問題の原因であるとは言えません。クラッシュ ログは次のようになります。

Last Exception Backtrace:
0   CoreFoundation                  0x374f388f __exceptionPreprocess + 163
1   libobjc.A.dylib                 0x31568259 objc_exception_throw + 33
2   CoreData                        0x324ee491 -[NSManagedObjectModel(_NSInternalMethods) _setIsEditable:] + 1
3   Company                         0x000dfe7f 0xde000 + 7807
4   Company                         0x000dfc91 0xde000 + 7313
5   Company                         0x000ecb5b 0xde000 + 60251
6   Company                         0x000ec8a3 0xde000 + 59555
7   Company                         0x000ec82b 0xde000 + 59435
8   Company                         0x000eb61d 0xde000 + 54813
9   UIKit                           0x3080cd59 -[UIViewController awakeFromNib] + 113
10  UIKit                           0x3089f207 -[UINib instantiateWithOwner:options:] +     1243
11  UIKit                           0x308a0861 -[NSBundle(UINSBundleAdditions) loadNibNamed:owner:options:] + 137
12  UIKit                           0x307d6385 -[UIApplication _loadMainNibFileNamed:bundle:] + 37
13  UIKit                           0x3065f6eb -[UIApplication _loadMainInterfaceFile] + 223
14  UIKit                           0x3065972f -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 235
15  UIKit                           0x30627ac3 -[UIApplication handleEvent:withNewEvent:] + 1011
16  UIKit                           0x30627567 -[UIApplication sendEvent:] + 55
17  UIKit                           0x30626f3b _UIApplicationHandleEvent + 5827
18  GraphicsServices                0x3764322b PurpleEventCallback + 883
19  CoreFoundation                  0x374c7523 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 39
20  CoreFoundation                  0x374c74c5 __CFRunLoopDoSource1 + 141
21  CoreFoundation                  0x374c6313 __CFRunLoopRun + 1371
22  CoreFoundation                  0x374494a5 CFRunLoopRunSpecific + 301
23  CoreFoundation                  0x3744936d CFRunLoopRunInMode + 105
24  UIKit                           0x3065886b -[UIApplication _run] + 551
25  UIKit                           0x30655cd5 UIApplicationMain + 1081
26  Company                         0x000df5df 0xde000 + 5599
27  Company                         0x000df598 0xde000 + 5528


Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libsystem_kernel.dylib          0x3289832c __pthread_kill + 8
1   libsystem_c.dylib               0x34c0d208 pthread_kill + 48
2   libsystem_c.dylib               0x34c06298 abort + 88
3   libc++abi.dylib                 0x3221bf64 abort_message + 40
4   libc++abi.dylib                 0x32219346 _ZL17default_terminatev + 18
5   libobjc.A.dylib                 0x31568350 _objc_terminate + 140
6   libc++abi.dylib                 0x322193be _ZL19safe_handler_callerPFvvE + 70
7   libc++abi.dylib                 0x3221944a std::terminate() + 14
8   libc++abi.dylib                 0x3221a81e __cxa_rethrow + 82
9   libobjc.A.dylib                 0x315682a2 objc_exception_rethrow + 6
10  CoreFoundation                  0x37449506 CFRunLoopRunSpecific + 398
11  CoreFoundation                  0x37449366 CFRunLoopRunInMode + 98
12  UIKit                           0x30658864 -[UIApplication _run] + 544
13  UIKit                           0x30655cce UIApplicationMain + 1074
14  Company                         0x000df5d8 0xde000 + 5592
15  Company                         0x000df590 0xde000 + 5520

Thread 1 name:  Dispatch queue: com.apple.libdispatch-manager
Thread 1:
0   libsystem_kernel.dylib          0x328883a8 kevent + 24
1   libdispatch.dylib               0x346a5f04 _dispatch_mgr_invoke + 708
2   libdispatch.dylib               0x346a5c22 _dispatch_mgr_thread + 30

Thread 2:
0   libsystem_kernel.dylib          0x32898cd4 __workq_kernreturn + 8
1   libsystem_c.dylib               0x34bc8f36 _pthread_wqthread + 610
2   libsystem_c.dylib               0x34bc8cc8 start_wqthread + 0

Thread 3:
0   libsystem_kernel.dylib          0x32898cd4 __workq_kernreturn + 8
1   libsystem_c.dylib               0x34bc8f36 _pthread_wqthread + 610
2   libsystem_c.dylib               0x34bc8cc8 start_wqthread + 0

Thread 4 name:  WebThread
Thread 4:
0   libsystem_kernel.dylib          0x328980d8 __psynch_mutexwait + 24
1   libsystem_c.dylib               0x34bc2674 pthread_mutex_lock + 376
2   WebCore                         0x336994e8 _ZL17_WebTryThreadLockb + 208
3   WebCore                         0x336997ec _ZL14WebRunLoopLockP19__CFRunLoopObservermPv + 24
4   CoreFoundation                  0x374c7b14 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 12
5   CoreFoundation                  0x374c5d50 __CFRunLoopDoObservers + 252
6   CoreFoundation                  0x374c616a __CFRunLoopRun + 946
7   CoreFoundation                  0x3744949e CFRunLoopRunSpecific + 294
8   CoreFoundation                  0x37449366 CFRunLoopRunInMode + 98
9   WebCore                         0x3373cc9c _ZL12RunWebThreadPv + 396
10  libsystem_c.dylib               0x34bce72e _pthread_start + 314
11  libsystem_c.dylib               0x34bce5e8 thread_start + 0

Thread 5:
0   libsystem_kernel.dylib          0x32898cd4 __workq_kernreturn + 8
1   libsystem_c.dylib               0x34bc8f36 _pthread_wqthread + 610
2   libsystem_c.dylib               0x34bc8cc8 start_wqthread + 0

Thread 0 crashed with ARM Thread State:
r0: 0x00000000    r1: 0x00000000      r2: 0x00000001      r3: 0x00000000
r4: 0x00000006    r5: 0x3f18dd98      r6: 0x00000002      r7: 0x2fedca68
r8: 0x0c641d30    r9: 0x00000000     r10: 0x0c63fd00     r11: 0x3fae9728
ip: 0x00000148    sp: 0x2fedca5c      lr: 0x34c0d20f      pc: 0x3289832c

cpsr: 0x000f0010

この線

"2 CoreData   0x324ee491 -[NSManagedObjectModel(_NSInternalMethods) _setIsEditable:] + 1" 

コアデータに問題があることを示していますが、これを修正するために何をする必要があるのか​​ わかりません。何か案が?

4

1 に答える 1

0

多くの時間を費やした後、問題を見つけました。

ipa ファイルはビルド スクリプトを使用してビルドされていましたが、これはビルド エラーが原因でした。

ビルドされた .ipa ファイルには、コア データの 2 番目のバージョンが含まれていませんでした。そのため、アプリは常にクラッシュしていました。

于 2013-03-25T19:21:30.403 に答える