private static void AddCapabilitys(ProjectCapabilityManager pcbManager, string capabilityName, object[] args) { switch (capabilityName) { case "ApplePay": pcbManager.AddApplePay(args as string[]); break; case "AppGroups": pcbManager.AddAppGroups(args as string[]); break; case "AssociatedDomains": pcbManager.AddAssociatedDomains(args as string[]); break; case "BackgroundModes": BackgroundModesOptions ops = BackgroundModesOptions.None; foreach (string op in args) { BackgroundModesOptions bmop; if (Enum.TryParse(op, out bmop)) { ops = ops | bmop; } } pcbManager.AddBackgroundModes(ops); break; case "DataProtection": pcbManager.AddDataProtection(); break; case "GameCenter": pcbManager.AddGameCenter(); break; case "HealthKit": pcbManager.AddHealthKit(); break; case "HomeKit": pcbManager.AddHomeKit(); break; case "iCloud": bool enableKeyValueStorage = Convert.ToBoolean(args[0]); bool enableiCloudDocument = Convert.ToBoolean(args[1]); List <string> customContainers = new List <string>(); if (args.Length > 2) { for (int i = 2; i < args.Length - 1; i++) { customContainers.Add(args[i].ToString()); } } pcbManager.AddiCloud(enableKeyValueStorage, enableiCloudDocument, customContainers.ToArray()); break; case "InAppPurchase": pcbManager.AddInAppPurchase(); break; case "InterAppAudio": pcbManager.AddInterAppAudio(); break; case "KeychainSharing": pcbManager.AddKeychainSharing(args as string[]); break; case "Maps": MapsOptions mops = MapsOptions.None; foreach (string op in args) { MapsOptions mop; if (Enum.TryParse(op, out mop)) { mops = mops | mop; } } pcbManager.AddMaps(mops); break; case "PersonalVPN": pcbManager.AddPersonalVPN(); break; case "PushNotifications": bool development = Convert.ToBoolean(args[0]); pcbManager.AddPushNotifications(development); break; case "Siri": pcbManager.AddSiri(); break; case "Wallet": pcbManager.AddWallet(args as string[]); break; case "WirelessAccessoryConfiguration": pcbManager.AddWirelessAccessoryConfiguration(); break; case "SignInWithApple": pcbManager.AddSignInWithApple(); break; case "AccessWiFiInformation": pcbManager.AddAccessWiFiInformation(); break; } }