diff --git a/CLAUDE.md b/CLAUDE.md index 7a9297a..b040836 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -15,10 +15,19 @@ git branch -m 1.1.6 # e.g. git branch -m 1.1.5 1.1.6 ``` Right now: `MARKETING_VERSION = 2.0.1` → active branch is `2.0.1`. Keep them in sync. (The build number bump within the same version does NOT rename the branch — only a version change does.) -**The widget version is not automated.** `MealMoodWidget/Info.plist` hardcodes `CFBundleShortVersionString` and `CFBundleVersion`; `fastlane`'s `increment_build_number` only touches the app target. Update the widget by hand to match the app **before** running `fastlane beta`, or App Store Connect rejects the upload for a version mismatch: +**`MARKETING_VERSION` in the Xcode project does NOT drive the shipped version.** Both Info.plists hardcode their values, so bumping the project setting alone builds an IPA with the old version and App Store Connect rejects it (`90062: must contain a higher version than that of the previously approved version`). A version bump means editing three places, and `fastlane`'s `increment_build_number` only handles the app's build number: + +| What | Where | Bumped by fastlane? | +|------|-------|---------------------| +| App version | `MealMood/Resources/Info.plist` → `CFBundleShortVersionString` | ❌ by hand | +| App build | `MealMood/Resources/Info.plist` + pbxproj | ✅ | +| Widget version + build | `MealMoodWidget/Info.plist` | ❌ by hand | + +The widget must match the app or the upload is rejected for a version mismatch. Since `fastlane beta` increments the build as its first step, set the widget to the **next** build number before running it: ```bash +plutil -replace CFBundleShortVersionString -string "" MealMood/Resources/Info.plist plutil -replace CFBundleShortVersionString -string "" MealMoodWidget/Info.plist -plutil -replace CFBundleVersion -string "" MealMoodWidget/Info.plist +plutil -replace CFBundleVersion -string "" MealMoodWidget/Info.plist ``` ## Credentials — all managed via `pass` (GPG-encrypted, syncs to Gitea) diff --git a/MealMood.xcodeproj/project.pbxproj b/MealMood.xcodeproj/project.pbxproj index 85777c6..bf7e242 100644 --- a/MealMood.xcodeproj/project.pbxproj +++ b/MealMood.xcodeproj/project.pbxproj @@ -1017,7 +1017,7 @@ CODE_SIGN_ENTITLEMENTS = MealMood/Resources/MealMood.entitlements; CODE_SIGN_IDENTITY = "Apple Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 64; + CURRENT_PROJECT_VERSION = 66; DEVELOPMENT_TEAM = 2825Q76T7H; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = MealMood/Resources/Info.plist; @@ -1140,7 +1140,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = MealMood/Resources/MealMood.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 64; + CURRENT_PROJECT_VERSION = 66; DEVELOPMENT_TEAM = 2825Q76T7H; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = MealMood/Resources/Info.plist; diff --git a/MealMood/Resources/Info.plist b/MealMood/Resources/Info.plist index 31440cc..f5625cd 100644 --- a/MealMood/Resources/Info.plist +++ b/MealMood/Resources/Info.plist @@ -15,11 +15,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 2.0 - UIBackgroundModes - - remote-notification - + 2.0.1 CFBundleURLTypes @@ -32,7 +28,7 @@ CFBundleVersion - 64 + 66 GADApplicationIdentifier ca-app-pub-1549720748100858~9985112590 ITSAppUsesNonExemptEncryption @@ -56,6 +52,10 @@ UIApplicationSupportsIndirectInputEvents + UIBackgroundModes + + remote-notification + UILaunchScreen UILaunchScreen diff --git a/MealMoodWidget/Info.plist b/MealMoodWidget/Info.plist index ee1080e..fa51526 100644 --- a/MealMoodWidget/Info.plist +++ b/MealMoodWidget/Info.plist @@ -17,7 +17,7 @@ CFBundleShortVersionString 2.0.1 CFBundleVersion - 65 + 66 NSExtension NSExtensionPointIdentifier