9191 cache : true
9292
9393 - name : Install SwiftLint
94+ env :
95+ HOMEBREW_REQUIRE_TAP_TRUST : " 1"
9496 shell : bash
9597 run : |
9698 set -euo pipefail
@@ -114,6 +116,32 @@ jobs:
114116 - name : Build for TestFlight
115117 run : bundle exec fastlane testflight_build_only
116118
119+ - name : Upload dSYM to Firebase Crashlytics
120+ shell : bash
121+ run : |
122+ set -euo pipefail
123+
124+ google_service_info_path="Application/DevLogApp/Sources/Resource/GoogleService-Info.plist"
125+ dsym_zip_path="$(find fastlane/testflight_build -maxdepth 1 -name '*.dSYM.zip' -print -quit)"
126+ upload_symbols_path="$(find "$HOME/Library/Developer/Xcode/DerivedData" "$HOME/Library/Developer/Xcode/SourcePackages" "$GITHUB_WORKSPACE" -path '*/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/upload-symbols' -type f -print -quit 2>/dev/null || true)"
127+
128+ if [ ! -f "$google_service_info_path" ]; then
129+ echo "Missing GoogleService-Info.plist at $google_service_info_path" >&2
130+ exit 1
131+ fi
132+
133+ if [ -z "$dsym_zip_path" ]; then
134+ echo "Missing dSYM zip in fastlane/testflight_build" >&2
135+ exit 1
136+ fi
137+
138+ if [ -z "$upload_symbols_path" ]; then
139+ echo "Missing Firebase Crashlytics upload-symbols script" >&2
140+ exit 1
141+ fi
142+
143+ "$upload_symbols_path" -gsp "$google_service_info_path" -p ios "$dsym_zip_path"
144+
117145 - name : Upload TestFlight build log
118146 if : always()
119147 uses : actions/upload-artifact@v6
@@ -122,6 +150,14 @@ jobs:
122150 path : ~/Library/Logs/gym/*.log
123151 if-no-files-found : ignore
124152
153+ - name : Upload TestFlight dSYM
154+ if : always()
155+ uses : actions/upload-artifact@v6
156+ with :
157+ name : testflight-dsym
158+ path : fastlane/testflight_build/*.dSYM.zip
159+ if-no-files-found : warn
160+
125161 - name : Skip TestFlight Upload
126162 if : (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'qa-local')) || (github.event_name == 'workflow_dispatch' && inputs.upload_to_app_store_connect != 'true')
127163 run : echo "Skipping TestFlight upload"
0 commit comments