Unity のアプリを TestFlight で配信する(iOS編)
ゲームがある程度動くようになったので、自分以外の人(特に非エンジニア)にも遊んでもらうために、TestFlight で 開発途中のゲームを特定のメンバーにだけ配信することにしました。iOS の場合、配信までの手続きが多くて大変だったのでまとめておきます。全体の流れは、以下の記事が参考になりました。
1. iTunes Connect で 新規 App の作成
iTunes Connect のWebページ(https://itunesconnect.apple.com/)を開いて、新規Appを作成します。このままリリースする訳ではないので、中身の情報は仮でいいと思いますが、バンドルIDは、ビルドをアップロードしてしまうと変更できないので、確定させておいたほうがいいかもしれません。
- iTunes Connect を開く(https://itunesconnect.apple.com/)
- マイ App > 左上の+ボタン > 新規 App で App を作成
2. テストユーザーの追加
事前に招待するテスターのメールアドレス(App Store の アカウントに使用しているメールアドレス)を聞いておきましょう。
- iTunes Connect を開く(https://itunesconnect.apple.com/)
- ユーザと役割(マイ App ではないので注意)> iTunes Connect ユーザ > +ボタン で 招待するユーザ情報と権限を設定(ひとまず権限はDeveloperに設定)
- テストユーザの登録が完了すると、招待メールが送信されるのでテスターが承認してくれるまで待つ
3. Unity でビルド
Unityでビルドを実行し、iOS用のプロジェクトを出力します。
- Unity を起動後、File > Build Settings を開く
- ビルド前に Platform を iOS に変更し、Development Build にチェックをつけておく
- ビルド前に Edit > Project Settings > Player で Inspector を開き、Other Settings > Identification > Bundle identifier が 先ほどの新規 App で設定した Bundle Id と一致しているか確認する
- File > Build Settings > Build を実行
4. Xode で Validate
iTunes Connect にビルドをアップロードする前に、Validate を実行してビルドにエラーがないか確認します。
- Unity ビルドで出力された Unity-iPhone.xcodeproj をダブルクリックして Xcode を起動
- Xcode のメニューから Product > Archive を実行
- (しばらく待ちます...)
- アーカイブが完了するとウィンドウが開くので、右側にある Validate ボタンを実行(誤ってウィンドウを閉じてしまった場合は、Xcode メニュー > Window > Organizer で開けます)
私の場合、Validate実行時に設定不足等でいくつかエラーが発生しました。詳細は後述(※1)します。
5. ビルドを iTunes Connect にアップロード
Xcode 経由でビルドを iTunes Connect にアップロードします。
私の場合、アイコンの設定が足りなくてアップロード時にエラーが発生しました。詳細は後述(※2)します。
6. iTunes Connect にアップロードしたビルドを Test Flight で配信する
iTunes Connect で 先ほどアップロードしたビルドを TestFlight で配信します。
- iTunes Connect を開く(https://itunesconnect.apple.com/)
- マイ App > 該当の App を選択 > ヘッダーの「TestFlight」を選択 > 左の「内部テスト」を選択 > 「テストするバージョンを選択」を実行
- ウィンドウ内に先ほどアップロードしたビルドが表示されているので選択
私の場合、アップロードに成功したはずなのに、ビルドが表示されなくて焦りました。調べてみると「待つしかない」とのことで、待ってみたら30分〜1時間ぐらいで表示されました。
※1. Validate 実行時に遭遇したエラー
1-1. Your session has expired. Please log in.
スクショ撮り忘れました... いろいろ調べたのですがよくわからず、何回か Validate 押してるうちに出なくなりました... 謎...
結局やらなかったのですが、Xcode > Preferences > Accounts で サインインしなおすと解消するって言ってる人もいますね。
2-2. Missing iOS Distribution signing identify for xxxxxx
for の後のxxxxxには、実際にはアカウント名が入ります。
解決方法ですが、この記事がわかりやすくて大変参考になりました。
2016年2月15日以降、Missing iOS Distribution Signing identity for XXX というエラーが出た場合の解決方法
私の場合、新しい証明書は入っていたので、古い期限切れの証明書を削除することで解消しました。
※2. Upload 実行時に遭遇したエラー
2-1. This action could not be completed. Try again.
これも、結局原因がよくわかりませんでした。ネットの調子が悪かったのか、iTunes Connect のサーバの調子が悪かったのか... 何回かアップロードしなおしたら、出なくなりました。
2-2. ERROR ITMS-90023: Missing required icon file. The bundle does not contain an app icon for iPad of exactly 167x167 pixels, in .png format.
これは、iOS9用のアイコン画像が足りなかったみたいなんです。
アイコンを追加するには、Xcode > Unity-iPhone > Images.xcassets > AppIcon を選択して、
167 x 167 の適当なアイコン画像を用意して、iPad Pro App iOS9 のところにドラッグ&ドロップすると追加されます(地味にどうやって追加するのかわからなくなっちゃって四苦八苦した挙句、ドラッグ&ドロップで追加できることに気づいた時には脱力しました...)
あとがき
久しぶりにビルドをあげたのですが、手順をすっかり忘れていたり、iOSのバージョンがあがったことでエラーになったりとなかなか大変でした。仕事から帰ってきて深夜に頑張って対応したのですが、ビルドアップ完了の連絡をしても、結局すぐにはインストールしてもらえなかったりするんですよね... あるある。