tanaka's Programming Memo

プログラミングについてのメモ。

WindowsでiOSアプリのビルドとデプロイができるiOS Project Builder for Windows

iOS Project Builder for Windowsとは

Windowsマシンで、iOS用にUnityプロジェクトをビルドできるアセットです。

2012年ごろのMacBook Airを持っているのでiOSアプリのビルドはできるのですが、メインの開発環境はWindowsなのでビルドするのが面倒でした。処理も遅いですし。ということで、このアセットは理想的なのでは?ということで、50%セールで購入してみました!

WindowsSDKツールをインストールしたら、必要なプログラムをUSBメモリーにコピーして、Xcodeがインストールされたmac上でセットアッププログラムを実行して必要なデータを生成します。macでの作業はそれだけで、あとはWindows側で少しセットアップをしたらUnityプロジェクトのiOS用ビルドと実機へのインストールができるようになります!めちゃ便利です。

(このリンクはアフィリエイトリンクです。お気に召したらこのリンクからご購入いただけると活動の励みになります!)

  • 2018/12/31 iOS11以降では32bitアプリは動かないので、ビルドから外す設定を追記しました

目次

必要なもの

以下、必要なものです。

セットアップ手順

ツールをWindowsにインストール

このアセットの本体は、Windows用のアプリケーションです。そうと知った時はちょっと衝撃でした。ということで、作業はWindowsで始めます。

  • 適当なUnityプロジェクトを開いて、iOS Project Builder for Windowsをダウンロードして、インポートします
  • 以下の通り、iOS Project Builder for Unity Installerという実行ファイルのインストーラーがインポートされるので、ダブルクリックして起動します

f:id:am1tanaka:20181227222650p:plain
インポートしたフォルダー

  • インストール作業が始まるので、I Agree > Next > インストールしたいフォルダーを設定してInstallと進めます。大きさは320MB程度です
  • インストールが完了したら、Closeをクリックして閉じます

f:id:am1tanaka:20181227223200p:plain
インストール完了

以上で、必要なツールのインストールは完了です。readme.htmlWebブラウザーで開きます。このドキュメントにセットアップ方法やトラブルシューティングなどの詳細が書かれています。普通に使うだけならこのブログでいけると思いますので閉じて構いません。

f:id:am1tanaka:20181227223620p:plain
readme.html

インストールが完了したら、UnityにインポートされたiOS Project Builderフォルダーは削除して構いません。

f:id:am1tanaka:20181228205639p:plain
iOS Project Builderフォルダーを削除

初めての設定

最初に1回やっておく必要がある設定です。

SDK用データの生成

  • スタートメニューから、iOS Project Builder for Unity > SDK migration assistantをクリックして開きます

f:id:am1tanaka:20181227225801p:plain
MigrationAssistant

  • 以下のような2つのファイルが入っているフォルダーが開きます。これらが入っているMigrationAssistantフォルダーを、USBメモリーにコピーします

f:id:am1tanaka:20181227230057p:plain
Copy files

  • macを起動したらUSBメモリーを挿して、コピーしたMigrationAssistantフォルダー内のMigration assistant(step 1, Mac).commandをダブルクリックして起動します
  • ターミナルが開いて必要なファイルの作成が始まります。以下のようなウィンドウが表示されたらGot itをクリックして作業を進めます

f:id:am1tanaka:20181227233001p:plain
Got itをクリック

  • キーチェーンのログインパスワードを聞かれるので、パスワードを入力して常に許可をクリックしてください

f:id:am1tanaka:20181227233125p:plain
Keychain

f:id:am1tanaka:20181227233137p:plain
パスフレーズ

USBメモリーのフォルダー内にSDK.zipKeychain.zipが生成されたら完了です。USBメモリーを取り出して、Windowsに戻ります。

  • WindowsUSBメモリーのフォルダーを開いたら、Migration assistant (step 2, PC).cmdをダブルクリックして起動します

f:id:am1tanaka:20181227233243p:plain
MigrationAssistant Step2

  • コマンドプロンプトが起動して、セットアップ作業が始まります。以下のようにメッセージが表示されたら完了です

f:id:am1tanaka:20181227233518p:plain
Press any key

[A]キーなどを押せばウィンドウが閉じて、準備完了です。

署名の設定

デフォルトで利用される署名の設定をします。

  • Windowsで、スタートメニューからiOS Project Builder for UnityKeychain Toolを起動します

f:id:am1tanaka:20181228164241p:plain
Keychain Tool

署名設定がある場合、iPhone Developer: <名前>や、iPhone Distribution: <名前>といった証明書や、1つ以上のPrivat keyProvisioning Profileがいくつか一覧に表示されます。

f:id:am1tanaka:20181228170039p:plain
署名設定がある場合のKeychain Tool

maciOSアプリをビルドできるように設定されていなかった場合、リストボックスには何も表示されません。その場合は、こちらの記事などを参考にしてmacの設定を完了させてから、改めてMigrationAssistantでデータを作成してください。

署名設定は、証明書であるcertificateと、証明書から生成する時にパスフレーズで保護したprivate keyと、アプリのインストールを許可したiOSバイスを示すprovisioning profileの3つによって構成されます。

  • Provisioning profile欄をクリックして、利用可能なものがあれば設定します
    • CertificatePrivate keyは自動的に選択されます
  • Private key passphraseに、Migrationする際に設定したパスフレーズを入力します

f:id:am1tanaka:20181228173324p:plain
Keychain Toolの設定

設定が完了すると、上図の左下のロックアイコンに緑色のチェックが表示されます。

Note: generic identityについて

特定のアプリ用ではない、開発用のProvisioning profileを設定したい場合は、genericを選択します。リリースのためにアプリをビルドする時になったら、配布用のcertificateと特定のprovisioning profileに変更するとよいでしょう。

ビルド設定は以上で完了です!Keychain Toolのウィンドウはそのまま閉じて大丈夫です。

iOSプロジェクトのビルドとデプロイ

WindowsのUnityで、iOSプロジェクトをビルドする手順です。

  • 対象のUnityプロジェクトをWindowsのUnityで開いて、ビルド設定をiOSにします
  • FileメニューからBuildを選択して、iOSなどのフォルダーを作成してそこにビルドします
    • これで、Xcode用のプロジェクトが指定したフォルダーに生成されます
  • Windowsで、スタートメニューからiOS Project Builder for UnityProject Build for Unityをクリックして起動します

f:id:am1tanaka:20181228174712p:plain
Project Builder for Unityを起動

  • 右上のBrowse...ボタンをクリックして、UnityでiOS用にビルド先として指定したフォルダーを開きます

f:id:am1tanaka:20181231113545p:plain
iOS Builderの設定

  • Provisioning profilePrivate key passphraseが空欄だったら、Keychain Toolで設定したのと同様の内容を設定します
  • 32bitアプリはiOS11以降では使えないので不要です。Build for32-bit (armv7)のチェックを外します(2018/12/31追記)

以上の設定は保存されるので、2回目以降は設定不要です。また、Save configでファイルに保存できます。

以上できたら、Build and deployボタンをクリックします

エラーがなければ、しばらく待っていると以下のような画面が表示されて、ビルドが完了します。

f:id:am1tanaka:20181228210959p:plain
ビルド完了!

  • iPhoneなどのiOSバイスSafariを起動して、画面に表示されているURL(上の例なら、192.168.11.2:5003)を開きます
  • 以下のような画面がスマホに表示されたら開くをタップします

f:id:am1tanaka:20181228212228p:plain
開く

  • 以下のように表示されたら、インストールをクリックします

f:id:am1tanaka:20181228212242p:plain
インストール

  • スマホ側に以下のようなRetryボタンが表示されますが、ボタンを押さずにそのままにしておいてください

f:id:am1tanaka:20181228212354p:plain
閉じる

  • PCの画面でdeployのパーセントが表示されて、完了したらウィンドウが閉じます

f:id:am1tanaka:20181228212319p:plain
デプロイの進捗

以上で、スマホへのインストールは完了です。ホーム画面でアプリを探してみてください。新しくインストールされたアプリが見つかると思います。タップすれば、起動して動作を確認することができます。

f:id:am1tanaka:20181228212414p:plain
インストール完了!

エラーが発生した時 fatal error: Defines.h file not found

Cross Platform Native Pluginsを使ったプロジェクトをビルドしようとしたところ、以下のようなDefines.hが見つからないというようなエラーが発生しました。

f:id:am1tanaka:20181228184141p:plain
Defines.hが見つからない!

トラブルシューティングに解決策が書いてありました。サードパーティー製のプラグインを利用する場合にこのようなヘッダーが見つからないエラーが発生することがあるようです。extra compiler flagを設定することで解決できます。-I<relative_path_to_the_directory>の書式で、必要なヘッダーファイルがあるパスを指定します。

例えば、-ISomeDir/SomeOtherDir/Dir/WhereMyHeaderIsというような感じで、ハイフンに大文字のアイに続けてパスを記載します。複数指定する場合は、-Ipath1 -Ipath2 -Ipath3のように半角スペースで区切ります。

解決手順

  • エクスプローラーの検索欄に見つからないファイル(今回の場合はDefines.h)を入力します

f:id:am1tanaka:20181228185050p:plain
Defines.hを探す

  • 見つかったファイルを右クリックして、ファイルの場所を開くをクリックします

f:id:am1tanaka:20181228185222p:plain
ファイルの場所を開く

  • アドレスバーを右クリックして、アドレスのコピーをクリックします

f:id:am1tanaka:20181228185449p:plain
アドレスのコピー

  • iOS builderExtra compiler flagsにチェックを入れて、テキストボックスに-Iを入力して、続けてコピーしたアドレスを貼り付けます
  • パスの区切りがバックスラッシュ(\)だと失敗するので、全てスラッシュ(/)に書き換えます

f:id:am1tanaka:20181228191344p:plain
Extra compiler flagsの設定

以上設定したら、Build and deployボタンをクリックしてビルドをし直します。

まとめ

以上です。準備の手順は少し多いですが、一度設定すればあとはビルドツールを起動してボタンを押せばスマホですぐテストができるので画期的です!ビルド時間はPCの性能によって異なりますが、参考までに私の環境だと10分ぐらいでUnityのiOSビルドとiOS Project Builder for Windowsのビルドが完了します。

時間や手間の削減になるので、私と同じような強いWindowsPC+貧相macの環境だった場合、購入して損はないと思います^^

(このリンクはアフィリエイトリンクです。お気に召したらこのリンクからご購入いただけると活動の励みになります!)