chore(fastlane): support p8 key path

This commit is contained in:
Peter Steinberger
2025-12-14 02:19:51 +00:00
parent b8b20eac6d
commit 7318b20f55
3 changed files with 22 additions and 3 deletions

View File

@@ -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:

View File

@@ -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

View File

@@ -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: