原カバンは鞄のお店ではありません。

Unityを使ったゲーム制作のあれこれを綴っていきます。

【Unity】Android版からiOS版へ移植するまでのTips

iOS版テスト中

そういえば芥川賞作家の平野啓一郎センセイが突然、『お笑い芸人とはどうあるべきか』みたいなことを呟き始めたのを見て、流石にお顔がバカリズムに似ているだけあって文学だけでなく『芸人論』にも深い見識をお持ちなのだなぁと、感心したり、しなかったり、しなかったりしながら今日も「Dull Things No Life」の製作に励んでいるわけですが、ようやくiOS版でも実機のアルファテストを進めることが出来るようになりました。

 

f:id:Karvan:20190305232157p:plain

 

AndroidよりもiOSの方がメモリ管理には厳しいという印象があるのですが、今のところ順調に進んでいます。後はメモリ管理より厳しいAppleStoreの審査まで進捗が滞りなく完了してくれることを祈るばかりです。

 

f:id:Karvan:20190305232312j:plain

 

Android版からiOS版へ

「Dull Things No Life」の開発環境としてはWindowsPCで開発しているので、まず先にAndroid版を開発し、その完成版をiOS版へ変換するという手順になっています。

 

ただ、Unityで製作したアプリをiPhone等の実機で動かすための手順としては

  1. UnityプロジェクトのプラットフォームをiOSに切り替える
  2. Unityでビルドし、Xcodeプロジェクトを生成する
  3. Xcodeで2.生成したプロジェクトをビルドして実機(iPhone等)で動作させる

となります。

 

このためiOS版の開発を行う場合は、どうしてもXcodeが動作する環境(=iOSが動作する環境)が必要なので、今回の場合は

  1. Windows上で作成したUnityのプロジェクトをiOS版へSwitch Platform
  2. それをMacBookの方に丸ごとコピー
  3. 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が非推奨になった所為?)

f:id:Karvan:20190305232806p:plain

 

とりあえずこのままではビルドが進まないので、「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プロジェクト生成までに発生した問題について記載しました。
それ以後の作業で発生した問題についてはいずれ記事にしたいと思います。

 

◇プライバシーポリシー

●個人情報の利用目的

当ブログでは、メールでのお問い合わせ、メールマガジンへの登録などの際に、名前(ハンドルネーム)、メールアドレス等の個人情報をご登録いただく場合がございます。

これらの個人情報は質問に対する回答や必要な情報を電子メールなどをでご連絡する場合に利用させていただくものであり、個人情報をご提供いただく際の目的以外では利用いたしません。

●個人情報の第三者への開示

当サイトでは、個人情報は適切に管理し、以下に該当する場合を除いて第三者に開示することはありません。

・本人のご了解がある場合
・法令等への協力のため、開示が必要となる場合

個人情報の開示、訂正、追加、削除、利用停止
ご本人からの個人データの開示、訂正、追加、削除、利用停止のご希望の場合には、ご本人であることを確認させていただいた上、速やかに対応させていただきます。

アクセス解析ツールについて

当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。

このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。このトラフィックデータは匿名で収集されており、個人を特定するものではありません。
この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。

●免責事項

当サイトからリンクやバナーなどによって他のサイトに移動された場合、移動先サイトで提供される情報、サービス等について一切の責任を負いません。

当サイトのコンテンツ・情報につきまして、可能な限り正確な情報を掲載するよう努めておりますが、誤情報が入り込んだり、情報が古くなっていることもございます。

当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

●プライバシーポリシーの変更について

当サイトは、個人情報に関して適用される日本の法令を遵守するとともに、本ポリシーの内容を適宜見直しその改善に努めます。

修正された最新のプライバシーポリシーは常に本ページにて開示されます。