From a1b3add2a661e6eddbd7a9fc5f8aac76bfbb010a Mon Sep 17 00:00:00 2001 From: jwinterm Date: Wed, 3 Jun 2026 08:02:55 -0400 Subject: [PATCH] iOS: source CAKEWALLET build number from pubspec_description.yaml Bumping version in pubspec_description.yaml has had zero effect on the iOS CFBundleVersion: app_env.sh hardcoded CAKEWALLET_BUILD_NUMBER=1, app_config.sh substituted that literal into Info.plist's \$(CURRENT_PROJECT_VERSION) placeholder via PlistBuddy before flutter even saw it, and every TestFlight upload shipped as build 1 regardless of what we bumped in pubspec. Apple rejected the +4 and +5 IPAs as duplicates of the +3 that got through as build 1. Make pubspec_description.yaml the single source of truth by parsing its `version: X.Y.Z+N` line in app_env.sh. --- scripts/ios/app_env.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/scripts/ios/app_env.sh b/scripts/ios/app_env.sh index 1a493f9dc..9924b51b2 100644 --- a/scripts/ios/app_env.sh +++ b/scripts/ios/app_env.sh @@ -16,9 +16,15 @@ MONERO_COM_VERSION="6.1.2" MONERO_COM_BUILD_NUMBER=163 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" +# Source CAKEWALLET version + build number from pubspec_description.yaml +# (single source of truth). Without this, the hardcoded build number +# here silently overrode pubspec via app_config.sh's PlistBuddy step, +# so iOS uploads all shipped as the same CFBundleVersion and Apple +# rejected duplicates. +_PUBSPEC_VERSION=$(awk -F': ' '/^version:/ {print $2; exit}' ../../pubspec_description.yaml) CAKEWALLET_NAME="Hash Bags" -CAKEWALLET_VERSION="1.0.0" -CAKEWALLET_BUILD_NUMBER=1 +CAKEWALLET_VERSION="${_PUBSPEC_VERSION%+*}" +CAKEWALLET_BUILD_NUMBER="${_PUBSPEC_VERSION#*+}" CAKEWALLET_BUNDLE_ID="com.suchsoftware.hashwallet"