ProjectCapabilityManager.AddKeychainSharing

Declaration

public void AddKeychainSharing(string[] accessGroups);

Parameters

accessGroups Array of access groups.

Description

Add the Keychain Sharing capability.

using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;

public class Sample_AddKeychainSharing { [PostProcessBuild] public static void OnPostprocessBuild(BuildTarget buildTarget, string pathToBuiltProject) { // Stop processing if build target isn't iOS

if (buildTarget != BuildTarget.iOS) return;

// Initialize PBXProject var projectPath = PBXProject.GetPBXProjectPath(pathToBuiltProject); PBXProject pbxProject = new PBXProject(); pbxProject.ReadFromFile(projectPath);

// Get Main target GUID string mainTargetGuid = pbxProject.GetUnityMainTargetGuid();

// Check if there's already an entitlements file created and use it. If not, create a new file called Example.entitlements string entitlementsFile = pbxProject.GetBuildPropertyForAnyConfig(mainTargetGuid, "CODE_SIGN_ENTITLEMENTS"); if (entitlementsFile == null) { entitlementsFile = string.Format("Example.entitlements"); }

// Initialize ProjectCapabilityManager ProjectCapabilityManager capabilityManager = new ProjectCapabilityManager(projectPath, entitlementsFile, targetGuid: mainTargetGuid);

// Add 'Keychain Sharing' capability and pass any keychain access groups you want to use as a string array string[] acessGroups = new string[] { "group1", "group2" }; capabilityManager.AddKeychainSharing(acessGroups);

// Call WriteToFile to save the changes to project file capabilityManager.WriteToFile(); }

}

Did you find this page useful? Please give it a rating: