iOS版テスト中
そういえば芥川賞作家の平野啓一郎センセイが突然、『お笑い芸人とはどうあるべきか』みたいなことを呟き始めたのを見て、流石にお顔がバカリズムに似ているだけあって文学だけでなく『芸人論』にも深い見識をお持ちなのだなぁと、感心したり、しなかったり、しなかったりしながら今日も「Dull Things No Life」の製作に励んでいるわけですが、ようやくiOS版でも実機のアルファテストを進めることが出来るようになりました。
AndroidよりもiOSの方がメモリ管理には厳しいという印象があるのですが、今のところ順調に進んでいます。後はメモリ管理より厳しいAppleStoreの審査まで進捗が滞りなく完了してくれることを祈るばかりです。
Android版からiOS版へ
「Dull Things No Life」の開発環境としてはWindowsPCで開発しているので、まず先にAndroid版を開発し、その完成版をiOS版へ変換するという手順になっています。
ただ、Unityで製作したアプリをiPhone等の実機で動かすための手順としては
- UnityプロジェクトのプラットフォームをiOSに切り替える
- Unityでビルドし、Xcodeプロジェクトを生成する
- Xcodeで2.生成したプロジェクトをビルドして実機(iPhone等)で動作させる
となります。
このためiOS版の開発を行う場合は、どうしてもXcodeが動作する環境(=iOSが動作する環境)が必要なので、今回の場合は
- Windows上で作成したUnityのプロジェクトをiOS版へSwitch Platform
- それをMacBookの方に丸ごとコピー
- iOS版のUnityでプロジェクトをオープン⇒ビルドして、Xcodeプロジェクトを生成する
という手順で開発を行っていました。
ただ、その作業の中で色々な問題が発生して対処に追われたので、備忘録も兼ねて記事にしたいと思います。
諸問題と対処法
■問題1:iOS Build Supportをインストールしてなかった
Unityはマルチプラットフォームに対応しているのでAndroid版からiOS版へ変換は「Build Settings」の「Switch Platform」で一発で出来のでそこまでは非常に簡単です。(時間は掛かるけど)
もちろんiOS版へ変換するには事前に「iOS Build Support」のパッケージがインストールされていることが必須なのですが、今回、そのパッケージをUnityインストール時にすっかり入れ忘れていました
■対処1:Unityインストールバッチを再度実行
Unityインストールバッチを再度実行し(Unityはアンインストールしない)、インストールモジュールを選択するウィンドウで「iOS Build Support」のみを選べば追加でインストール可能です。
■問題2:ビルドボタンが押せない
上記の対処でプラットフォームの切り替えは行えたのですが、今度はUnityのビルド画面でビルドボタンがグレーアウトされて押せない、表示されているエラーを見てみるとGraphinsAPIの設定がおかしいようで。。。
■対処2:Auto Graphics APIの設定を見直す
Android版からiOS版へ変換するとビルドに必要な情報(アプリアイコンや、CompanyNameや、ProductName等)はそのまま残っているので特に変更する必要はないのですが、Graphics APIの設定が「Metal」のみとなっている場合はあります。
(iOS12からOpenGL ESが非推奨になった所為?)
とりあえずこのままではビルドが進まないので、「Other Settings」の「Auto Graphics API」のチェックを外して「OpenGLES2」「OpenGLES3」が含まれているか確認⇒
「OpenGLES2」「OpenGLES3」が含まれていない場合は「+」を押して追加します。
■問題3:ビルドエラーが発生してXcodeプロジェクトが生成されない
今回の場合、上記の対処を行った後にビルドボタンを押すと、ビルドエラーとなり肝心のXcodeプロジェクトが生成されない事態に。試行錯誤を繰り返してやっと以下の結論に達しました。
■対処3:Windowsのプロジェクトを丸ごとコピーしない
前述のようにWindows上で作成したプロジェクトをMacBookの方に丸ごとコピーして、iOS版のUnityでプロジェクトをオープン⇒ビルドしていたのですが、そうするとビルドに不要なファイル、ディレクトリが含まれたままでエラーとなるようです。
なので、プロジェクトを丸ごとコピーするのではなく「Assets」と「ProjectSettings」のフォルダ、「Temp」フォルダを削除した「Library」フォルダをコピーして、シーンファイルをクリック⇒プロジェクトを再構築することでビルドエラーは発生しなくなりました。
ちなみに「Library」フォルダをコピーしたのは、ゲーム内で「TimeLine」と「Cinemachine」を使っており、その定義が「Library」フォルダ内に含まれているからです。
「TimeLine」や「Cinemachine」を使っていない場合は「Assets」と「ProjectSettings」のフォルダのみのコピーで大丈夫だと思います。
まとめ
- 「iOS Build Support」をインストールし忘れていたら、Unityのインストールバッチを再度実行して「iOS Build Support」のみを選択する
- ビルド前に「Auto Graphics API」のチェックを外して「OpenGLES2」「OpenGLES3」が含まれているかチェックする
- Windowsで作成したUnityのプロジェクトをMac側にコピーするときは「Assets」と「ProjectSettings」のフォルダのみ(場合によっては「Library」フォルダ(Tempフォルダを除く))をコピーする
今回はXcodeプロジェクト生成までに発生した問題について記載しました。
それ以後の作業で発生した問題についてはいずれ記事にしたいと思います。