Configure your project for symbolication
What is symbolication?
Before you can analyze crash reports, the stack traces need to be symbolicated―that is, replacing memory addresses with human-readable function names and line numbers. These debug symbols are contained in dSYM bundles that are updated periodically.
When can I use symbolication?
Symbolication is supported when you use the MINT Data Collector to send data from your mobile apps to Splunk Enterprise. If you are using HTTP Event Collector, symbolication is not supported. For more, see About Splunk MINT data collection.
You can configure symbolication on the server or on the device. However, server-side symbolication yields better symbolication results than device-side symbolication.
- Note If you enable bitcode in your application, MINT crash reports will not be symbolicated. For details, see Bitcode support.
Configure server-side symbolication
- In Xcode, open your project and select the target.
- Make sure that your binary name (usually the target name) contains only Latin characters (e.g., only those within ISO-8859-1 character set also known as Latin-1) and no spaces. Otherwise, symbolication may not be successful.
- On the Build Settings tab, verify the following are set for all configurations (typically Debug and Release):
- Strip Debug Symbols During Copy: Yes
- Strip Linked Product: Yes
- On the Build Phases tab, click the + symbol, then click New Run Script Phase.
- In the script editor, add the following script:
- Note This script is designed to run on released builds only. (The Xcode console displays symbolicated stack traces when you run your app in debug mode.)
- To test the configuration, configure the project schema for release and build your project. If the build succeeds, symbolication should be set up correctly.
SCRIPT=`/usr/bin/find "${SRCROOT}" -name splunkmint_postbuild_dsym_upload_script.sh | head -n 1` /bin/bash "${SCRIPT}" "API_KEY" "API_TOKEN"
To upload non-release dSYMs, add "-f" to the end of the script:
SCRIPT=`/usr/bin/find "${SRCROOT}" -name splunkmint_postbuild_dsym_upload_script.sh | head -n 1` /bin/bash "${SCRIPT}" "API_KEY" "API_TOKEN" -f
Be sure to replace API_KEY and API_TOKEN with your MINT API key and API token, respectively. (To find your API token, go to MINT Management Console, then go to Account > Account Info.)
Configure on-device symbolication
You can symbolicate the crash reports on the device, although on-device symbolication does not provide as much useful information, such as the line of code that crashed your application.
- Note Do not configure your mobile app for on-device symbolication if you are targeting iOS version 9.
- In Xcode, open your project and select the target.
- On the Build Settings tab, verify the following are set for all configurations (typically Debug and Release):
- Strip Debug Symbols During Copy: No
- Strip Linked Product: No
- Deployment Postprocessing: No
- Generate Debug Symbols: Yes
Requirements and installation for iOS | Add Splunk MINT to your iOS project |
This documentation applies to the following versions of Splunk MINT™ SDK for iOS (EOL): 5.0.x, 5.1.x
Feedback submitted, thanks!