Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void OnPostprocessBuild(BuildTarget target, string projectPath) {
- string pbxProjPath = PBXProject.GetPBXProjectPath(projectPath);
- PBXProject pbxProject = new PBXProject();
- pbxProject.ReadFromFile(pbxProjPath);
- string targetName = PBXProject.GetUnityTargetName();
- string targetGuidName = pbxProject.TargetGuidByName(targetName);
- pbxProject.WriteToFile(pbxProjPath);
- string basePath = Application.dataPath + "/";
- string frameworkPath = "Plugins/iOS/";
- string []arrFrameworks = {"frameworkA.framework", "frameworkB.framework"};
- foreach(string framework in arrFrameworks) {
- AddEmbeddedFramework(ref pbxProject, targetGuidName, basePath + frameworkPath + framework, frameworkPath + framework);
- }
- pbxProject.WriteToFile (pbxProjPath);
- foreach(string framework in arrFrameworks) {
- string contents = File.ReadAllText(pbxProjPath);
- string pattern = "(?<=Embed Frameworks)(?:.*)(\\/\\* " + framework + "\\ \\*\\/)(?=; };)";
- string oldText = "/* " + framework + " */";
- string updatedText = "/* " + framework + " */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }";
- contents = Regex.Replace(contents, pattern, m => m.Value.Replace(oldText, updatedText));
- File.WriteAllText(pbxProjPath, contents);
- }
- }
- public static void AddEmbeddedFramework(ref PBXProject project, string target, string frameworkPath, string frameworkName) {
- string fileGuid = project.AddFile(frameworkPath, "Frameworks/" + frameworkName, PBXSourceTree.Source);
- string embedPhase = project.AddCopyFilesBuildPhase (target, "Embed Frameworks", "", "10");
- project.AddFileToBuildSection (target, embedPhase, fileGuid);
- PBXProjectExtensions.AddFileToEmbedFrameworks(project, target, fileGuid);
- project.AddBuildProperty(target, "LD_RUNPATH_SEARCH_PATHS", "$(inherited) @executable_path/Frameworks");
- project.AddBuildProperty(target, "FRAMEWORK_SEARCH_PATHS", "$(SRCROOT)/PATH_TO_FRAMEWORK/");
- }
Add Comment
Please, Sign In to add comment