App Store ユーザーから送信されたクラッシュ ログを Xcode 7 でシンボル表示することができませんでした。必要な dSYM をすべて持っているにもかかわらず、手動でシンボル表示しようとすると失敗します。
クラッシュ ログの抜粋:
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x0000000100fa990c
Triggered by Thread: 0
Filtered syslog:
None found
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libswiftCore.dylib 0x0000000100fa990c 0x100e64000 + 1333516
1 libswiftCore.dylib 0x0000000100fa990c 0x100e64000 + 1333516
2 MyApp 0x00000001002cdc50 0x1000a4000 + 2268240
...
Binary Images:
0x1000a4000 - 0x10079ffff MyApp arm64 <29a862b975b335ae91c2615c775e064f> /var/mobile/Containers/Bundle/Application/CC9E1FB1-22BB-4723-B28A-95EBE21522A1/MyApp.app/MyApp
私のアプリでは Bitcode が有効になっているため、Xcode > Organizer > Archives から dSYM をダウンロードしました。次に、App Store に送信されたビルドのアーカイブ内に実際に存在することを確認し29A862B9-75B3-35AE-91C2-615C775E064F.dSYM
ました (ユーザーがクラッシュしたときに実行していたのと同じビルド)。
次に、クラッシュ ログを手動でシンボル表示するために、ターミナルで次のコマンドを実行しました。
$ export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"
$ /Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/Current/Resources/symbolicatecrash -v ~/Desktop/CrashOnLaunchLogFromUser.crash > ~/Desktop/Symbolicated.crash
その後、処理が完了するのを待ちましたが、結果のシンボリック化されたファイルでは、シンボルが置換されていませんでした。出力を見ると、アプリのバイナリに関連する次の情報が表示されました。
Symbolicating...
....fetching symbol file for MyApp--[undef]
Searching []...-- NO MATCH
Searching in Spotlight for dsym with UUID of 29a862b975b335ae91c2615c775e064f
Running mdfind "com_apple_xcode_dsym_uuids == 29A862B9-75B3-35AE-91C2-615C775E064F"
Running mdls -name com_apple_xcode_dsym_paths ...
... Lots of paths including those to all dSYMs from the correct archive that spotlight found
... I can also see that it finds the correct MyApp.app file from the archive as well
## /Users/Sencha/Library/Developer/Xcode/DerivedData/MyApp-byivrddxclcridbtblvodrqymqwv/Build/Products/Debug-iphoneos/MyApp.app/MyApp doesn't contain arm64 slice
UUID of executable is: 29a862b975b335ae91c2615c775e064f
Executable name: /Users/Sencha/Library/Developer/Xcode/DerivedData/MyApp-byivrddxclcridbtblvodrqymqwv/Build/Products/Debug-iphoneos/MyApp.app/MyApp
UUID doesn't match dsym for executable /Users/Sencha/Library/Developer/Xcode/DerivedData/MyApp-byivrddxclcridbtblvodrqymqwv/Build/Products/Debug-iphoneos/MyApp.app/MyApp
Running /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo -info '/Users/Sencha/Library/Developer/Xcode/DerivedData/MyApp-byivrddxclcridbtblvodrqymqwv/Build/Products/Debug-iphonesimulator/MyApp.app/MyApp'
## /Users/Sencha/Library/Developer/Xcode/DerivedData/MyApp-byivrddxclcridbtblvodrqymqwv/Build/Products/Debug-iphonesimulator/MyApp.app/MyApp doesn't contain arm64 slice
UUID of executable is: 29a862b975b335ae91c2615c775e064f
Executable name: /Users/Sencha/Library/Developer/Xcode/DerivedData/MyApp-byivrddxclcridbtblvodrqymqwv/Build/Products/Debug-iphonesimulator/MyApp.app/MyApp
UUID doesn't match dsym for executable /Users/Sencha/Library/Developer/Xcode/DerivedData/MyApp-byivrddxclcridbtblvodrqymqwv/Build/Products/Debug-iphonesimulator/MyApp.app/MyApp
Running /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo -info '/Users/Sencha/Library/Developer/Xcode/Archives/2016-01-01/MyApp 030100.03.9 01-01-2016, 20.27.xcarchive/Products/Applications/MyApp.app/MyApp'
Running /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool -arch arm64 -l '/Users/Sencha/Library/Developer/Xcode/Archives/2016-01-01/MyApp 030100.03.9 01-01-2016, 20.27.xcarchive/Products/Applications/MyApp.app/MyApp'
Given UUID 29a862b975b335ae91c2615c775e064f for '/Users/Sencha/Library/Developer/Xcode/Archives/2016-01-01/MyApp 030100.03.9 01-01-2016, 20.27.xcarchive/Products/Applications/MyApp.app/MyApp' is really UUID 0209e38b2511300f967d01738731d7dd
UUID of executable is: 29a862b975b335ae91c2615c775e064f
Executable name: /Users/Sencha/Library/Developer/Xcode/Archives/2016-01-01/MyApp 030100.03.9 01-01-2016, 20.27.xcarchive/Products/Applications/MyApp.app/MyApp
UUID doesn't match dsym for executable /Users/Sencha/Library/Developer/Xcode/Archives/2016-01-01/MyApp 030100.03.9 01-01-2016, 20.27.xcarchive/Products/Applications/MyApp.app/MyApp
Did not find executable for dsym
## Warning: Can't find any unstripped binary that matches version of /var/mobile/Containers/Bundle/Application/CC9E1FB1-22BB-4723-B28A-95EBE21522A1/MyApp.app/MyApp
...
done.
0 binary images were found.
これにより、シンボルが置き換えられることはありません。これが機能しない理由はありますか?すべての UUID に問題はないように見えます。正しいアプリ ファイル、dSYM などが見つかります。必要に応じて、さらに情報を提供させていただきます。