TestFlight利用までの備忘録

はじめに

作りかけのゲームを身内にプレイしてもらうために、AndroidではDeployGateを使い、iOSではTestFlightを使うことにしました。

DeployGateでAndoroid端末配信はメモを残す必要がないくらい簡単でした。しかし、TestFlightの方は初めて使うまでに色々調べることになったため、備忘録を書きます。

いくつかのサイトを参考にしましたが、Xcodeのバージョンなどが変わっていたせいで結構違う操作になりました。

できるだけ再現可能な手順を調べるつもりでしたが、経験則的に自分がうまくいったケースとして記しておきます。

前提

  • iOS Developer登録済み

※新しく開発用のアカウントを取って英語入力するなど注意点はありましたが、登録までは少し調べるだけで分かりやすくできました。

  • Xcodeのバージョンは9.1

  • 今回は内部テストまでを想定しています

  • TestFlightの概要(アプリ公開前に限定メンバーに配信できる)を知ってる前提

  • XcodeApple申請周りの初心者向け

用語理解

証明書とかProvisioning Profileとか用語が多すぎて訳がわからなかったのでまずは以下サイトで少し下調べしました。

(参考サイト:怖くないiOSの証明書 - Qiita

最初に躓いたところ

TestFlight使用のための大まかな流れは以下サイトがわかりやすかったです。

(参考サイト:新TestFlightの使用方法 - Qiita

でも、実際に操作するとiTunesConnectの操作の一番はじめの「テスト用Appの追加」の部分から書いてる通りに動かず躓きました。

iTunesConnectのマイAppから「新規App」を追加しようとすると『iOS App の有効なバンドル ID がありません。』というエラーが表示されました。

これを解消するために、まずはApp IDの登録を行います。

App IDの登録

Apple Developerのページを開き左側のメニューからApp IDsを選択しApp IDを作成しました。

Sign in with your Apple ID - Apple Developer

NameとBundle IDを入力します。

f:id:twocolor2:20171108162312p:plain

マイAPPの登録

App IDを作成してiTunes Connectに戻ってきたら、参考にしたサイトの続きを進められました。

参考サイト:新TestFlightの使用方法 - Qiita

iTunes ConnectのマイAppのプラスボタンを押すと新規Appの登録フォームが出ます。

f:id:twocolor2:20171108163434p:plain:w300

バンドルIDは先ほど作成したものを入れます。

SKUが何か分からなかったので調べたところ、過去のアプリと重複無いように好きな英字数でつけて良いみたいです。

これで「作成」ボタンを押すと、マイAppの管理画面が出てきて上部にはTestFlightのタブが出ました。

f:id:twocolor2:20171108163745p:plain

アプリのアップロード

次はXcodeからアプリをアップロードします。

事前にXcode側でApp IDで登録したBundle IDと同じものを設定しておきます。

また、App Storeのiconが設定されていないと後の工程でエラーになるため1024*1024pxの画像を設定しました。

XcodeのImages.xcassetsを選択すると、一番下にApp Store用アイコンを設定する部分がありました。

f:id:twocolor2:20171108191521p:plain

これらを設定したうえで、XcodeのメニューからProduct > Archiveを選択します。

Archiveには数分かかりました。

Archiveに成功したあとでXcodeのメニューのWindow > Organizer選択し、「Upload to App Store」ボタンを押します。

その後でいくつか設定項目が出ますが、基本デフォルト設定で進みました。途中の「Automatically manage signing」だけは明示的にそこにチェックを入れました。

f:id:twocolor2:20171108200852p:plain:w400

「Automatically manage signing」にするとこの後の応答によってXcodeがCertificateなどを作成してApp IDと紐付けてくれたようです。

そのまま「Next」ボタンを押して進んでいったところ、アップロードにも数分かかりましたがマイAppにアップロードすることができました。

※もともとは参考サイトを見ながらCertificateやProvisioning Profileを作成していたのですが、それを使おうとするとこの部分でうまくいかず、結局自動設定にして進むことにしました。

メンバーの追加

次にTestFlightで配信するユーザをiTunes Connectの「ユーザと役割」から設定します。

「ユーザと役割」を選択後に出て来るプラスボタンを押すと、追加対象のApple IDと任意の役割を選択できてユーザ追加ができました。自分はDeveloperにして追加しました。

ユーザが閲覧可能なアプリ情報を絞れるようなので、「すべてのApp」から対象のアプリだけに変更した方が良いかもしれません。

追加されたApple ID宛にメールが届くので、ログインして認証を行います。

これではまだ先ほど登録した「マイApp」のテストユーザにはなっていないため、次はiTunes Connectの「マイApp」に戻り、先ほどアップロードしたアプリを選択してTestFlightタブを開きます。

自分の場合はArchiveをアップロードしたのに関わらず「ビルドファイルをアップロードして下さい」的なメッセージが出ていて困惑しましたが、30分以上待ったら反映されました。

アップロードしたArchiveファイルが認識されたあと、画面左の「iTunes Connect ユーザ」というメニューから、ユーザ追加を行います。

以下図のプラスボタンを押すと、「ユーザと役割」で追加したユーザが表示されるので、チェックを入れて「追加」ボタンを押します。

f:id:twocolor2:20171108192545p:plain

これだけではまだユーザにTestFlightの招待メールが届かないようです。

以下図のビルドタブを選び、ここでは1.0と書かれているビルドのリンクをクリックします。

f:id:twocolor2:20171108193928p:plain

そうすると、右上に「輸出コンプライアンス情報の提出」というボタンがある画面に遷移します。

f:id:twocolor2:20171108194123p:plain

「輸出コンプライアンス情報の提出」ボタンを押すと以下ポップアップが出るので、いいえを選択すると、「内部テストを開始」のボタンが出てきました。

f:id:twocolor2:20171108194243p:plain:w400

「内部テストを開始」ボタンを押すと、テストユーザとして登録したApple IDのメアドにTestFlightの招待メールが届きました!

f:id:twocolor2:20171108195505p:plain:w200

テストユーザ側

これであとはテストユーザ側の操作だけになります。

テストユーザの端末に、AppStoreからTestFlightをインストールします。

その後、TestFlightの招待メール中にある「View in TestFlight」をクリックします。

そうすると、TestFlightのアプリが起動し「INSTALL」ボタンが画面に表示されました。

f:id:twocolor2:20171108195423p:plain:w200

あとはインストールしてプレイ可能です。

終わりに

作ったアプリをTestFlightで配信するだけでしたが、XcodeやiTunesConnectのUIがすぐ変わるうえ、Apple DeveloperページやXcodeで操作した内容がiTunes Connectに反映されるまで時間がかかり分かりにくいなどが重なりかなり手間取ってしまいました。

また、関連情報を探したときもゼロからすべて書いているものは少なく、ある程度のXcodeやiTunesConnectの前提知識があるうえで書かれた記事が多いようでした。

今回書いた備忘録もすぐに使えなくなるかもしれませんが、これで一通りの流れはわかったので、今後に活かしていきたいです。