How to Upload a dSYM in GitHub Actions
dSYM files live inside the .xcarchive under dSYMs; upload them as an artifact so crash reports can be symbolicated later.
After xcodebuild archive, the symbols sit in <archive>.xcarchive/dSYMs. Upload that directory with actions/upload-artifact (or push it to your crash reporter) so released crashes are readable.
Steps
- Archive the app so Xcode emits dSYMs.
- Point at
<archive>.xcarchive/dSYMs. - Upload it with
actions/upload-artifact, or send it to your crash service.
Workflow
.github/workflows/ci.yml
steps:
- name: Archive
run: |
xcodebuild archive \
-scheme MyApp \
-archivePath $RUNNER_TEMP/MyApp.xcarchive \
DEBUG_INFORMATION_FORMAT=dwarf-with-dsym
- uses: actions/upload-artifact@v4
with:
name: dsyms
path: ${{ runner.temp }}/MyApp.xcarchive/dSYMsGotchas
- dSYMs are produced only when
DEBUG_INFORMATION_FORMAT=dwarf-with-dsym; a debug build with inline DWARF has none. - Bitcode-recompiled builds get new dSYMs from App Store Connect; download those for symbolication instead of the local ones.
Related guides
How to Build and Archive an iOS App in GitHub ActionsBuild an .xcarchive on a GitHub Actions macOS runner with xcodebuild archive, then export a signed .ipa with…
How to Set Up an App Store Connect API Key in GitHub ActionsProvide an App Store Connect API key (.p8) to a GitHub Actions runner as a base64 secret, then pass the key i…