0

より経験豊富なプログラマーからのアドバイスを期待してここに投稿しています (一般的に、特に Cocos2D を使用する場合)。

いくつかの場所で Cocos2D v2.1 を使用している古いプロジェクトがありますが、それ以外は標準の UIKit です。arm64に準拠するように更新したか、そう思ったので、コンパイラの警告をすべて削除し、シミュレーターでアプリを正常に実行しました。しかし、iPad Air ユーザーからアプリの Cocos2d 部分がクラッシュしているというバグ レポートを受け取りました。

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000010
Triggered by Thread:  0

Thread 0 Crashed:
0   libobjc.A.dylib                   0x00000001995101d0 0x1994f8000 + 98768
1                     0x000000010014e820 -[CCTimer update:] + 152
2                     0x0000000100152140 -[CCScheduler update:] + 420
3                      0x000000010016ab30 -[CCDirectorIOS drawScene] + 172

私が言うように、コンパイラの警告はなく、すべてシミュレーターで機能するので、修正方法についてはちょっと困っています。通常の 2 つのオプションは、1. arm64 を削除する 2. Cocos2D v3.0 にアップグレードすることです。

ただし、私は Cocos2D をアプリのごく一部にしか使用していないため、単純な修正が欠けている可能性があることを期待していました。私は Cocos2D とデバッグ全般にかなりの経験がないので、これが失われた原因であり、他の 2 つのオプションのいずれかに時間を費やすべきである場合、またはおそらく私ができる簡単なことがある場合は、アドバイスを期待しています。私が今欠けている微調整。私はCCTimer update:メソッドを閲覧しましたが、目立ったのはコード内のいくつかのフロートだけで、32/64ビット間で問題になる可能性があることがわかっていますが、コンパイラの警告がなければ途方に暮れています.

アップデート

そのため、ますます神秘的になります。これをシミュレーターではなくローカルでテストするために、新品の iPad Air を購入しましたが、動作します。クラッシュはありません。ユーザーは単に欠陥のあるデバイスを持っているのでしょうか? KERN_INVALID_ADDRESS at 0x0000000000000010少し奇妙に見える例外がスローされることに気付きました。私がオンラインで見た同様のクラッシュ レポートのほとんどは、はるかにランダムに見えるまったく異なるアドレスを持っています。

更新 2

もっと謎。ローカル バージョンはデバイス上で動作しますが (XCode 経由で実行)、実際に AppStore からダウンロードしたアプリはクラッシュします! デバイス ログから、それに関する詳細情報を取得できました。

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000010
Triggered by Thread:  0

Thread 0 Crashed:
0   libobjc.A.dylib                 0x0000000196c041d0 objc_msgSend + 16
1                   0x00000001001da820 -[CCTimer update:] + 152
2                   0x00000001001de140 -[CCScheduler update:] + 420
3                   0x00000001001f6b30 -[CCDirectorIOS drawScene] + 172
4   QuartzCore                      0x000000018cf40cb8 CA::Display::DisplayLinkItem::dispatch() + 32
5   QuartzCore                      0x000000018cf40ac4 CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) + 296
6   IOKit                           0x000000018b23be70 IODispatchCalloutFromCFMessage + 360
7   CoreFoundation                  0x000000018a2ec8dc __CFMachPortPerform + 188
8   CoreFoundation                  0x000000018a2fae8c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
9   CoreFoundation                  0x000000018a2fadec __CFRunLoopDoSource1 + 440
10  CoreFoundation                  0x000000018a2f9010 __CFRunLoopRun + 1616
11  CoreFoundation                  0x000000018a239c1c CFRunLoopRunSpecific + 448
12  GraphicsServices                0x000000018fec9c08 GSEventRunModal + 164
13  UIKit                           0x000000018d36afd8 UIApplicationMain + 1152
14                  0x00000001000f4994 main (main.m:16)
15  libdyld.dylib                   0x00000001971e7a9c start + 0

Thread 1:
0   libsystem_kernel.dylib          0x00000001972c9aa8 kevent64 + 8
1   libdispatch.dylib               0x00000001971cd998 _dispatch_mgr_thread + 48

Thread 2:
0   libsystem_kernel.dylib          0x00000001972c9ca0 mach_msg_trap + 8
1   CoreFoundation                  0x000000018a2fab70 __CFRunLoopServiceMachPort + 180
2   CoreFoundation                  0x000000018a2f8d00 __CFRunLoopRun + 832
3   CoreFoundation                  0x000000018a239c1c CFRunLoopRunSpecific + 448
4   AudioToolbox                    0x0000000189aedabc GenericRunLoopThread::Entry(void*) + 156
5   AudioToolbox                    0x0000000189ade278 CAPThread::Entry(CAPThread*) + 136
6   libsystem_pthread.dylib         0x0000000197363e18 _pthread_body + 164
7   libsystem_pthread.dylib         0x0000000197363d70 _pthread_start + 136
8   libsystem_pthread.dylib         0x0000000197361550 thread_start + 0

Thread 3:
0   libsystem_kernel.dylib          0x00000001972e2e74 __workq_kernreturn + 8
1   libsystem_pthread.dylib         0x0000000197361548 start_wqthread + 0

Thread 4:
0   libsystem_kernel.dylib          0x00000001972e2e74 __workq_kernreturn + 8
1   libsystem_pthread.dylib         0x0000000197361548 start_wqthread + 0

困惑。

4

1 に答える 1