From 13b0f910abf2725b4ea4401df6511b16e3d498b8 Mon Sep 17 00:00:00 2001 From: sravan Date: Fri, 17 Jul 2026 20:09:51 +0530 Subject: [PATCH] ci(ios): set CFBundleVersion to Codemagic BUILD_NUMBER so each upload is unique App Store Connect rejected the upload: 'The bundle version must be higher than the previously uploaded version: 1'. Capacitor defaults CFBundleVersion to 1, so every build collided with the first upload. Patch it to the monotonic BUILD_NUMBER. Co-Authored-By: Claude Opus 4.8 --- mobile/scripts/ios-patch.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/mobile/scripts/ios-patch.sh b/mobile/scripts/ios-patch.sh index ebd3384..f67fb80 100644 --- a/mobile/scripts/ios-patch.sh +++ b/mobile/scripts/ios-patch.sh @@ -21,6 +21,15 @@ set_str NSPhotoLibraryAddUsageDescription "Biz Connect saves images and record # Human-readable display name on the home screen. set_str CFBundleDisplayName "Biz Connect" +# CFBundleVersion (build number) MUST be unique AND higher than every previous App Store Connect upload, +# or publishing fails with "The bundle version must be higher than the previously uploaded version". +# Capacitor ships "1" by default, so every build collided. Use Codemagic's monotonically-increasing +# BUILD_NUMBER (this is build index 6+, already > the "1" that's on TestFlight). Fall back to an epoch +# timestamp if it's somehow unset, which is also strictly increasing. +BUILD_NO="${BUILD_NUMBER:-$(date +%s)}" +echo "Setting CFBundleVersion = $BUILD_NO" +set_str CFBundleVersion "$BUILD_NO" + # We use only standard encryption (HTTPS/TLS), which is exempt — declaring this up front stops App Store # Connect from asking the "export compliance" question on every single build/TestFlight upload. "$PB" -c "Add :ITSAppUsesNonExemptEncryption bool false" "$PLIST" 2>/dev/null \