From 44790bb6599f9312073df4e239d714adce9aa7e6 Mon Sep 17 00:00:00 2001 From: millianlmx Date: Sat, 27 Jun 2026 22:11:35 +0000 Subject: [PATCH] fix(ci): use Release + archive/export for Firebase OTA distribution MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Switch from Debug build to Release archive with xcodebuild archive - Use xcodebuild -exportArchive with ad-hoc exportOptions.plist for proper Ad Hoc distribution signing (required for Firebase OTA installs) - Fix CFBundleVersion mismatch in Info.plist (1 → 2) to match project.yml - Create Config/exportOptions.plist with method=ad-hoc and team 2MJF39L8VY Previously Debug builds produced a Development provisioning profile that doesn't include the tester's iPhone UDID, causing 'cannot be installed'. --- .gitea/workflows/pr-iphone-deploy.yml | 20 +++++++++++--------- tabatago-swift/Config/exportOptions.plist | 14 ++++++++++++++ tabatago-swift/TabataGo/Resources/Info.plist | 2 +- 3 files changed, 26 insertions(+), 10 deletions(-) create mode 100644 tabatago-swift/Config/exportOptions.plist diff --git a/.gitea/workflows/pr-iphone-deploy.yml b/.gitea/workflows/pr-iphone-deploy.yml index 761dfec..3e3bd0c 100644 --- a/.gitea/workflows/pr-iphone-deploy.yml +++ b/.gitea/workflows/pr-iphone-deploy.yml @@ -84,14 +84,15 @@ jobs: -project TabataGo.xcodeproj \ -scmProvider system - - name: Build app + - name: Archive app run: | cd tabatago-swift xcodebuild -list - xcodebuild build \ + xcodebuild archive \ -project TabataGo.xcodeproj \ -scheme TabataGo \ - -configuration Debug \ + -configuration Release \ + -archivePath ../build/TabataGo.xcarchive \ -allowProvisioningUpdates \ -skipPackagePluginValidation \ -derivedDataPath ../build/derived \ @@ -101,14 +102,15 @@ jobs: CODE_SIGN_STYLE=Automatic \ DEVELOPMENT_TEAM=2MJF39L8VY - - name: Package IPA + - name: Export IPA (Ad Hoc) run: | cd tabatago-swift - mkdir -p Payload build - APP=$(find ../build/derived -name 'TabataGo.app' -type d | head -1) - cp -R "$APP" Payload/ - zip -r build/TabataGo.ipa Payload/ - rm -rf Payload + mkdir -p build + xcodebuild -exportArchive \ + -archivePath ../build/TabataGo.xcarchive \ + -exportPath build \ + -exportOptionsPlist Config/exportOptions.plist \ + -allowProvisioningUpdates - name: Deploy to Firebase env: diff --git a/tabatago-swift/Config/exportOptions.plist b/tabatago-swift/Config/exportOptions.plist new file mode 100644 index 0000000..9da1850 --- /dev/null +++ b/tabatago-swift/Config/exportOptions.plist @@ -0,0 +1,14 @@ + + + + + method + ad-hoc + teamID + 2MJF39L8VY + compileBitcode + + signingStyle + automatic + + diff --git a/tabatago-swift/TabataGo/Resources/Info.plist b/tabatago-swift/TabataGo/Resources/Info.plist index 9af55fc..36ae005 100644 --- a/tabatago-swift/TabataGo/Resources/Info.plist +++ b/tabatago-swift/TabataGo/Resources/Info.plist @@ -28,7 +28,7 @@ CFBundleVersion - 1 + 2 NSHealthShareUsageDescription TabataGo reads your health data to show fitness stats and personalize your workouts. NSHealthUpdateUsageDescription