この記事は、年間 11,800 円の Developer 会員(Apple Developer Program membership)じゃないけれど、
自分の Unity プロジェクトが iOS でちゃんと動作するのか確認したい人のための記事です。
1. 前提知識
会員じゃなくても出来ること
というわけで、この記事では後者の2点に関しておこないます。
アカウント設定をまだの場合はします。
Xcode の設定画面を開き、「Accounts」タブを選び、まだ Apple ID を Xcode に登録していないのなら、
左下の + ボタンを押して、Apple ID を追加してください。
Apple ID の追加が終わったら、今度は「Manage Certificates...」ボタンをクリックします。
左下の + ボタンを押して、「iOS Development」を選択します。
これで開発ビルド用の証明書が作成されました。
3. Team ID の確認
Apple Developer Program に登録している人は https://developer.apple.com/account/#/membership/ に書かれている Team ID を用いるのですが、
今回使うのはそこの Team ID ではありません。
先ほど作った証明書に Team ID は書かれています。
Keychain アプリを開きます。
open -a /Applications/Utilities/Keychain\ Access.app
右上の検索ボックスに「iPhone 」 と入力します。
「iPhone Developer」 と書かれた証明書ファイルが見つかると思いますので、
それをダブルクリックして詳細を開きます。
詳細の中に、「Organizational Unit」 という項目があります。
ここに記載された値を、 Team ID として後ほど使用します。
4. Unity 側の設定
より詳細に触れている記事もネットにあるので、
私の設定を軽く書く程度で流していきます。
今回はデバッグ ビルドなので、以下のような設定にしました。
この画面の左下、「Player Settings...」 ボタンを押してさらに詳細な設定をおこないます。
「Resolution and Presentation」の項は、
横長のゲームなので「Default Orientation」を「Landscape Left」 に変更しました。
で、大事なのが「Other Settings」の項 。
ここで 3. でメモした Team ID を用います。
「Signing Team ID」 の項目に、先ほどメモした Team ID の値を入力します。
ここを入力し、また、「Automatically Sign 」にチェックが入っていることで、
Xcode は先ほどの証明書を使って、Unity から渡されるプロジェクトのビルドをおこなうことができるのです。
また、もう1つ気を付けたいのは「Bundler Identifier」 の項目です。
ここの値はアンダーバーを許容しません 。
ですので、Android のパッケージ名のような感覚で
例えば「com.google .something_game」と名付けるとビルドエラーになってしまいます。
「com.Google .SomethingGame」などと名付けましょう。
これらの設定がおこなえたら、先ほどの Build Settings ウィンドウに戻り、
「Build And Run」 ボタンでビルドをスタートします。
Unity 側で Xcode 用のブロジェクトをビルドしたのち、そのまま Xcode 側で iOS のためのビルドが走ってくれます。
Xcode により iOS 向けのビルドが走り、 iPhone へのインストールがスタートするのですが、
おそらく初回はインストールに失敗すると思います。
開発ビルド用の証明書は、iOS 側で疑わしい証明書の扱いを受けてしまうのです。
たぶんその際にエラーメッセージが表示されると思うのですが、
iPhone の設定アプリから、「一般」→「プロファイルとデバイス 管理」 に進んで、
「デベロッパ APP」の中にある自分の Apple ID を選んで、「〇〇を信頼」を押してください。
これで、再びビルドを回すと、iPhone へ正常にインストールがおこなわれるようになっているかと思います。
(Xcode でビルドエラーが出ている場合は、エラーメッセージをよく読み解決しましょう……)
6. iOS Simulator での動作
上では実機での動作について書きましたが、
iOS Simulator(エミュレーター )で動かす方法も書いておきます。
4. でいじった「Other Settings」の項を再びいじる必要があり、
「Target SDK 」の設定を「Simulator SDK 」 に変更し、
「Auto Graphics API 」のチェックボックス のチェックを外し、すぐ下の一覧に
「OpenGLES2」もしくは「OpenGLES3」が含まれているかを確認します。
「Simulator SDK 」を選択
「Auto Graphics API 」のチェックを外す
参考: UnityプロジェクトをiOS Simulatorで実行する時の注意点 - Qiita
この設定の状態で「Build And Run」をおこなえば、
iOS Simulator でアプリが起動するかと思います。
長い道のりでしたが、これで Unity アプリを自分の iPhone 向けにデバッグ ビルドすることが出来ました!
あいかわらず iOS へのビルドはややこしいですね……。