みかづきブログ その3

3ヶ月つづけてみました。

Unityで書き出したXcodeプロジェクトのinfo.plistを書き換えるのが面倒なのでPlistDocumentをつかって書き換える

Build SettingのPlayer Settingsの中からも色々設定できるのですが、Localization native development regionの設定が見当たらず、毎回info.plistを更新するのも面倒なので、Unityからinfo.plistを書き換えてしまおうと思いました。

結論だけ先に書くと、Assets/Editorのなかに、

using UnityEngine;
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;
using System.IO;

public class XcodeProjectUpdater
{
    [PostProcessBuild]
    static void OnPostprocessBuild(BuildTarget buildTarget, string path)
    {
        if (buildTarget != BuildTarget.iOS) return;

        string plistPath = Path.Combine(path, "Info.plist");
        PlistDocument plist = new();

        plist.ReadFromFile(plistPath);
        plist.root.SetString ("CFBundleDevelopmentRegion", "ja");
        plist.WriteToFile(plistPath);
    }
}

と書いたファイルを入れておけばOKでした。

はじめは、

using UnityEngine;
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;
using System.IO;

public class XcodeProjectUpdater
{
    [PostProcessBuild]
    static void OnPostprocessBuild(BuildTarget buildTarget, string path)
    {
        if (buildTarget != BuildTarget.iOS) return;

        string plistPath = Path.Combine(path, "Info.plist");
        PlistDocument plist = new PlistDocument();

        plist.ReadFromFile(plistPath);
        plist.root.SetString ("Localization native development region", "Japan"); // ここが違う
        plist.WriteToFile(plistPath);
    }
}

と書いていたのですが、うまく行かず、

plist.root.SetString ("Localization native development region", "Japan");

を、

plist.root.SetString ("CFBundleDevelopmentRegion", "ja");

としたらうまくいきました。