Crash logs from iOS apps appear as raw memory addresses in the Mobile Analysis console when the symbol table is missing or mismatched. Upload the correct dSYM file to symbolicate them.
Mobile Analysis lets you upload crash logs to monitor client-side crashes. For Android apps, crash log call stacks are automatically symbolicated during upload, so you can directly locate the crash point. For iOS apps, you must upload a symbol table in the console.
Before resolving this issue, understand what a symbol table is and why it is needed.
-
What is a symbol table?
A symbol table maps memory addresses to function names and line numbers in your code.
-
Why is a symbol table needed?
iOS crash logs record call stack information as memory addresses, so you cannot directly view which code caused a crash. The mPaaS server uses a symbol table to symbolicate the program stack from iOS crash logs. For example:
Before parsing:
18 NebulaTest 0x00000001030f6b7c 0x104ad4000 + 9282380 19 NebulaTest 0x00000001030f6ed4 0x104ad4000 + 9283236 20 NebulaTest 0x00000001030f6d0c 0x104ad4000 + 9282780 21 NebulaTest 0x00000001030f6ed4 0x104ad4000 + 9283236 22 NebulaTest 0x00000001030f6d0c 0x104ad4000 + 9282780After parsing:
18 NebulaTest 0x00000001030f6b7c -[DTJsonEncoder encodeObject:ofClass:recusive:] + 424 19 NebulaTest 0x00000001030f6ed4 -[DTJsonEncoder encodeObject:] + 280 20 NebulaTest 0x00000001030f6d0c -[DTJsonEncoder encodeObject:ofClass:recusive:] + 824 21 NebulaTest 0x00000001030f6ed4 -[DTJsonEncoder encodeObject:] + 280 22 NebulaTest 0x00000001030f6d0c -[DTJsonEncoder encodeObject:ofClass:recusive:] + 824
Get the dSYM symbol table file from an iOS project
By default, Xcode generates a dSYM file in Release build mode. In Debug build mode, configure the following settings:
-
In your iOS project, go to Build Settings > Code Generation and set Generate Debug Symbols to Yes.

-
Go to Build Settings > Build Option and set Debug Information Format to DWARF with dSYM File.

After the build succeeds, open the folder where the app is located:

The dSYM symbol table file is generated in the same folder:

Upload the symbol table through the mPaaS console
After you publish the app to the App Store, create a publishing task for the corresponding version in the mPaaS console and upload the matching symbol table file.
Once configured correctly, all crash logs from this version appear as symbolicated logs in the mPaaS console.
If you have uploaded the symbol table for your iOS project but the crash logs are still not symbolicated, verify locally that the symbol table can be used to manually symbolicate the crash logs.
If a crash log is incompletely or incorrectly symbolicated, verify that the symbol table exactly matches the app version. Back up the dSYM symbol table files for each published version to prevent them from being lost.