web-dev-qa-db-ja.com

.ipsクラッシュレポートファイルから情報を取得する

IPhone 5および4sでアプリをテストしました。そして、私は自分のアプリをテスターに​​送りました。彼は5sのiPhoneを持っています。すべてが大丈夫だった。しばらくして、アプリにいくつかの機能を追加したとき、彼に別のバージョンを送りましたが、今では起動時にクラッシュすると彼は言います。私のデバイスではすべて問題ありません。私は彼にクラッシュレポートを送ってほしいと頼んだ。 .ipsファイルは次のとおりです。

{"bundleID”:"name.my-app","app_name”:”my-app","bug_type":"109","name”:”my-app","os_version":"iPhone OS 7.1 (11D167)","version":"1.0 (1.0)"}
Incident Identifier: 3916. . .194
CrashReporter Key:   58fd. . .7399
Hardware Model:      iPhone6,2
Process:             my-app [277]
Path:                /var/mobile/Applications/0AB0. . .B5B/my-app.app/my-app
Identifier:          name.my-app
Version:             1.0 (1.0)
Code Type:           ARM-64 (Native)
Parent Process:      launchd [1]

Date/Time:           2014-03-27 02:10:39.959 +0400
OS Version:          iOS 7.1 (11D167)
Report Version:      104

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Triggered by Thread:  24

Last Exception Backtrace:
(0x1893e2950 0x1958e81fc 0x1893e2890 0x1000f09a0 0x195ec0014 0x195ebffd4 0x195ec64a8 0x195ec24c0 0x195ec70f4 0x195ec74fc 0x1960556bc 0x19605554c)

Thread 0:
0   libsystem_kernel.dylib          0x0000000195fbdca0 0x195fbc000 + 7328
1   CoreFoundation                  0x00000001893a2570 0x1892d8000 + 828784
2   CoreFoundation                  0x00000001893a0764 0x1892d8000 + 821092
3   CoreFoundation                  0x00000001892e16cc 0x1892d8000 + 38604
4   GraphicsServices                0x000000018efc5c08 0x18efb8000 + 56328
5   UIKit                           0x000000018c412fd8 0x18c398000 + 503768
6   my-app                      0x00000001000f1ae8 0x1000dc000 + 88808
7   libdyld.dylib                   0x0000000195edba9c 0x195ed8000 + 15004

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 

Thread 24 Crashed:
0   libsystem_kernel.dylib          0x0000000195fd658c 0x195fbc000 + 107916
1   libsystem_c.dylib               0x0000000195f6a804 0x195f08000 + 403460
2   libc++abi.dylib                 0x0000000195190990 0x195190000 + 2448
3   libc++abi.dylib                 0x00000001951adc28 0x195190000 + 121896
4   libobjc.A.dylib                 0x00000001958e84d0 0x1958e0000 + 34000
5   libc++abi.dylib                 0x00000001951ab164 0x195190000 + 110948
6   libc++abi.dylib                 0x00000001951aaa7c 0x195190000 + 109180
7   libobjc.A.dylib                 0x00000001958e8314 0x1958e0000 + 33556
8   CoreFoundation                  0x00000001893e288c 0x1892d8000 + 1091724
9   my-app                      0x00000001000f099c 0x1000dc000 + 84380
10  libdispatch.dylib               0x0000000195ec0010 0x195ebc000 + 16400
11  libdispatch.dylib               0x0000000195ebffd0 0x195ebc000 + 16336
12  libdispatch.dylib               0x0000000195ec64a4 0x195ebc000 + 42148
13  libdispatch.dylib               0x0000000195ec24bc 0x195ebc000 + 25788
14  libdispatch.dylib               0x0000000195ec70f0 0x195ebc000 + 45296
15  libdispatch.dylib               0x0000000195ec74f8 0x195ebc000 + 46328
16  libsystem_pthread.dylib         0x00000001960556b8 0x196054000 + 5816
17  libsystem_pthread.dylib         0x0000000196055548 0x196054000 + 5448

Thread 25:
0   libsystem_kernel.dylib          0x0000000195fd6e74 0x195fbc000 + 110196
1   libsystem_pthread.dylib         0x0000000196055548 0x196054000 + 5448

Thread 26:
0   libsystem_kernel.dylib          0x0000000195fd6e74 0x195fbc000 + 110196
1   libsystem_pthread.dylib         0x0000000196055548 0x196054000 + 5448

Thread 24 crashed with ARM Thread State (64-bit):
    x0: 0x0000000000000000   x1: 0x0000000000000000   x2: 0x0000000000000000   x3: 0x00000001035de7b8
    x4: 0x0000000000002060   x5: 0x00000001035de870   x6: 0x000000000000006e   x7: 0x0000000000000640
    x8: 0x000000000c000000   x9: 0x0000000004000000  x10: 0x0000000098d956f7  x11: 0x0000000000000300
   x12: 0x0000000000000000  x13: 0x0000000000000000  x14: 0x0000000000000000  x15: 0x0000000195f83dcb
   x16: 0x0000000000000148  x17: 0x00c8d95a0138084d  x18: 0x0000000000000000  x19: 0x0000000000000006
   x20: 0x00000001035e0000  x21: 0x000000017013b5d8  x22: 0x000000017013b600  x23: 0x000000015d610870
   x24: 0x00000001963068e8  x25: 0x0000000100100000  x26: 0x0000000198d87c40  x27: 0x000000017026c2c0
   x28: 0x000000000000000a  fp: 0x00000001035de7f0   lr: 0x000000019605916c
    sp: 0x00000001035de7d0   pc: 0x0000000195fd658c cpsr: 0x00000000

Binary Images:
0x1000dc000 - 0x1000f7fff my-app arm64  <d6f1f532dfbc36c497acefc4aa2c7f2f> /var/mobile/Applications/0AB088E7-6425-4287-9C4B-1EEF37E7DB5B/my-app.app/my-app
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
0x19606c000 - 0x19608ffff libxpc.dylib arm64  <7077afbad955309d8cb9965960c781f3> /usr/lib/system/libxpc.dylib

私はここで多くの同様の質問を読んでいたが、彼らはターミナルを通して.ipsを象徴する必要があると言っている。しかし、うまくいきません。 atosコマンドは、my-app.appを読み取れないことを返します、xcrun atosは、指定したものと同じメモリアドレスを返します。

xcrun atos -Arch arm64 -o 'my-app.app' 0x196054000 + 5448
0x196054000
+
5448

わからないが、その+番号を指定する必要があるが、それなしでも機能しない。

事前に感謝します。

更新:

私はそれを理解しました。 NSFileManagerの問題。64ビットと32ビットでは動作が異なります

[fileManager fileExistsAtPath:pathToCacheDir isDirectory:&isDirectory];

isDirectoryはNOを返しますが、pathToCacheDirは有効なディレクトリですが、そのため例外が発生しました。 ただし、質問はまだ有効です。テスターからより理解しやすいレポートを取得するにはどうすればよいですか?

23
Alfred Zien

Windowsユーザーから.ipsファイルを大量に受け取ったのですが、それらをどう処理するのか疑問に思っていました。それらの名前を.crashに変更すると、Xcodeはそれらをインポート(オーガナイザー、ライブラリデバイスログ、インポート)し、シンボリック化します。

edit:この答えを最初に書いたとき、それはXcode 6を念頭に置いていました。 Xcodeの新しいバージョン(7以上だと思います)は状況を変えました。 Appleによる

Xcodeは、発生したすべてのクラッシュレポートを自動的に記号化しようとします。シンボリック化のために必要なことは、Xcode Organizerにクラッシュレポートを追加することだけです。

  1. IOSデバイスをMacに接続します
  2. 「ウィンドウ」メニューから「デバイス」を選択します
  3. 左の列の[デバイス]セクションで、デバイスを選択します
  4. 右側のパネルの[デバイス情報]セクションの下にある[デバイスログの表示]ボタンをクリックします。
  5. 表示されたパネルの左側の列にクラッシュレポートをドラッグします
  6. Xcodeは自動的にクラッシュレポートを記号化し、結果を表示します
47
Isaac

Atosを使用する場合、バイナリイメージの最初のアドレスを指定する必要があり、コマンドは.appおよび.dsymが配置されているディレクトリから実行する必要があります。

その後、次のコマンドが機能します。atos -o [my-app.app/my-app] -Arch [e.g armv7] -l [ipsファイルのバイナリイメージセクションの最初のアドレス] [最後の例外バックトレースセクションのすべてのアドレス]

あなたの場合:

atos -o my-app.app/my-app -Arch arm-64 -l 0x1000dc000 0x1893e2950 0x1958e81fc 0x1893e2890 0x1000f09a0 0x195ec0014 0x195ebffd4 0x195ec64a8 0x195ec24c0 0x195ec70f4 0x195ec74fc 0x1960556bc 0x19605554c
2
leokash