From 17674910766613025003f45b50357ba81bf93150 Mon Sep 17 00:00:00 2001 From: hariel1985 Date: Wed, 16 Sep 2026 15:26:28 +0200 Subject: [PATCH] Keep the app version in project.yml so XcodeGen can't reset it project.yml declared `info: path: TopManager/Info.plist` without properties, so every `xcodegen generate` rewrote Info.plist with XcodeGen's defaults, 1.0 (1). That silently undid the version bump in cf88044: its message says 1.1.1 (3), but the commit actually set Info.plist back to 1.0 (1). The version now lives in MARKETING_VERSION / CURRENT_PROJECT_VERSION in project.yml, and the generated Info.plist references them. Regenerating is idempotent and the built app reports 1.1.1 (3). Co-Authored-By: Claude Opus 5 --- TopManager.xcodeproj/project.pbxproj | 4 ++++ TopManager/Info.plist | 4 ++-- project.yml | 7 +++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/TopManager.xcodeproj/project.pbxproj b/TopManager.xcodeproj/project.pbxproj index 36534fc..7bcf269 100644 --- a/TopManager.xcodeproj/project.pbxproj +++ b/TopManager.xcodeproj/project.pbxproj @@ -453,12 +453,14 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = TopManager/TopManager.entitlements; COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 3; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = TopManager/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", ); + MARKETING_VERSION = 1.1.1; PRODUCT_BUNDLE_IDENTIFIER = com.topmanager.app; PRODUCT_NAME = TopManager; SDKROOT = macosx; @@ -556,12 +558,14 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = TopManager/TopManager.entitlements; COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 3; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = TopManager/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", ); + MARKETING_VERSION = 1.1.1; PRODUCT_BUNDLE_IDENTIFIER = com.topmanager.app; PRODUCT_NAME = TopManager; SDKROOT = macosx; diff --git a/TopManager/Info.plist b/TopManager/Info.plist index 47ef031..4968699 100644 --- a/TopManager/Info.plist +++ b/TopManager/Info.plist @@ -15,8 +15,8 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.0 + $(MARKETING_VERSION) CFBundleVersion - 1 + $(CURRENT_PROJECT_VERSION) diff --git a/project.yml b/project.yml index ebfa48a..297a2c4 100644 --- a/project.yml +++ b/project.yml @@ -31,8 +31,15 @@ targets: GENERATE_INFOPLIST_FILE: NO SWIFT_EMIT_LOC_STRINGS: YES ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon + # The app version lives here. `xcodegen generate` rewrites Info.plist from + # the `info` block below, so a version typed into Info.plist gets reset. + MARKETING_VERSION: "1.1.1" + CURRENT_PROJECT_VERSION: "3" info: path: TopManager/Info.plist + properties: + CFBundleShortVersionString: $(MARKETING_VERSION) + CFBundleVersion: $(CURRENT_PROJECT_VERSION) TopManagerTests: type: bundle.unit-test