diff --git a/apps/ios/fastlane/.env.example b/apps/ios/fastlane/.env.example index 023a4e280..2b7c7668b 100644 --- a/apps/ios/fastlane/.env.example +++ b/apps/ios/fastlane/.env.example @@ -1,6 +1,11 @@ # App Store Connect API key (pick one approach) # -# Recommended: +# Recommended (use the downloaded .p8 directly): +# ASC_KEY_ID=XXXXXXXXXX +# ASC_ISSUER_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx +# ASC_KEY_PATH=/absolute/path/to/AuthKey_XXXXXXXXXX.p8 +# +# Or (JSON key file): # APP_STORE_CONNECT_API_KEY_PATH=/absolute/path/to/AuthKey_XXXXXX.json # # Or: diff --git a/apps/ios/fastlane/Fastfile b/apps/ios/fastlane/Fastfile index 4ab1f07d0..c09b4fcbc 100644 --- a/apps/ios/fastlane/Fastfile +++ b/apps/ios/fastlane/Fastfile @@ -7,11 +7,24 @@ platform :ios do return app_store_connect_api_key(path: key_path) end + p8_path = ENV["ASC_KEY_PATH"] + if p8_path && !p8_path.strip.empty? + key_id = ENV["ASC_KEY_ID"] + issuer_id = ENV["ASC_ISSUER_ID"] + UI.user_error!("Missing ASC_KEY_ID or ASC_ISSUER_ID for ASC_KEY_PATH auth.") if [key_id, issuer_id].any? { |v| v.nil? || v.strip.empty? } + + return app_store_connect_api_key( + key_id: key_id, + issuer_id: issuer_id, + key_filepath: p8_path + ) + end + key_id = ENV["ASC_KEY_ID"] issuer_id = ENV["ASC_ISSUER_ID"] key_content = ENV["ASC_KEY_CONTENT"] - UI.user_error!("Missing App Store Connect API key. Set APP_STORE_CONNECT_API_KEY_PATH or ASC_KEY_ID/ASC_ISSUER_ID/ASC_KEY_CONTENT.") if [key_id, issuer_id, key_content].any? { |v| v.nil? || v.strip.empty? } + UI.user_error!("Missing App Store Connect API key. Set APP_STORE_CONNECT_API_KEY_PATH (json) or ASC_KEY_PATH (p8) or ASC_KEY_ID/ASC_ISSUER_ID/ASC_KEY_CONTENT.") if [key_id, issuer_id, key_content].any? { |v| v.nil? || v.strip.empty? } is_base64 = key_content.include?("BEGIN PRIVATE KEY") ? false : true diff --git a/apps/ios/fastlane/README.md b/apps/ios/fastlane/README.md index ed6f82d3b..47e0a35f1 100644 --- a/apps/ios/fastlane/README.md +++ b/apps/ios/fastlane/README.md @@ -8,7 +8,8 @@ brew install fastlane Configure App Store Connect auth: -- Recommended: set `APP_STORE_CONNECT_API_KEY_PATH` to a JSON key file path. +- Recommended: set `ASC_KEY_PATH` to the downloaded `.p8` path + set `ASC_KEY_ID` and `ASC_ISSUER_ID`. +- Alternative: set `APP_STORE_CONNECT_API_KEY_PATH` to a JSON key file path. - Alternative: set `ASC_KEY_ID`, `ASC_ISSUER_ID`, `ASC_KEY_CONTENT` (base64 p8). Common lanes: