40 lines
1.3 KiB
C#
40 lines
1.3 KiB
C#
|
#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
|