Skip to content

Commit 9bc0fa2

Browse files
Claudeclaude
andcommitted
ci(ios): use fastlane pilot upload instead of distribute
pilot distribute requires the build to already be processed, but the build was just uploaded. Switch to pilot upload which handles upload, waits for processing, and distributes in one step. Change export destination to 'export' so a local IPA is created for fastlane. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 4a9cd1e commit 9bc0fa2

File tree

1 file changed

+10
-13
lines changed

1 file changed

+10
-13
lines changed

.github/workflows/ios-release.yml

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -105,10 +105,7 @@ jobs:
105105
DEVELOPMENT_TEAM=ZJ9GEQ36AH \
106106
PROVISIONING_PROFILE_SPECIFIER="$PROVISIONING_PROFILE_UUID"
107107
108-
- name: Export & upload to App Store Connect
109-
env:
110-
APP_STORE_CONNECT_API_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ID }}
111-
APP_STORE_CONNECT_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_ISSUER_ID }}
108+
- name: Export IPA
112109
run: |
113110
EXPORT_PLIST="$RUNNER_TEMP/ExportOptions.plist"
114111
cat > "$EXPORT_PLIST" <<-PLIST
@@ -132,23 +129,20 @@ jobs:
132129
<key>uploadSymbols</key>
133130
<true/>
134131
<key>destination</key>
135-
<string>upload</string>
132+
<string>export</string>
136133
</dict>
137134
</plist>
138135
PLIST
139136
140137
xcodebuild -exportArchive \
141138
-archivePath "$RUNNER_TEMP/FareBot.xcarchive" \
142139
-exportPath "$RUNNER_TEMP/export" \
143-
-exportOptionsPlist "$EXPORT_PLIST" \
144-
-authenticationKeyPath ~/.private_keys/AuthKey_"$APP_STORE_CONNECT_API_KEY_ID".p8 \
145-
-authenticationKeyID "$APP_STORE_CONNECT_API_KEY_ID" \
146-
-authenticationKeyIssuerID "$APP_STORE_CONNECT_ISSUER_ID"
140+
-exportOptionsPlist "$EXPORT_PLIST"
147141
148142
- name: Install fastlane
149143
run: brew install fastlane
150144

151-
- name: Distribute to TestFlight testers
145+
- name: Upload & distribute to TestFlight
152146
env:
153147
APP_STORE_CONNECT_API_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ID }}
154148
APP_STORE_CONNECT_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_ISSUER_ID }}
@@ -162,13 +156,16 @@ jobs:
162156
'{key_id: $key_id, issuer_id: $issuer_id, key: $key, in_house: false}' \
163157
> "$API_KEY_JSON"
164158
165-
fastlane pilot distribute \
159+
IPA_PATH=$(find "$RUNNER_TEMP/export" -name '*.ipa' -print -quit)
160+
echo "IPA: $IPA_PATH"
161+
[ -f "$IPA_PATH" ] || { echo "No IPA found"; ls -la "$RUNNER_TEMP/export"; exit 1; }
162+
163+
fastlane pilot upload \
164+
--ipa "$IPA_PATH" \
166165
--api_key_path "$API_KEY_JSON" \
167166
--app_platform ios \
168-
--app_identifier com.codebutler.farebot \
169167
--distribute_external true \
170168
--notify_external_testers true \
171-
--build_number "$CURRENT_PROJECT_VERSION" \
172169
--skip_waiting_for_build_processing false \
173170
--changelog "Build $MARKETING_VERSION ($CURRENT_PROJECT_VERSION)"
174171

0 commit comments

Comments
 (0)