# AddPublicHeaderToBuild(string, string)

> Configures a file for building for the given native target as a public header.

## Definition

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

```csharp
public void AddPublicHeaderToBuild(string targetGuid, string fileGuid)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The GUID of the target, such as the one returned by [PBXProject.TargetGuidByName](/engine/6000.3/script-reference/unityeditor/ios/xcode/pbxproject/targetguidbyname.md).**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The file GUID returned by [PBXProject.AddFile](/engine/6000.3/script-reference/unityeditor/ios/xcode/pbxproject/addfile.md) or [PBXProject.AddFolderReference](/engine/6000.3/script-reference/unityeditor/ios/xcode/pbxproject/addfolderreference.md).

### Remarks

In projects containing multiple native targets, you can configure a file to build in all, some, or, none of the targets. The file reference is added to appropriate build section.

### Examples

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

public class Sample_AddPublicHeaderToBuild  
{
    [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 of the target you want to add the Headers Build Phase to
        string mainTargetGuid = pbxProject.GetUnityMainTargetGuid();

        // Add Headers Build Phase
        pbxProject.AddHeadersBuildPhase(mainTargetGuid);

        // Add the header file to the project and add it to Public Headers Build Phase
        string headerGuid = pbxProject.AddFile("exampleHeader.h", "Headers/exampleHeader.h", PBXSourceTree.Source);
        pbxProject.AddPublicHeaderToBuild(mainTargetGuid, headerGuid);

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