Last active
December 24, 2023 12:24
-
-
Save litoarias/0a15fcc0bf2fb9834d848b3701c24160 to your computer and use it in GitHub Desktop.
Fastlane and GithubActions
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
default_platform(:ios) | |
DEVELOPER_APP_ID = ENV["DEVELOPER_APP_ID"] | |
DEVELOPER_APP_IDENTIFIER = ENV["DEVELOPER_APP_IDENTIFIER"] | |
PROVISIONING_PROFILE_SPECIFIER = ENV["PROVISIONING_PROFILE_SPECIFIER"] | |
TEMP_KEYCHAIN_USER = ENV["TEMP_KEYCHAIN_USER"] | |
TEMP_KEYCHAIN_PASSWORD = ENV["TEMP_KEYCHAIN_PASSWORD"] | |
APPLE_ISSUER_ID = ENV["APPLE_ISSUER_ID"] | |
APPLE_KEY_ID = ENV["APPLE_KEY_ID"] | |
APPLE_KEY_CONTENT = ENV["APPLE_KEY_CONTENT"] | |
GIT_AUTHORIZATION = ENV["GIT_AUTHORIZATION"] | |
def delete_temp_keychain(name) | |
delete_keychain( | |
name: name | |
) if File.exist? File.expand_path("~/Library/Keychains/#{name}-db") | |
end | |
def create_temp_keychain(name, password) | |
create_keychain( | |
name: name, | |
password: password, | |
unlock: false, | |
timeout: 0 | |
) | |
end | |
def ensure_temp_keychain(name, password) | |
delete_temp_keychain(name) | |
create_temp_keychain(name, password) | |
end | |
platform :ios do | |
lane :closed_beta do | |
keychain_name = TEMP_KEYCHAIN_USER | |
keychain_password = TEMP_KEYCHAIN_PASSWORD | |
ensure_temp_keychain(keychain_name, keychain_password) | |
api_key = app_store_connect_api_key( | |
key_id: APPLE_KEY_ID, | |
issuer_id: APPLE_ISSUER_ID, | |
key_content: APPLE_KEY_CONTENT, | |
duration: 1200, | |
in_house: false | |
) | |
increment_build_number(xcodeproj: "your_project_name.xcodeproj") | |
cocoapods( | |
clean_install: true | |
) | |
match( | |
type: 'appstore', | |
app_identifier: "#{DEVELOPER_APP_IDENTIFIER}", | |
git_basic_authorization: Base64.strict_encode64(GIT_AUTHORIZATION), | |
readonly: true, | |
keychain_name: keychain_name, | |
keychain_password: keychain_password, | |
api_key: api_key | |
) | |
gym( | |
configuration: "Release", | |
workspace: "your_project_workspace.xcworkspace", | |
scheme: "your_schema", | |
export_method: "app-store", | |
export_options: { | |
provisioningProfiles: { | |
DEVELOPER_APP_ID => PROVISIONING_PROFILE_SPECIFIER | |
} | |
} | |
) | |
pilot( | |
apple_id: "#{DEVELOPER_APP_ID}", | |
app_identifier: "#{DEVELOPER_APP_IDENTIFIER}", | |
skip_waiting_for_build_processing: true, | |
skip_submission: true, | |
distribute_external: false, | |
notify_external_testers: false, | |
ipa: "./your_app_name.ipa" | |
) | |
delete_temp_keychain(keychain_name) | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment