# ReplaceFile(string, string, PBXSourceTree)

> Replaces a specified file with a new file.

## Definition

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

```csharp
public void ReplaceFile(string fileGuid, string path, PBXSourceTree source = PBXSourceTree.Absolute)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The GUID of the file reference.**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The physical path to the new file on the filesystem.**** (\[PBXSourceTree]\(/engine/6000.6/script-reference/unityeditor/ios/xcode/pbxsourcetree)): The source tree the path is relative to. By default it's [PBXSourceTree.Source](/engine/6000.6/script-reference/unityeditor/ios/xcode/pbxsourcetree/source.md). The [PBXSourceTree.Group](/engine/6000.6/script-reference/unityeditor/ios/xcode/pbxsourcetree/group.md) tree is not supported.

### Remarks

The path to the specified file is replaced and the GUID of the old file is preserved.

### Examples

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

public class Sample_ReplaceFile  
{
    [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 target GUID
        string targetGuid = pbxProject.GetUnityMainTargetGuid();

        // Get the GUID of the existing file you want to replace
        string existingFilePath = "Resources/oldExampleFile.txt";
        string existingFileGuid = pbxProject.FindFileGuidByProjectPath(existingFilePath);

        // Add the new file and get the GUID
        string newFilePath = "path/to/your/newExampleFile.txt";
        string newFileGuid = pbxProject.AddFile(newFilePath, "Resources/newExampleFile.txt", PBXSourceTree.Source);

        // Replace the existing file with the new file
        pbxProject.ReplaceFile(existingFileGuid, newFileGuid);

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