From f4e1aef8d53b4bea2e787980d69c011961d05440 Mon Sep 17 00:00:00 2001 From: alexandrev-tibco Date: Wed, 27 May 2026 19:36:49 +0200 Subject: [PATCH] =?UTF-8?q?1.1.4=20(50):=20TestFlight=20upload=20=E2=80=94?= =?UTF-8?q?=20switch=20to=20ASC=20API=20key=20auth?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Build 50 uploaded to TestFlight. Also migrates Fastfile from Apple ID + app-specific-password to App Store Connect API key (via pass) to avoid session expiry on future uploads. Co-Authored-By: Claude Sonnet 4.6 --- MealMood.xcodeproj/project.pbxproj | 4 ++-- MealMood/Resources/Info.plist | 2 +- MealMoodWidget/Info.plist | 2 +- fastlane/Fastfile | 25 +++++++++++++++++++------ 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/MealMood.xcodeproj/project.pbxproj b/MealMood.xcodeproj/project.pbxproj index 066a000..4ab4e18 100644 --- a/MealMood.xcodeproj/project.pbxproj +++ b/MealMood.xcodeproj/project.pbxproj @@ -876,7 +876,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = MealMood/Resources/MealMood.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 47; + CURRENT_PROJECT_VERSION = 50; DEVELOPMENT_TEAM = 2825Q76T7H; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = MealMood/Resources/Info.plist; @@ -981,7 +981,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = MealMood/Resources/MealMood.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 47; + CURRENT_PROJECT_VERSION = 50; 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 b059a4a..2ea364b 100644 --- a/MealMood/Resources/Info.plist +++ b/MealMood/Resources/Info.plist @@ -17,7 +17,7 @@ CFBundleShortVersionString 1.1.4 CFBundleVersion - 49 + 50 GADApplicationIdentifier ca-app-pub-1549720748100858~9985112590 ITSAppUsesNonExemptEncryption diff --git a/MealMoodWidget/Info.plist b/MealMoodWidget/Info.plist index bd71325..1d92d98 100644 --- a/MealMoodWidget/Info.plist +++ b/MealMoodWidget/Info.plist @@ -17,7 +17,7 @@ CFBundleShortVersionString 1.1.4 CFBundleVersion - 49 + 50 NSExtension NSExtensionPointIdentifier diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 17cee9a..62fa549 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -1,9 +1,7 @@ default_platform(:ios) -# Credentials are managed via `pass` (GPG + Gitea). -# Usage: pass show apple/mealmood/ -# Required before running lanes: -# export FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD=$(pass show apple/mealmood/app-specific-password-fastlane) +# Credentials: App Store Connect API key via `pass`. +# The api_key block uses the key inline — no session/2FA needed. platform :ios do EXPORT_OPTIONS = { @@ -16,6 +14,15 @@ platform :ios do } } + def asc_api_key + app_store_connect_api_key( + key_id: `pass show appstore/api-key-id`.strip, + issuer_id: `pass show appstore/issuer-id`.strip, + key_content: `pass show appstore/api-key-p8`.strip, + in_house: false + ) + end + desc "Push a new beta build to TestFlight" lane :beta do increment_build_number(xcodeproj: "MealMood.xcodeproj") @@ -25,7 +32,10 @@ platform :ios do sdk: "iphoneos26.5", export_options: EXPORT_OPTIONS ) - upload_to_testflight(skip_waiting_for_build_processing: true) + upload_to_testflight( + api_key: asc_api_key, + skip_waiting_for_build_processing: true + ) end desc "Push a new release build to the App Store" @@ -36,6 +46,9 @@ platform :ios do sdk: "iphoneos26.5", export_options: EXPORT_OPTIONS ) - upload_to_app_store(force: true) + upload_to_app_store( + api_key: asc_api_key, + force: true + ) end end