public bool Save() { if (string.IsNullOrEmpty(SavePath)) { return(false); } PList plist = new PList(); plist.Root.Add(TYPE_KEY, TYPE_VALUE); plist.Root.Add(VERSION_KEY, VERSION); plist.Root.Add(BUILD_PLATFORM_KEY, Platform.ToString()); plist.Root.Add(INFO_PLIST_KEY, InfoPlistChanges); plist.Root.Add(APP_CONFIG_KEY, AppConfig); plist.Root.Add(APP_CONFIG_ENABLED_KEY, AppConfigEnabled); plist.Root.Add(MANUAL_ENTITLEMENTS, ManualEntitlements); plist.Root.Add(FRAMEWORKS_KEY, Frameworks.Serialize()); plist.Root.Add(FILES_AND_FOLDERS_KEY, FilesAndFolders.Serialize()); plist.Root.Add(BUILD_SETTINGS_KEY, BuildSettings.Serialize()); plist.Root.Add(SIGNING_KEY, Signing.Serialize()); plist.Root.Add(SCRIPTS_KEY, Scripts.Serialize()); plist.Root.Add(CAPABILITIES_KEY, Capabilities.Serialize()); bool saved = plist.Save(SavePath, true); if (saved) { IsDirty = false; } return(saved); }