index | The position at which to insert the new build phase. If it's higher than the total number of build phases, the new phase is added at the end. |
targetGuid | The GUID of the target, such as the one returned by TargetGuidByName. |
name | The name of the phase. |
shellPath | The shell path. |
shellScript | The shell script. |
string Returns the GUID of the new phase.
Creates a new shell script build phase for a given target.
The build phase is inserted at the specified position. You can query all the defined build phases using GetAllBuildPhasesForTarget.
using UnityEditor; using System.IO; using UnityEditor.Callbacks; using UnityEditor.iOS.Xcode;
public class Sample_InsertShellScriptBuildPhase { [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 GUID of the target you want to add the Shell Script Phase to string mainTargetGuid = pbxProject.GetUnityMainTargetGuid();
// Add the Shell Script Phase to that target as first custom Shell Script phase (index 0) pbxProject.InsertShellScriptBuildPhase(0, mainTargetGuid, "exampleScript1", "", "echo exampleCommand1");
// Apply changes to the pbxproj file pbxProject.WriteToFile(projectPath); } }
index | The position at which to insert the new build phase. If it's higher than the total number of build phases, the new phase is added at the end. |
targetGuid | The GUID of the target, such as the one returned by TargetGuidByName. |
name | The name of the phase. |
shellPath | The shell path. |
shellScript | The shell script. |
inputPaths | The shell script input dependencies. |
string Returns the GUID of the new phase.
Creates a new shell script build phase for a given target.
The build phase is inserted at the specified position. You can query all the defined build phases using GetAllBuildPhasesForTarget.