署名リポジトリのURLを MATCH_GIT_URLに、復号用パスワードを MATCH_PASSWORDに設定します。アップロード認証にはサーバー側のAPIキーを使用します。キーのファイルパスは ASC_KEY_PATH で指定し、キーIDと発行者IDはそれぞれ ASC_KEY_ID、ASC_ISSUER_ID で指定します。キーのファイルはCIのシークレットストレージから実行時に書き出し、プロジェクトのリポジトリにはコミットしないでください。
以下を設定します: IOS_APP_IDENTIFIER、IOS_TEAM_ID、IOS_WORKSPACE 、 IOS_SCHEME。署名リポジトリの配布タイプは appstore と一致させます。共有schemeを確認してから、パイプライン全体を実行してください。
fastlane/Fastfile · 単一アプリのTestFlightパイプライン
default_platform(:ios)
platform :ios do
desc "Archive a signed build and upload it to TestFlight"
lane :release do
setup_ci
api_key = app_store_connect_api_key(
key_id: ENV.fetch("ASC_KEY_ID"),
issuer_id: ENV.fetch("ASC_ISSUER_ID"),
key_filepath: ENV.fetch("ASC_KEY_PATH"),
in_house: false
)
match(
type: "appstore",
readonly: true,
git_url: ENV.fetch("MATCH_GIT_URL"),
app_identifier: ENV.fetch("IOS_APP_IDENTIFIER"),
team_id: ENV.fetch("IOS_TEAM_ID"),
api_key: api_key
)
gym(
workspace: ENV.fetch("IOS_WORKSPACE"),
scheme: ENV.fetch("IOS_SCHEME"),
configuration: "Release",
clean: true,
export_method: "app-store",
output_directory: "build/artifacts",
output_name: "release.ipa"
)
pilot(
api_key: api_key,
ipa: "build/artifacts/release.ipa",
skip_waiting_for_build_processing: true
)
end
end