123456789101112131415161718192021222324252627282930313233343536373839 |
- #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
|