Maze / Library /PackageCache /com.unity.inputsystem@1.6.1 /InputSystem /Plugins /iOS /iOSPostProcessBuild.cs
| using System.IO; | |
| using UnityEditor; | |
| using UnityEditor.Callbacks; | |
| using UnityEngine; | |
| using UnityEngine.InputSystem; | |
| namespace UnityEngine.InputSystem | |
| { | |
| internal class iOSPostProcessBuild | |
| { | |
| [] | |
| 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; | |
| 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()); | |
| } | |
| } | |
| } | |