f4e1aef8d5
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>
55 lines
1.4 KiB
Ruby
55 lines
1.4 KiB
Ruby
default_platform(:ios)
|
|
|
|
# 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 = {
|
|
method: "app-store",
|
|
signingStyle: "manual",
|
|
manageAppVersionAndBuildNumber: false,
|
|
provisioningProfiles: {
|
|
"com.alexandrevazquez.mealmood" => "com.alexandrevazquez.mealmood AppStore",
|
|
"com.alexandrevazquez.mealmood.widget" => "com.alexandrevazquez.mealmood.widget AppStore"
|
|
}
|
|
}
|
|
|
|
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")
|
|
build_app(
|
|
scheme: "MealMood",
|
|
export_method: "app-store",
|
|
sdk: "iphoneos26.5",
|
|
export_options: EXPORT_OPTIONS
|
|
)
|
|
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"
|
|
lane :release do
|
|
increment_build_number(xcodeproj: "MealMood.xcodeproj")
|
|
build_app(
|
|
scheme: "MealMood",
|
|
sdk: "iphoneos26.5",
|
|
export_options: EXPORT_OPTIONS
|
|
)
|
|
upload_to_app_store(
|
|
api_key: asc_api_key,
|
|
force: true
|
|
)
|
|
end
|
|
end
|