fastlaneを使用した2要素認証
CIマシンの使用中に、アプリをFirebaseディストリビューションにリリースしてFastlaneをスローします。2FAで問題に直面しています。
マッチを使用して証明書を取得しています。これは私が「Appfile」の下に持っているものです
app_identifier "com.example.example" # the bundle
apple_id "[email protected]" # Your Apple
team_id "abcd..." # Developer Portal Team ID
ENV["FASTLANE_USER"] = "[email protected]"
ENV["MATCH_PASSWORD"] = ""
ENV["FASTLANE_PASSWORD"] = ""
ENV["FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD"] = ""
これは私が受け取っているエラーです:
アカウント '[email protected]'で2要素認証(6桁のコード)が有効になっています。2要素認証の詳細: https://support.apple.com/en-us/HT204915
非対話型セッション(サーバーやCIなど)でこれを実行している場合は、チェックアウトしてください https://github.com/fastlane/fastlane/tree/master/spaceship#2-step-verification
(入力
sms
してこのプロンプトをエスケープし、信頼できる電話番号を選択してコードをテキストメッセージとして送信します)(
SPACESHIP_2FA_SMS_DEFAULT_PHONE_NUMBER
これを自動化するために環境変数を設定することもできます)(詳細は次を参照してください:https://github.com/fastlane/fastlane/blob/master/spaceship/docs/Authentication.md#auto-select-sms-via-spaceship_2fa_sms_default_phone_number)6桁のコードを入力してください:
私はこの「https://docs.fastlane.tools/best-practices/continuous-integration/」を読みましたが、運がありません。誰かが私がこの問題を解決するのを手伝ってくれる?
回答
fastlaneチームは(からの最近のリリースで素晴らしい仕事をしました❤ 2.157.0に2.163.0の使用をサポートするために、これまでに)App Storeの接続APIのAPIキー多くのアクション(内pilot
、deliver
、match
それぞれの状況-などを、ツールはここから入手できます)。
APIキーを使用すると、App Store Connectで操作を実行するためのfastlaneアクションを認証および承認するために、Appleアカウントを提供する必要がなくなります。つまり、CIマシンで2要素の問題と戦ったり、手動で操作したりする必要がなくなります。fastlane spaceauth
無効になったときに経由でセッションを再生成します。
App Storeに接続APIキーのページ:
APIキーを生成すると、そのキーに対して1つ以上のAppleサービスを構成、認証、および使用できます。キーの有効期限はありませんが、一度作成したサービスにアクセスするように変更することはできません。一度に最大50個のアクティブキーを持つことができます
APIキーを使用することには他にも利点があり、fastlaneのドキュメントで説明されているように推奨されるソリューションです。
fastlaneはこれまで、CookieベースのWebセッションを使用して認証するために、ユーザー名とパスワードを含むAppleIDを使用してきました。fastlaneは、この同じCookieベースのWebセッションを引き続き使用して、非公式バージョンのApp Store ConnectAPIで認証します。
ただし、可能な場合はAPIキー認証を使用することをお勧めします。利点は次のとおりです。
- 2FAは必要ありません
- よりよい性能
- 文書化されたAPI
- 信頼性の向上
APIキーを設定して使用する手順については、ドキュメントですでに十分に説明されているため、ここでは詳しく説明しませんが、主な手順は次のとおりです。
- App Store Connectから新しいAPIキーを作成します(作成するには「アカウント所有者」の役割が必要です)。
- キーとその情報をCIに保存します。
- で、2に格納されている値を使用し
Fastfile
てapp_store_connect_api_keyアクションを呼び出します。 api_key
アクションを呼び出すときに、3。によって返された値をパラメーターとして渡すか、アクションにレーンコンテキストから値を取得させます(サポートされている場合)。
無効なセッションによる2FAの問題:

消えるはずです:)

環境変数 'FASTLANE_SESSION' = '--- \ n .... \ n'トークンを設定する必要があります。
このトークンを取得するには、次のコマンドを使用して手動で認証する必要があります。
fastlane spaceauth -u YOUR_APP_STORE_EMAIL
fastlane spaceauth [email protected]の例。
セッションは2〜3週間(30日と言われることもあります)ごとに再検証する必要があります。このプロセスは今のところちょっと苦痛です。