AddiCloud
iCloud Storage APIs enable your apps to store data and documents in iCloud.
Read time 3 minutesLast updated 7 days ago
Definition
- Type: Method
- Namespace: UnityEditor.iOS.Xcode
- Assembly: UnityEditor.iOS.Extensions.Xcode
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
Enables or disables key-value Storage.
Enables or disables iCloud document storage.
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 is set to and can't be overridden using this method. Some scenarios require a custom value. In those cases, set manually in your entitlements file after building, or manage that key outside of .
com.apple.developer.ubiquity-kvstore-identifier$(TeamIdentifierPrefix)$(CFBundleIdentifier)com.apple.developer.ubiquity-kvstore-identifierAddiCloudExamples
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
Enables or disables key-value Storage.
Enables or disables iCloud document storage.
Enables cloudKit option.
Set to to add default containers.
trueArray 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 is set to and can't be overridden using this method. Some scenarios require a custom value. In those cases, set manually in your entitlements file after building, or manage that key outside of .
com.apple.developer.ubiquity-kvstore-identifier$(TeamIdentifierPrefix)$(CFBundleIdentifier)com.apple.developer.ubiquity-kvstore-identifierAddiCloudExamples
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(); }}