1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| using System.Collections; using System.Collections.Generic; using System.IO; using UnityEditor; using UnityEditor.Callbacks; using UnityEditor.iOS.Xcode; using UnityEngine;
public class IosBuildSetting : MonoBehaviour { [PostProcessBuild] private static void OnBuildFinish(BuildTarget buildTarget, string buildPath) { if (buildTarget == BuildTarget.iOS) { SetXCodeProject(buildPath); } }
public static void SetXCodeProject(string buildPath) { PBXProject project = new PBXProject(); project.ReadFromString(File.ReadAllText(PBXProject.GetPBXProjectPath(buildPath)));
string targetGuid = project.GetUnityFrameworkTargetGuid(); project.AddFrameworkToProject(targetGuid, "AVKit.framework", false); PlistDocument plist = new PlistDocument(); plist.ReadFromString(File.ReadAllText(Path.Combine(buildPath, "Info.plist"))); plist.root.SetString("NSCameraUsageDescription", "请求相机权限!"); plist.WriteToFile(Path.Combine(buildPath, "Info.plis")); project.SetBuildProperty(targetGuid, "CODE_SIGN_IDENTITY", "iphone Developer");
string fileGuid = project.FindFileGuidByProjectPath("MainApp/main.mm"); project.SetCompileFlagsForFile(targetGuid, fileGuid, new List<string>(){"xxx"}); project.WriteToFile(PBXProject.GetPBXProjectPath(buildPath)); } }
|