Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


AddiCloud

iCloud Storage APIs enable your apps to store data and documents in iCloud.
Read time 3 minutesLast updated 7 days ago

Definition

AddiCloud(bool, bool, string[])

iCloud Storage APIs enable your apps to store data and documents in iCloud.
public void AddiCloud(bool enableKeyValueStorage, bool enableiCloudDocument, string[] customContainers)

Parameters

enableKeyValueStorage

Enables or disables key-value Storage.

enableiCloudDocument

Enables or disables iCloud document storage.

customContainers

Array of containers in which to store documents on iCloud. For more information about custom container types, refer to Manage iCloud document storage and CloudKit containers.

Remarks

Note: When key-value storage is enabled, the entitlement
com.apple.developer.ubiquity-kvstore-identifier
is set to
$(TeamIdentifierPrefix)$(CFBundleIdentifier)
and can't be overridden using this method. Some scenarios require a custom value. In those cases, set
com.apple.developer.ubiquity-kvstore-identifier
manually in your entitlements file after building, or manage that key outside of
AddiCloud
.

Examples

using UnityEditor;using UnityEditor.Callbacks;using UnityEditor.iOS.Xcode;public class Sample_AddiCloud { [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 'iCloud' capability and pass any arguments & custom containers to match your setup string[] containers = new string[] { "iCloud.com.example.container1", "iCloud.com.example.container2" }; capabilityManager.AddiCloud(true, true, containers); // Call WriteToFile to save the changes to project file capabilityManager.WriteToFile(); }}

AddiCloud(bool, bool, bool, bool, string[])

iCloud Storage APIs enable your apps to store data and documents in iCloud.
public void AddiCloud(bool enableKeyValueStorage, bool enableiCloudDocument, bool enablecloudKit, bool addDefaultContainers, string[] customContainers)

Parameters

enableKeyValueStorage

Enables or disables key-value Storage.

enableiCloudDocument

Enables or disables iCloud document storage.

enablecloudKit

Enables cloudKit option.

addDefaultContainers

Set to
true
to add default containers.

customContainers

Array of containers in which to store documents on iCloud. For more information about custom container types, refer to Manage iCloud document storage and CloudKit containers.

Remarks

Note: When key-value storage is enabled, the entitlement
com.apple.developer.ubiquity-kvstore-identifier
is set to
$(TeamIdentifierPrefix)$(CFBundleIdentifier)
and can't be overridden using this method. Some scenarios require a custom value. In those cases, set
com.apple.developer.ubiquity-kvstore-identifier
manually in your entitlements file after building, or manage that key outside of
AddiCloud
.

Examples

using UnityEditor;using UnityEditor.Callbacks;using UnityEditor.iOS.Xcode;public class Sample_AddiCloud { [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 'iCloud' capability and pass any arguments & custom containers to match your setup string[] containers = new string[] { "iCloud.com.example.container1", "iCloud.com.example.container2" }; capabilityManager.AddiCloud(true, true, containers); // Call WriteToFile to save the changes to project file capabilityManager.WriteToFile(); }}