# UpdateBuildPropertyForConfig

> Adds and removes values from a build property in the given build configuration.

## Definition

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

## UpdateBuildPropertyForConfig(string, string, IEnumerable\<string>, IEnumerable\<string>)

Adds and removes values from a build property in the given build configuration.

```csharp
public void UpdateBuildPropertyForConfig(string configGuid, string name, IEnumerable<string> addValues, IEnumerable<string> removeValues)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The GUID of the build configuration as returned by [PBXProject.BuildConfigByName](/engine/6000.3/script-reference/unityeditor/ios/xcode/pbxproject/buildconfigbyname.md).**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The name of the build property.**** (\[IEnumerable\<string>]\(https\://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)): The values to add to the build property.**** (\[IEnumerable\<string>]\(https\://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)): The values to remove from the build property.

### Examples

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

public class Sample_UpdateBuildPropertyForConfig  
{
    [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 mainTargetGuid = pbxProject.GetUnityMainTargetGuid();

        // Get the GUID of the "Debug" config
        string configGuid = pbxProject.BuildConfigByName(mainTargetGuid, "Debug");

        // Set up which property you will want to update, what values you want to add, and what values you want to remove
        string propertyName = "ON_DEMAND_RESOURCES_INITIAL_INSTALL_TAGS";
        string[] newTags = new string[] { "newTag1", "newTag2", "newTag3"};
        string[] oldTags = new string[] { "oldTag1", "oldTag2", "oldTag3"};

        // Update the property using the UpdateBuildPropery function
        pbxProject.UpdateBuildPropertyForConfig(configGuid, propertyName, newTags, oldTags);

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

## UpdateBuildPropertyForConfig(IEnumerable\<string>, string, IEnumerable\<string>, IEnumerable\<string>)

Adds and removes values from a build property in the given build configuration.

```csharp
public void UpdateBuildPropertyForConfig(IEnumerable<string> configGuids, string name, IEnumerable<string> addValues, IEnumerable<string> removeValues)
```

### Parameters

**** (\[IEnumerable\<string>]\(https\://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)): An array of GUIDs of build configurations.**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The name of the build property.**** (\[IEnumerable\<string>]\(https\://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)): The values to add to the build property.**** (\[IEnumerable\<string>]\(https\://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)): The values to remove from the build property.

### Examples

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

public class Sample_UpdateBuildPropertyForConfig  
{
    [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 mainTargetGuid = pbxProject.GetUnityMainTargetGuid();

        // Get the GUID of the "Debug" config
        string configGuid = pbxProject.BuildConfigByName(mainTargetGuid, "Debug");

        // Set up which property you will want to update, what values you want to add, and what values you want to remove
        string propertyName = "ON_DEMAND_RESOURCES_INITIAL_INSTALL_TAGS";
        string[] newTags = new string[] { "newTag1", "newTag2", "newTag3"};
        string[] oldTags = new string[] { "oldTag1", "oldTag2", "oldTag3"};

        // Update the property using the UpdateBuildPropery function
        pbxProject.UpdateBuildPropertyForConfig(configGuid, propertyName, newTags, oldTags);

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