言語設定がデフォルトで英語になっているので、毎回ビルド後にXcodeで日本語に設定し直すのが大変でしたので自動で設定するようにしました。
環境
- Unity 2019.3
- macOS
方法
plistを読み書きするPlistDocument
クラスが用意されているのでこれを使います。
ビルド後のコールバックで処理しますが、Unity2018ぐらいまでは[PostProcessBuild]
属性を使っていたのですが現在は廃止されており、新しくIPostprocessBuildWithReport
インターフェイスを継承してビルド後のコールバックを受け取る必要があります。
using System.IO;
using UnityEditor;
using UnityEditor.Build;
using UnityEditor.Build.Reporting;
using UnityEditor.iOS.Xcode;
public class XcodePostprocess : IPostprocessBuildWithReport
{
public int callbackOrder { get { return 0; } }
public void OnPostprocessBuild(BuildReport report)
{
if (report.summary.platform == BuildTarget.iOS)
{
string plistPath = Path.Combine(report.summary.outputPath, "Info.plist");
PlistDocument plist = new PlistDocument();
plist.ReadFromFile(plistPath);
plist.root.SetString("CFBundleDevelopmentRegion", "ja");
plist.WriteToFile(plistPath);
}
}
}