UnityGame/Library/PackageCache/com.unity.inputsystem/InputSystem/Plugins/iOS/iOSPostProcessBuild.cs

40 lines
1.3 KiB
C#
Raw Normal View History

2024-10-27 10:53:47 +03:00
#if UNITY_EDITOR
using System.IO;
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEngine;
using UnityEngine.InputSystem;
namespace UnityEngine.InputSystem
{
internal class iOSPostProcessBuild
{
[PostProcessBuild]
public static void UpdateInfoPList(BuildTarget buildTarget, string pathToBuiltProject)
{
if (buildTarget != BuildTarget.iOS)
return;
var settings = InputSystem.settings.iOS;
if (!settings.motionUsage.enabled)
return;
var plistPath = pathToBuiltProject + "/Info.plist";
var contents = File.ReadAllText(plistPath);
var description = InputSystem.settings.iOS.motionUsage.usageDescription;
#if UNITY_IOS || UNITY_TVOS
var plist = new UnityEditor.iOS.Xcode.PlistDocument();
plist.ReadFromString(contents);
var root = plist.root;
var buildKey = "NSMotionUsageDescription";
if (root[buildKey] != null)
Debug.LogWarning($"{buildKey} is already present in Info.plist, the value will be overwritten.");
root.SetString(buildKey, description);
File.WriteAllText(plistPath, plist.WriteToString());
#endif
}
}
}
#endif