// Add the iCloud capability with the desired options.
        public void AddiCloud(bool keyValueStorage, bool iCloudDocument, string[] customContainers)
        {
            var ent = GetOrCreateEntitlementDoc();
            var val = (ent.root[ICloudEntitlements.ContainerIdValue] = new PlistElementArray()) as PlistElementArray;

            if (iCloudDocument)
            {
                val.values.Add(new PlistElementString(ICloudEntitlements.ContainerIdValue));
                var ser = (ent.root[ICloudEntitlements.ServicesKey] = new PlistElementArray()) as PlistElementArray;
                ser.values.Add(new PlistElementString(ICloudEntitlements.ServicesKitValue));
                ser.values.Add(new PlistElementString(ICloudEntitlements.ServicesDocValue));
                var ubiquity = (ent.root[ICloudEntitlements.UbiquityContainerIdKey] = new PlistElementArray()) as PlistElementArray;
                ubiquity.values.Add(new PlistElementString(ICloudEntitlements.UbiquityContainerIdValue));
                for (var i = 0; i < customContainers.Length; i++)
                {
                    ser.values.Add(new PlistElementString(customContainers[i]));
                }
            }

            if (keyValueStorage)
            {
                ent.root[ICloudEntitlements.KeyValueStoreKey] = new PlistElementString(ICloudEntitlements.KeyValueStoreValue);
            }

            project.AddCapability(m_TargetGuid, PBXCapabilityType.iCloud, m_EntitlementFilePath, iCloudDocument);
        }