-
Notifications
You must be signed in to change notification settings - Fork 248
/
Copy pathiOSPBXProjectModifier.cs
35 lines (30 loc) · 1.43 KB
/
iOSPBXProjectModifier.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
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;
public class iOSPBXProjectModifier
{
[PostProcessBuildAttribute]
public static void OnPostProcessBuild(BuildTarget target, string buildPath)
{
// Modify Unity generated Xcode project to enable Unity as a library
if (target == BuildTarget.iOS)
{
// Read project
string projectPath = PBXProject.GetPBXProjectPath(buildPath);
PBXProject project = new PBXProject();
project.ReadFromFile(projectPath);
// Get main and framework target guids
string unityMainTargetGuid = project.GetUnityMainTargetGuid();
string unityFrameworkTargetGuid = project.GetUnityFrameworkTargetGuid();
// Set NativeCallProxy plugin header visibility to public
string pluginHeaderGuid = project.FindFileGuidByProjectPath("Libraries/Plugins/iOS/NativeCallProxy.h");
project.AddPublicHeaderToBuild(unityFrameworkTargetGuid, pluginHeaderGuid);
// Change data directory target membership to framework only
string dataDirectoryGuid = project.FindFileGuidByProjectPath("Data");
project.RemoveFileFromBuild(unityMainTargetGuid, dataDirectoryGuid);
project.AddFileToBuild(unityFrameworkTargetGuid, dataDirectoryGuid);
// Overwrite project
project.WriteToFile(projectPath);
}
}
}