-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPostBuildScript.cs
58 lines (49 loc) · 2.93 KB
/
PostBuildScript.cs
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
47
48
49
50
51
52
53
54
55
56
57
58
using System.Collections.Generic;
using System.IO;
using System.Linq;
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;
using UnityEditor.iOS.Xcode.Extensions;
using UnityEngine;
public static class PostBuildScript
{
[PostProcessBuild(1)]
public static void OnPostProcessBuild(BuildTarget buildTarget, string buildPath)
{
if( buildTarget != BuildTarget.iOS) return;
var projPath = PBXProject.GetPBXProjectPath(buildPath);
var proj = new PBXProject();
proj.ReadFromFile(projPath);
var targetGuid = proj.GetUnityMainTargetGuid();
proj.SetBuildProperty(targetGuid, "ENABLE_BITCODE", "NO");
proj.SetBuildProperty(targetGuid, "SWIFT_OBJC_BRDIDGING_HEADER", "Libraries/Plugins/AudioManager-Bridging-Header.h");
proj.SetBuildProperty(targetGuid, "SWIFT_OBJC_INTERFACE_HEADER_NAME", "AudioManager-Swift.h");
proj.AddBuildProperty(targetGuid, "LD_RUNPATH_SEARCH_PATHS", "@executable_path/Frameworks $(PROJECT_DIR)/lib/$(CONFIGURATION) $(inherited)");
proj.AddBuildProperty(targetGuid, "FRAMERWORK_SEARCH_PATHS",
"$(inherited) $(PROJECT_DIR) $(PROJECT_DIR)/Frameworks");
proj.AddBuildProperty(targetGuid, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "YES");
proj.AddBuildProperty(targetGuid, "DYLIB_INSTALL_NAME_BASE", "@rpath");
proj.AddBuildProperty(targetGuid, "LD_DYLIB_INSTALL_NAME",
"@executable_path/../Frameworks/$(EXECUTABLE_PATH)");
proj.AddBuildProperty(targetGuid, "DEFINES_MODULE", "YES");
proj.AddBuildProperty(targetGuid, "SWIFT_VERSION", "4.0");
proj.AddBuildProperty(targetGuid, "COREML_CODEGEN_LANGUAGE", "Swift");
const string defaultLocationInProj = "Plugins";
const string frameworkName = "AudioManager.framework";
var frameworkPath = Path.Combine(defaultLocationInProj, frameworkName);
Debug.Log($"FullPath : {frameworkPath}");
string fileGuid = proj.AddFile(frameworkPath, Path.Combine("Frameworks", frameworkPath), PBXSourceTree.Sdk);
Debug.Log($"File GUID : {fileGuid}");
proj.AddFileToEmbedFrameworks(targetGuid, fileGuid);
proj.SetBuildProperty(targetGuid, "LD_RUNPATH_SEARCH_PATHS", "$(inherited) @executable_path/Frameworks");
// string fullPath = Path.Combine(buildPath, defaultLocationInProj, coreFrameworkName);
// string fileGuid = proj.AddFile(fullPath, "Frameworks/" + fullPath, PBXSourceTree.Sdk);
// proj.SetBuildProperty(targetGuid, "LD_RUNPATH_SEARCH_PATHS", "$(inherited) @executable_path/Frameworks");
// // proj.AddFileToBuild(targetGuid, fileGuid);
// proj.AddFileToEmbedFrameworks(targetGuid, fileGuid);
// // PBXProjectExtensions.AddFileToEmbedFrameworks(proj, targetGuid, fileGuid);
// proj.SetBuildProperty(targetGuid, "LD_RUNPATH_SEARCH_PATHS", "$(inherited) @executable_path/Frameworks");
proj.WriteToFile(projPath);
}
}