fastlaneを使用した2要素認証

Aug 20 2020

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/」を読みましたが、運がありません。誰かが私がこの問題を解決するのを手伝ってくれる?

回答

7 rd3n Oct 13 2020 at 18:03

fastlaneチームは(からの最近のリリースで素晴らしい仕事をしました❤ 2.157.0に2.163.0の使用をサポートするために、これまでに)App Storeの接続APIのAPIキー多くのアクション(内pilotdelivermatchそれぞれの状況-などを、ツールはここから入手できます)。

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キーを設定して使用する手順については、ドキュメントですでに十分に説明されているため、ここでは詳しく説明しませんが、主な手順は次のとおりです。

  1. App Store Connectから新しいAPIキーを作成します(作成するには「アカウント所有者」の役割が必要です)。
  2. キーとその情報をCIに保存します。
  3. で、2に格納されている値を使用しFastfileてapp_store_connect_api_keyアクションを呼び出します。
  4. api_keyアクションを呼び出すときに、3。によって返された値をパラメーターとして渡すか、アクションにレーンコンテキストから値を取得させます(サポートされている場合)。

無効なセッションによる2FAの問題:

消えるはずです:)

3 Ranknoodle Sep 09 2020 at 21:09

環境変数 'FASTLANE_SESSION' = '--- \ n .... \ n'トークンを設定する必要があります。

このトークンを取得するには、次のコマンドを使用して手動で認証する必要があります。

fastlane spaceauth -u YOUR_APP_STORE_EMAIL

fastlane spaceauth [email protected]の例。

セッションは2〜3週間(30日と言われることもあります)ごとに再検証する必要があります。このプロセスは今のところちょっと苦痛です。