string The GUID for the UnityAPI target, or null when the target is not present.
Returns the GUID of the UnityAPI target, or null if the project does not contain one.
Returns the GUID of the UnityAPI target. The UnityAPI target is a static framework that contains the trampoline source code and exposes the public UnityAPI module to native plug-ins.
This target exists only for the Swift Xcode project type. It isn't generated for the Objective-C project type and returns null in that case. Set the project type with the UnityEditor.PlayerSettings.xcodeProjectType property.
To retrieve the other targets, use GetUnityMainTargetGuid and GetUnityFrameworkTargetGuid.
using UnityEditor; using UnityEditor.Callbacks; using UnityEditor.iOS.Xcode;
public class Sample_GetUnityAPITargetGuid { [PostProcessBuild] public static void OnPostprocessBuild(BuildTarget buildTarget, string pathToBuiltProject) {
// Stop processing if build target is not iOS if (buildTarget != BuildTarget.iOS) return;
// Initialize PBXProject string projectPath = PBXProject.GetPBXProjectPath(pathToBuiltProject);
PBXProject pbxProject = new PBXProject(); pbxProject.ReadFromFile(projectPath);
// Get the GUID for the UnityAPI target string unityAPIGuid = pbxProject.GetUnityAPITargetGuid();
// The UnityAPI target only exists for the Swift project type; it is null for Objective-C if (unityAPIGuid == null) return;
// The unityAPIGuid can be used to specify UnityAPI as the target when manipulating the pbxproj file pbxProject.SetBuildProperty(unityAPIGuid, "GCC_PREPROCESSOR_DEFINITIONS", "MY_PLUGIN_DEFINE=1");
// Apply changes to the pbxproj file pbxProject.WriteToFile(projectPath); } }