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