1.1.4 (50): TestFlight upload — switch to ASC API key auth

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 <noreply@anthropic.com>
This commit is contained in:
alexandrev-tibco
2026-05-27 19:36:49 +02:00
parent 304774991d
commit f4e1aef8d5
4 changed files with 23 additions and 10 deletions
+2 -2
View File
@@ -876,7 +876,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = MealMood/Resources/MealMood.entitlements; CODE_SIGN_ENTITLEMENTS = MealMood/Resources/MealMood.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_IDENTITY = "iPhone Developer";
CURRENT_PROJECT_VERSION = 47; CURRENT_PROJECT_VERSION = 50;
DEVELOPMENT_TEAM = 2825Q76T7H; DEVELOPMENT_TEAM = 2825Q76T7H;
GENERATE_INFOPLIST_FILE = NO; GENERATE_INFOPLIST_FILE = NO;
INFOPLIST_FILE = MealMood/Resources/Info.plist; INFOPLIST_FILE = MealMood/Resources/Info.plist;
@@ -981,7 +981,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = MealMood/Resources/MealMood.entitlements; CODE_SIGN_ENTITLEMENTS = MealMood/Resources/MealMood.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_IDENTITY = "iPhone Developer";
CURRENT_PROJECT_VERSION = 47; CURRENT_PROJECT_VERSION = 50;
DEVELOPMENT_TEAM = 2825Q76T7H; DEVELOPMENT_TEAM = 2825Q76T7H;
GENERATE_INFOPLIST_FILE = NO; GENERATE_INFOPLIST_FILE = NO;
INFOPLIST_FILE = MealMood/Resources/Info.plist; INFOPLIST_FILE = MealMood/Resources/Info.plist;
+1 -1
View File
@@ -17,7 +17,7 @@
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>1.1.4</string> <string>1.1.4</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>49</string> <string>50</string>
<key>GADApplicationIdentifier</key> <key>GADApplicationIdentifier</key>
<string>ca-app-pub-1549720748100858~9985112590</string> <string>ca-app-pub-1549720748100858~9985112590</string>
<key>ITSAppUsesNonExemptEncryption</key> <key>ITSAppUsesNonExemptEncryption</key>
+1 -1
View File
@@ -17,7 +17,7 @@
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>1.1.4</string> <string>1.1.4</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>49</string> <string>50</string>
<key>NSExtension</key> <key>NSExtension</key>
<dict> <dict>
<key>NSExtensionPointIdentifier</key> <key>NSExtensionPointIdentifier</key>
+19 -6
View File
@@ -1,9 +1,7 @@
default_platform(:ios) default_platform(:ios)
# Credentials are managed via `pass` (GPG + Gitea). # Credentials: App Store Connect API key via `pass`.
# Usage: pass show apple/mealmood/<key> # The api_key block uses the key inline — no session/2FA needed.
# Required before running lanes:
# export FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD=$(pass show apple/mealmood/app-specific-password-fastlane)
platform :ios do platform :ios do
EXPORT_OPTIONS = { 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" desc "Push a new beta build to TestFlight"
lane :beta do lane :beta do
increment_build_number(xcodeproj: "MealMood.xcodeproj") increment_build_number(xcodeproj: "MealMood.xcodeproj")
@@ -25,7 +32,10 @@ platform :ios do
sdk: "iphoneos26.5", sdk: "iphoneos26.5",
export_options: EXPORT_OPTIONS 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 end
desc "Push a new release build to the App Store" desc "Push a new release build to the App Store"
@@ -36,6 +46,9 @@ platform :ios do
sdk: "iphoneos26.5", sdk: "iphoneos26.5",
export_options: EXPORT_OPTIONS export_options: EXPORT_OPTIONS
) )
upload_to_app_store(force: true) upload_to_app_store(
api_key: asc_api_key,
force: true
)
end end
end end