2016/06/21
概要
Unityのバージョンを5.3.4.f1にアップデートしたら、Xcodeでビルドするときに、Enable BitcodeがYesに設定されてて、ビルドが通らなくなった。
Xcodeでビルドする度に手動で切り替えるのは面倒なので、Unity側で自動設定する方法を探した。
http://forum.unity3d.com/threads/set-enable-bitcode-default-value-when-building-for-ios.353236/
https://support.unity3d.com/hc/en-us/articles/207942813-How-to-disable-Bitcode-support-
ここを参考にするといい感じ。
解説
UnityEditor.iOS.Xcode.PBXProjectを使うのが一番簡単な設定方法とのこと。
using UnityEngine; using UnityEditor; using UnityEditor.Callbacks; using UnityEditor.iOS.Xcode; public static class MyBuildPostprocess { [PostProcessBuild(999)] public static void OnPostProcessBuild( BuildTarget buildTarget, string path) { if(buildTarget == BuildTarget.iOS) { string projectPath = path + "/Unity-iPhone.xcodeproj/project.pbxproj"; PBXProject pbxProject = new PBXProject(); pbxProject.ReadFromFile(projectPath); string target = pbxProject.TargetGuidByName("Unity-iPhone"); pbxProject.SetBuildProperty(target, "ENABLE_BITCODE", "NO"); pbxProject.WriteToFile (projectPath); } } }
[PostProcessBuild(N)]でUnityでビルドした”後”に処理をいれることができる。
ちなみに(N)はプロセスを実行する順序らしい。
上記コードをAssets/Editor内に保存すると、Xcodeコンパイル時に手動でEnable Bitcodeを設定しなくても、YesからNoに切り替えることができる。