KITASENJU DESIGN BLOG

memo, html, javascript, unity

add new value to "Required device capabilities" on plist

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

namespace Kitasenju
{
    public class AddPlist
    {
        [PostProcessBuild]
        public static void SetXcodePlist(BuildTarget buildTarget, string pathToBuiltProject)
        {
            if (buildTarget != BuildTarget.iOS) return;

            var plistPath = pathToBuiltProject + "/Info.plist";
            var plist = new PlistDocument();
            plist.ReadFromString(File.ReadAllText(plistPath));

            var rootDict = plist.root;

            // photo
            rootDict.SetString("NSPhotoLibraryUsageDescription", "Save the recorded video");
            
            // a12 biotonic
            // https://developer.apple.com/documentation/bundleresources/information_property_list/uirequireddevicecapabilities
            var list = rootDict.values["UIRequiredDeviceCapabilities"] as PlistElementArray;
            list.AddString("iphone-ipad-minimum-performance-a12");
            rootDict.values["UIRequiredDeviceCapabilities"]=list;

            File.WriteAllText(plistPath, plist.WriteToString());
        }
    }
}
"FOOTER"