杏z学習帳

Swift、Unityなどを中心に節操なく手を出してますまる

AppleIDの2ファクタ認証を突破する!(2019/07/06)

[Bitrise]AppleIDの2ファクタ認証を突破する!

ざっくりまとめ。

です。

環境

やりたいこと

アカウントホルダーである Apple ID の2ファクタ認証を有効にしている状態で
そのアカウントを使って Bitrise で App Store Connect にアップロードしたい!

やっていき

前提

アカウントホルダーである Apple ID の2ファクタ認証を有効にしてある。
Deploy to iTunes Connect ステップを使って2ファクタ認証を有効化する前はアップロードできていた。
(2ファクタ有効にしたらエラーでてアップロードできない。助けてドラ○もん!)

という状態から話をすすめていきます。

Bitrise に2ファクタ認証のセッションを記憶させる

2ファクタ認証を有効にしたということは、そのセッション情報を何かしらの形で使う必要があるのですが、
Bitrise はその機能を用意していくれているのでそちらを利用します。

Bitrise のアカウント設定ページにアクセスすると、
左のサイドメニューに Apple Developer Account というメニューがあるのでそこをクリック

Bitrise - Apple Developer Account Menu

その後、右上に Connect ボタンが表示されているはずなのでクリック。

Bitrise - Apple Developer Connection

アカウント情報を入力するポップアップがでるので、そちらに2ファクタ認証設定したアカウントホルダーの ID と Password で接続します。

Bitrise - Apple Developer Connection Form

そうするともちろん認証コードが設定した端末なりに届くと思うので、それを入力してやることで、Bitrise 上に2ファクタ認証が有効になったセッションが保存されます。

どのアカウントのセッションを使うのか設定する

上記までの手順だと、アカウントに紐づくセッション情報が保存されただけで、実際にステップで使うにはどのアカウントのセッション情報をつかうか。。。というヒモ付がまだされていない状態です。
なので、次はそこらを設定します。

Bitrise のダッシュボードから有効にしたい App を開いて Team タブを開きます。
ページ下の方に Connected Apple Developer Potal Account という設定するパネルがあります。

Bitrise - Connect Apple Developer Potal Account

こちらで、先程セッションを保存したアカウントが選択できるようになっているので、選択して保存。
これで認証が必要になった場合はこちらの設定されたアカウントのセッションを使っていろいろ実行するはずです。

Fastlane 用の設定をする

ここまでの設定で2ファクタ認証自体はほぼ突破できているものの、まだ実行するとエラーになるはずです。
というもの2ファクタ認証設定しているアカウントのセッションを介してサードパーティが何かをしようとしたときには、App 用パスワード(App-Specific Passsword)の使用が推奨されていて Fastlane もそれを使うようになっているからです。

Bitriseの話をしていたはずなのに、なんで Fastlane の話?と思っている方もいるかもですが、
今回つかっている Deploy to iTunes Connect ステップの中身は結局 Fastlane をつかって動作しているからです。ラッピングして Bitrise 上で扱えるようにしているだけという話。

話を戻して。。
ということで、App 用パスワードを取得します(ここでいう App は自分が開発しているアプリではなくて、サードパーティアプリのことです。いいかえると Bitrise 用に Apple ID にアクセスするためのパスワードを取得するということ)
2ファクタ認証を設定した Apple ID のアカウントページ を開いてセキュリティセクションに App用パスワード というメニューがあってそこにパスワードを生成というリンクから生成します。
リンクをクリックするとラベルを入力するポップアップが出ると思うのでなにかわかりやすいラベル(Bitrise用とか)を付けて保存してください。

Apple ID Account Page - App Specific Password

その後、パスワードが生成されるのでそれをメモるなり、コピっておくなりしておきます。

ついで、Bitrise に戻って、Workflow の Secrets タブを開いてそこに先程生成したApp用パスワードを登録します。
そして、該当 Workflow の Deploy to iTunes Connect ステップをひらいて Application Specific Password に Secrets に登録した App用パスワードの Key をセットして保存します。

以上です!お疲れ様でした!!
ここまでの設定をしてようやく2ファクタ認証を有効にしたアカウントホルダーの Apple ID を使っての App Store Connect へのアップロードできるようになります!
(僕はできています(笑))

なにか漏れとか間違っているとか、実はやらなくてもいい設定とかあったりするかも。。その時は言ってもらえるとありがたいです。😊

参考