using UnityEngine;
using UnityEditor;
using UnityEditor.Build;
using UnityEditor.Build.Reporting;
#if UNITY_IOS
using System.IO;
using Extension;
using UnityEditor.iOS.Xcode;
#endif
public class IosPostprocessBuild : IPostprocessBuildWithReport
{
public int callbackOrder => 100; // プロジェクトに合わせて調整
// https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundlelocalizations
public static readonly string[] SupportLanguages =
{
"en",
"ja",
};
public void OnPostprocessBuild(BuildReport report)
{
if (report.summary.platform != BuildTarget.iOS) return;
Debug.Log("IosPostprocessBuild Start");
#if UNITY_IOS
var plistPath = Path.Combine(report.summary.outputPath, "Info.plist");
PlistDocument plist = new PlistDocument();
plist.ReadFromFile(plistPath);
SetLanguages(plist.root);
plist.WriteToFile(plistPath);
#else
Debug.LogError("IosPostprocessBuild UNITY_IOS is not defined");
#endif
Debug.Log("IosPostprocessBuild Finish");
}
#if UNITY_IOS
private void SetLanguages(PlistElementDict root)
{
var array = root.CreateArray("CFBundleLocalizations");
foreach (var localization in SupportLanguages) array.AddString(localization);
}
#endif
}