# AddTargetDependency

> Creates a dependency between this target and another target. The other target may be in a different project.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor.iOS.Xcode](/engine/6000.7/script-reference/unityeditor/ios/xcode.md)
* **Assembly:** UnityEditor.iOS.Extensions.Xcode

## AddTargetDependency(string, string)

Creates a dependency between this target and another target. The other target may be in a different project.

```csharp
public void AddTargetDependency(string targetGuid, string targetDependencyGuid)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The GUID of the target to which you are adding a dependency.**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The GUID of the dependency target.

### Examples

```csharp
using UnityEditor;
using System.IO;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;

public class Sample_AddTargetDependency  
{
    [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 GUIDs of the two targets you want to set up dependency between
        string mainTargetGuid = pbxProject.GetUnityMainTargetGuid();
        string newTargetGuid = pbxProject.AddTarget("ExampleTarget", "app", "example.type");

        // Add the Target dependency
        pbxProject.AddTargetDependency(mainTargetGuid, newTargetGuid);

        // Apply changes to the pbxproj file
        pbxProject.WriteToFile(projectPath);
    }
}
```

## AddTargetDependency(string, string, string)

Creates a dependency between this target and another target. The other target may be in a different project.

```csharp
public void AddTargetDependency(string targetGuid, string targetDependencyGuid, string dependencyName)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The GUID of the target to which you are adding a dependency.**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The GUID of the dependency target.**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The name of the dependency target.

### Examples

```csharp
using UnityEditor;
using System.IO;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;

public class Sample_AddTargetDependency  
{
    [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 GUIDs of the two targets you want to set up dependency between
        string mainTargetGuid = pbxProject.GetUnityMainTargetGuid();
        string newTargetGuid = pbxProject.AddTarget("ExampleTarget", "app", "example.type");

        // Add the Target dependency
        pbxProject.AddTargetDependency(mainTargetGuid, newTargetGuid);

        // Apply changes to the pbxproj file
        pbxProject.WriteToFile(projectPath);
    }
}
```
