Enable BitcodeをYes→Noに自動設定する方法【Unity】【Xcode】

概要

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に切り替えることができる。

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA