Unity向けプロファイリングツールであるUWA GOTのv2.0.1から、iOSプラットフォームでのプロファイリングも可能になりました*1。 本記事では、iOS版の導入手順(Androidとの差分)と注意点などを紹介します。
なお、UWA GOTの概要については、過去記事を参照してください。
SDKインテグレーション
基本的なインテグレーションはAndroidと同様です。 ただし、最初に開くSceneのヒエラルキには、UWA/Prefabs/UWA_Launcherを追加します*2。
以上設定したら、Development Buildを有効にしてビルドします(Xcodeプロジェクトを生成します)。
Bitcodeを無効化
XcodeプロジェクトはデフォルトでBitcodeが有効な設定になっていますが、UWA GOTのiOSライブラリはBitcodeに対応していません*3。 そのため、Build Settings > Project*4 > Build Options にある"Enable Bitcode"を探して"NO"に設定する必要があります(下図参照)。
なお、ビルドごとに毎回手作業で修正するのはつらいので、Unityビルドの後処理でXcodeプロジェクトの"Enable Bitcode"を"NO"に書き換えるスクリプトを入れておくと便利です。
以下のコードをEditor
ディレクトリ下に配置します。このコードは、Unity 2019.3.2f1 + Xcode 11.1で動作を確認しています。
public class DisableBitcode : IPostprocessBuildWithReport { public int callbackOrder => 0; public void OnPostprocessBuild(BuildReport report) { if (report.summary.platform == BuildTarget.iOS) { var path = report.summary.outputPath; var pbxProjectPath = PBXProject.GetPBXProjectPath(path); var replaceProject = new PBXProject(); replaceProject.ReadFromString(File.ReadAllText(pbxProjectPath)); var target = replaceProject.GetUnityFrameworkTargetGuid(); replaceProject.SetBuildProperty(target, "ENABLE_BITCODE", "NO"); File.WriteAllText(pbxProjectPath, replaceProject.WriteToString()); } } }
スクリプトは、下記ブログ記事を参考にさせていただきました*5。
計測
UWA GOTをバンドルしたアプリを起動すると、下図のGUIがオーバーレイされます。
"Direct Mode"は、onにするとアプリが終了し、再起動するところから計測を開始できます。offのときは、"Overview", "Assets"いずれかをタップしたタイミングで計測を開始します。
計測が開始されると"Stop"ボタンが表示されるので、一通り動作させたらこれをタップして計測を終了します。 一度計測を行ったら、アプリを再起動しなければ次の(他の)計測はできません*6。
計測データのアップロード
Android版と異なり、計測が終了するとデータをアップロードするためのダイアログが表示されます。
UWAオンライン(IDとパスワード入力が必要)、もしくはローカルサーバ(IPアドレスの入力が必要*7)を選択し、[データ提出]をタップします。
Onlineの場合、スクリーンショットをUWAオンラインサーバに送信するかを指定するトグルが表示されます*8。[確認]をタップすると計測データが送信されます。
計測データの表示
以降は、Android版と同様です(ただしMonoプロファイルはありません)。過去記事およびマニュアルを参照してください。
*1:本稿執筆時点ではv2.0.2がリリースされており、本稿はv2.0.2ベースで書いています
*2:v2.0.1まではプラットフォームごとに別ファイルでしたが、v2.0.2から統一されました
*3:UWAに修正要望を出しています
*4:ProjectでなくUnityFrameworkだけでよさそうですが、スクショ撮りなおすのが面倒だったのでここままで…
*5:ただしUnity 2019.3でPBXProjectの構成が変わっていたため修正
*6:改善要望はしており、修正予定はあるそうです
*7:Unityエディタ上でGOT Editorを開き、WIFIボタンをクリックすると起動します。IPアドレスとポート番号が表示されますがポート番号は入力不要です
*8:Direct Modeもそうなのですが、トグルon/offがとても視認しづらいです。要望は上げています…