UnityプロジェクトをiOSに無料でビルドする
自分が開発したプロジェクトが実機で動くのを見れるのは、感慨深い。
1年ちょっと前にもUnityプロジェクトをiOSへビルドしてみた際の備忘録記事
を書いたのですが、自分で読み返しても情報不足だったり、
一部変更が入ったりして多少手順が変化していたりしました。
更新分などを含め、改めて整理して手順をまとめてみます。
※2022/4/3:注意書きを追記しました。
前提
この記事でのビルド方法は
Developer会員(Apple Developer Program membership)の場合に
できるビルド方法とは異なり、
Deploygateを介したアプリの配布やTestFlightの利用ができません。
「とりあえず作成したUnityプロジェクトの挙動を実機で確認してみたい」
という場合に有効な方法です。
詳しくは公式ページをご確認ください。
項目名の表記は、それぞれのアプリケーションで使用されている用語に準拠します。
Xcodeなら英語、Unityは日本語にも対応していますが、
実験的な機能であるため英語準拠です。
なるべく正確な記載を心がけていますが、
私の知識不足などにより誤りが含まれている可能性があります。
誤りを発見された場合は、コメント等でご指摘いただければありがたいです(ぺこり)
目次
必要なもの
・Unityプロジェクト
・Xcode
・USBケーブル
・実機(今回使用したものはiPhoneXs)
Xcode側の設定をする
今回初めてXcodeを使い始めたなどの理由でアカウント設定が済んでいない場合は、
Xcodeを起動しFile > Preferences > AccountsタブからApple IDを追加しましょう。
証明書を作成する
Apple IDの追加が完了したら、証明書を発行します。
Xcodeから実機にビルドする際に必要になるものです。
左下の+をクリックするとApple Developmentが出てくるので、これを選択します。
以前は他にもいくつか選択肢があったのですが、
Ver13.3時点では選択肢が上記の1つのみとなっているようです。
作成した証明書は「キーチェーンアクセス」から確認することができます。
Unity側の設定
Unity側の設定で注意しなければならないのは
「Bundle Identifer」、「Signing Team ID」(下画像の赤丸の項目)でしょう。
ちょっと複雑なので、それぞれ分けて説明します。
まずはFile > Build Settings > Player Settings... > Other Settings を開きましょう。
Bundle Identifer
Bundle Identiferは、デフォルトではPlayer Settings画面上部にある
「Company Name」欄で入力されたものが反映されています。
何も入力されていない場合は「com.DefaultCompany.」が入力されています。
Company Nameに任意の名称を入れた場合は、
Bundle Identiferが「com.任意の名称.」となります。
例えばCompany Nameに「KamiokaNoChiraura」と入れたとすると、
Bundle Identiferは「com.KamiokaNoChiraura.」が自動的に入力されます。
Company Nameに関する注意(2022/4/3追記)
初期値のDefaultCompanyでビルドすることはできません。
「違う名前を入れてください」という旨のダイアログが表示されるので、
自分にとって分かりやすい任意の名前をつけましょう。
基本的に必要のない設定とは思いますが、
もしCompany Nameと別の名称にしたい場合は、
Bundle Identiferの上にある
「Override Default Bundle Identifer」にチェックを入れましょう。
チェックを入れると、グレーアウトしていた直下のBundle Identiferの項目を
編集することができるようになります。
Bundle Identiferは、下記の注意項目に気をつけさえすればどんな名前でも問題ありません。分かりやすい名称がいいでしょう。
Bundle Identiferに関する注意
・英数字(A-Z、a-z、0-9)、ハイフン(-)、ピリオド(.)のみで構成しなければなりません。
・また、_(アンダーバー)は使用不可です。
Signing Team ID
Signing Team IDには、先ほど作成した証明書に記載されたものを入力します。
キーチェーンアクセスを起動し、ログインの中の証明書タブを開くと、
先ほど作成したApple Development~という名前で始まる証明書があります。
この証明書をダブルクリックすると詳細を確認できるので、
その中の「部署」という項目を確認します。
これがUnity上のPlayer Settingsの「Signing TeamID」に入力すべきIDです。
あとは「Automatically Sign」にもチェックを入れれば、Unity側の設定は完了です。
上記設定が完了したらビルド設定画面に戻り、
右下の「Build and Run」をクリックします。
Xcode向けのプロジェクトのビルド完了後、XcodeがiOS向けにビルドしてくれます。
ビルドが開始されると何度かパスワードを要求されますが、
これは自身のPCのアカウントのパスワードを入れればOKです。
iOS側の許可
ビルドと実行は自動的に行なってくれるのですが、iOS側にインストールする際、
エラーとなる場合があります。
これは、開発用証明書がiOS側で疑わしいもの扱いされるために起こるのですが、
iOSの設定画面から解消することができます。
iOSの設定 > 一般 > VPNとデバイス管理 に、
「デベロッパAPP」という項目があり、
その中に先ほど発行した証明書入っているリストがあるため、これをタップします。
(神岡はダークモード大好きなので、真っ黒画面です)
リストの中に入ると証明書のファイル名があり、
これをタップすると確認ダイアログが表示されるので、「信頼」をタップします。
赤丸で囲った部分をタップして、
「信頼」をタップします。
これでインストールやアプリの起動が問題なく行えるようになります。
証明書に関する注意(2022/4/3追記)
1週間(7日)程度で証明書の有効期限が切れてしまうようで、
端末側で許可した証明書は消滅してしまいます。
アプリ自体は端末に残るのですが、証明書がないため起動できません。
この場合は再度インストールし直しましょう。
その他トラブルシューティングっぽいなにか
Legacy Build System に関するエラー
Xcodeでビルド中、エラーが発生しビルドが中断されることがあります。
エラーの内容は画面左のBuildtimeから確認することができます。
黄色い警告アイコンについては無視してもビルドに影響はありません。
(想定内のエラーかどうかは確認しておいた方が無難ですが)
よく出るエラーとしては、
「The Legacy Build System will be removed in a future releases.~」というものです。
UnityからXcode経由でビルドする際に必ずと言ってもいいくらい発生するといいますか、
デフォルトでこの設定になっているようです。
File > Project SettingsのBuild Systemを確認すると、
「Legacy Bulid System(Deprecated)」で設定されているはずです。
これをクリックするとプルダウンメニューが表示されるため、
「New Build System(Default)」を選択し、右下の「Done」をクリックすると、
エラーが解消されます。
(Defaultのくせにdefaultで設定されていない理由は分かりません...)
私も調べてみましたが、
都度変更して対応されている方が多いので事前回避できないようです。
どなたかご存知の方がいらしたらコメント等残していただけると、
とてもありがたいです(土下座)
Xcode上で中断されたビルドを再開したい
エラーへの対処した後、自動的にビルド再開してくれません。
画面左上に▶︎アイコンがあるので、これをクリックすればビルドを再開してくれます。
基本的なことだとは思うのですが、
私が詰まってしばらく悩んだ箇所なので記載しておきます。
参考記事など
今回も下記ブログを参考にさせていただきました。
いつもお世話になっております。(ぺこり)
あと、バンドルID(Bundle identifier)について
分かりやすい記事もありましたので貼っておきます。
今回は以上です。
私の情報が更新された場合などは、この記事も随時更新します。
誤りのほか、「ここが分かりづらいんじゃ〜」ということがありましたら、
お気軽にコメントをお寄せください。
ただ、乱暴な言い方はやめてください。チキンメンタルが崩壊しますorz