public IPhoneSigningKeyPanelWidget(IPhoneProject project) { this.Build(); resourceRulesEntry.DefaultFilter = "*.plist"; resourceRulesEntry.Project = project; resourceRulesEntry.EntryIsEditable = true; entitlementsEntry.DefaultFilter = "*.plist"; entitlementsEntry.Project = project; entitlementsEntry.EntryIsEditable = true; additionalArgsEntry.AddOptions(IPhoneBuildOptionsWidget.menuOptions); profiles = MobileProvision.GetAllInstalledProvisions(); FillIdentities(); identityCombo.Changed += delegate { UpdateProfiles(); }; provisioningCombo.Changed += delegate { if (!suppressSelectionSnapshot) { profileSelections[identityCombo.SelectedName] = provisioningCombo.SelectedName; } }; this.ShowAll(); }
public void Store(IPhoneProject proj) { proj.BundleDevelopmentRegion = NullIfEmpty(devRegionEntry.Text); proj.BundleIdentifier = NullIfEmpty(bundleIdEntry.Text); proj.BundleVersion = NullIfEmpty(bundleVersionEntry.Text); proj.BundleDisplayName = NullIfEmpty(displayNameEntry.Text); proj.MainNibFile = NullIfEmpty(mainNibPicker.SelectedFile); proj.MainNibFileIPad = NullIfEmpty(iPadNibPicker.SelectedFile); proj.BundleIcon = NullIfEmpty(iphoneIconPicker.SelectedFile); proj.BundleIconHigh = NullIfEmpty(iphoneIconHighPicker.SelectedFile); proj.BundleIconIPad = NullIfEmpty(ipadIconPicker.SelectedFile); proj.BundleIconSpotlight = NullIfEmpty(settingsIconPicker.SelectedFile); proj.BundleIconSpotlightHigh = NullIfEmpty(settingsIconHighPicker.SelectedFile); proj.BundleIconIPadSpotlight = NullIfEmpty(ipadSpotlightIconPicker.SelectedFile); proj.SupportedDevices = SupportedDevices; if (badPlist) { return; } try { var pf = proj.GetInfoPlist(); var doc = new PlistDocument(); doc.LoadFromXmlFile(pf.FilePath); var dict = doc.Root as PlistDictionary; if (dict == null) { doc.Root = dict = new PlistDictionary(); } var orientations = SaveOrientationsCombo(supportedOrientationsCombo); if (orientations != null) { dict [OrientationUtil.KEY] = orientations; } else { dict.Remove(OrientationUtil.KEY); } var iPadOrientations = SaveOrientationsCombo(iPadOrientationsCombo); if (proj.SupportedDevices == TargetDevice.IPhoneAndIPad && iPadOrientations != null) { dict [OrientationUtil.KEY_IPAD] = iPadOrientations; } else { dict.Remove(OrientationUtil.KEY_IPAD); } doc.WriteToFile(pf.FilePath); } catch (Exception ex) { badPlist = true; MonoDevelop.Ide.MessageService.ShowException(ex, "Error saving Info.plist."); } }
public IPhoneSigningKeyPanelWidget (IPhoneProject project) { this.Build (); resourceRulesEntry.DefaultFilter = "*.plist"; resourceRulesEntry.Project = project; resourceRulesEntry.EntryIsEditable = true; entitlementsEntry.DefaultFilter = "*.plist"; entitlementsEntry.Project = project; entitlementsEntry.EntryIsEditable = true; additionalArgsEntry.AddOptions (IPhoneBuildOptionsWidget.menuOptions); profiles = MobileProvision.GetAllInstalledProvisions (); FillIdentities (); identityCombo.Changed += delegate { UpdateProfiles (); }; provisioningCombo.Changed += delegate { if (!suppressSelectionSnapshot) profileSelections[identityCombo.SelectedName] = provisioningCombo.SelectedName; }; this.ShowAll (); }
public void Store (IPhoneProject proj) { proj.BundleDevelopmentRegion = NullIfEmpty (devRegionEntry.Text); proj.BundleIdentifier = NullIfEmpty (bundleIdEntry.Text); proj.BundleVersion = NullIfEmpty (bundleVersionEntry.Text); proj.BundleDisplayName = NullIfEmpty (displayNameEntry.Text); proj.MainNibFile = NullIfEmpty (mainNibPicker.SelectedFile); proj.MainNibFileIPad = NullIfEmpty (iPadNibPicker.SelectedFile); proj.BundleIcon = NullIfEmpty (iphoneIconPicker.SelectedFile); proj.BundleIconIPad = NullIfEmpty (ipadIconPicker.SelectedFile); proj.BundleIconSpotlight = NullIfEmpty (settingsIconPicker.SelectedFile); proj.BundleIconIPadSpotlight = NullIfEmpty (ipadSpotlightIconPicker.SelectedFile); proj.SupportedDevices = SupportedDevices; }
public void Load(IPhoneProject proj) { devRegionEntry.Text = proj.BundleDevelopmentRegion ?? ""; bundleIdEntry.Text = proj.BundleIdentifier ?? ""; bundleVersionEntry.Text = proj.BundleVersion ?? ""; displayNameEntry.Text = proj.BundleDisplayName ?? ""; mainNibPicker.Project = iPadNibPicker.Project = proj; mainNibPicker.EntryIsEditable = iPadNibPicker.EntryIsEditable = true; mainNibPicker.DefaultFilter = iPadNibPicker.DefaultFilter = "*.xib"; mainNibPicker.DialogTitle = GettextCatalog.GetString("Select main interface file..."); mainNibPicker.SelectedFile = proj.MainNibFile.ToString() ?? ""; iPadNibPicker.DialogTitle = GettextCatalog.GetString("Select iPad interface file..."); iPadNibPicker.SelectedFile = proj.MainNibFileIPad.ToString() ?? ""; targetDevicesCombo.AppendText(GettextCatalog.GetString("iPhone and iPad")); targetDevicesCombo.AppendText(GettextCatalog.GetString("iPhone only")); targetDevicesCombo.AppendText(GettextCatalog.GetString("iPad only")); SupportedDevices = proj.SupportedDevices; ProjectFileEntry [] pickers = { iphoneIconPicker, iphoneIconHighPicker, ipadIconPicker, settingsIconPicker, settingsIconHighPicker, ipadSpotlightIconPicker, }; foreach (var p in pickers) { p.Project = proj; p.DefaultFilter = "*.png"; p.EntryIsEditable = true; p.DialogTitle = GettextCatalog.GetString("Select icon..."); } iphoneIconPicker.SelectedFile = proj.BundleIcon.ToString() ?? ""; iphoneIconHighPicker.SelectedFile = proj.BundleIconHigh.ToString() ?? ""; ipadIconPicker.SelectedFile = proj.BundleIconIPad.ToString() ?? ""; settingsIconPicker.SelectedFile = proj.BundleIconSpotlight.ToString() ?? ""; settingsIconHighPicker.SelectedFile = proj.BundleIconSpotlightHigh.ToString() ?? ""; ipadSpotlightIconPicker.SelectedFile = proj.BundleIconIPadSpotlight.ToString() ?? ""; badPlist = false; try { var pf = proj.GetInfoPlist(); var doc = new PlistDocument(); doc.LoadFromXmlFile(pf.FilePath); var dict = doc.Root as PlistDictionary; if (dict == null) { doc.Root = dict = new PlistDictionary(); } var orientationArr = dict.TryGetValue(OrientationUtil.KEY) as PlistArray; var ipadOrientationArr = dict.TryGetValue(OrientationUtil.KEY_IPAD) as PlistArray; LoadOrientationsCombo(supportedOrientationsCombo, orientationArr); LoadOrientationsCombo(iPadOrientationsCombo, ipadOrientationArr); } catch (Exception ex) { badPlist = true; MonoDevelop.Ide.MessageService.ShowException(ex, "Error reading Info.plist. Some settings may not be saved."); } HandleTargetDevicesComboChanged(null, null); }
public void Load (IPhoneProject proj) { devRegionEntry.Text = proj.BundleDevelopmentRegion ?? ""; bundleIdEntry.Text = proj.BundleIdentifier ?? ""; bundleVersionEntry.Text = proj.BundleVersion ?? ""; displayNameEntry.Text = proj.BundleDisplayName ?? ""; mainNibPicker.Project = iPadNibPicker.Project = proj; mainNibPicker.EntryIsEditable = iPadNibPicker.EntryIsEditable = true; mainNibPicker.DefaultFilter = iPadNibPicker.DefaultFilter = "*.xib"; mainNibPicker.DialogTitle = GettextCatalog.GetString ("Select main interface file..."); mainNibPicker.SelectedFile = proj.MainNibFile.ToString () ?? ""; iPadNibPicker.DialogTitle = GettextCatalog.GetString ("Select iPad interface file..."); iPadNibPicker.SelectedFile = proj.MainNibFileIPad.ToString () ?? ""; targetDevicesCombo.AppendText (GettextCatalog.GetString ("iPhone and iPad")); targetDevicesCombo.AppendText (GettextCatalog.GetString ("iPhone only")); targetDevicesCombo.AppendText (GettextCatalog.GetString ("iPad only")); SupportedDevices = proj.SupportedDevices; HandleTargetDevicesComboChanged (null, null); ProjectFileEntry [] pickers = { iphoneIconPicker, ipadIconPicker, settingsIconPicker, ipadSpotlightIconPicker }; foreach (var p in pickers) { p.Project = proj; p.DefaultFilter = "*.png"; p.DialogTitle = GettextCatalog.GetString ("Select icon..."); } iphoneIconPicker.SelectedFile = proj.BundleIcon.ToString () ?? ""; ipadIconPicker.SelectedFile = proj.BundleIconIPad.ToString () ?? ""; settingsIconPicker.SelectedFile = proj.BundleIconSpotlight.ToString () ?? ""; ipadSpotlightIconPicker.SelectedFile = proj.BundleIconIPadSpotlight.ToString () ?? ""; }
public IPhoneSigningKeyPanelWidget (IPhoneProject project) { this.Build (); resourceRulesEntry.DefaultFilter = "*.plist"; resourceRulesEntry.Project = project; resourceRulesEntry.EntryIsEditable = true; entitlementsEntry.DefaultFilter = "*.plist"; entitlementsEntry.Project = project; entitlementsEntry.EntryIsEditable = true; additionalArgsEntry.AddOptions (IPhoneBuildOptionsWidget.menuOptions); profiles = MobileProvision.GetAllInstalledProvisions (); var txtRenderer = new CellRendererText (); txtRenderer.Ellipsize = Pango.EllipsizeMode.End; identityCombo.Model = identityStore; identityCombo.PackStart (txtRenderer, true); identityCombo.AddAttribute (txtRenderer, "markup", 0); identityCombo.RowSeparatorFunc = delegate (TreeModel model, TreeIter iter) { return (string)model.GetValue (iter, 0) == "-"; }; identityCombo.Changed += delegate { UpdateProfiles (); }; provisioningCombo.Model = profileStore; provisioningCombo.PackStart (txtRenderer, true); provisioningCombo.AddAttribute (txtRenderer, "markup", 0); var signingCerts = Keychain.FindNamedSigningCertificates (x => x.StartsWith ("iPhone")).ToList (); signingCerts.Sort ((x , y) => Keychain.GetCertificateCommonName (x).CompareTo (Keychain.GetCertificateCommonName (x))); identityStore.AppendValues ("<b>Developer (Automatic)</b>", Keychain.DEV_CERT_PREFIX, null); identityStore.AppendValues ("<b>Distribution (Automatic)</b>", Keychain.DIST_CERT_PREFIX, null); int trimStart = "iPhone ".Length; identityStore.AppendValues ("-", "-", null); foreach (var cert in signingCerts) { string cn = Keychain.GetCertificateCommonName (cert); if (cn.StartsWith (Keychain.DEV_CERT_PREFIX)) identityStore.AppendValues (GLib.Markup.EscapeText (cn.Substring (trimStart, cn.Length - trimStart)), cn, cert); } identityStore.AppendValues ("-", "-", null); foreach (var cert in signingCerts) { string cn = Keychain.GetCertificateCommonName (cert); if (cn.StartsWith (Keychain.DIST_CERT_PREFIX)) identityStore.AppendValues (GLib.Markup.EscapeText (cn.Substring (trimStart, cn.Length - trimStart)), cn, cert); } this.ShowAll (); }
public void Store (IPhoneProject proj) { proj.BundleDevelopmentRegion = NullIfEmpty (devRegionEntry.Text); proj.BundleIdentifier = NullIfEmpty (bundleIdEntry.Text); proj.BundleVersion = NullIfEmpty (bundleVersionEntry.Text); proj.BundleDisplayName = NullIfEmpty (displayNameEntry.Text); proj.MainNibFile = NullIfEmpty (mainNibPicker.SelectedFile); proj.MainNibFileIPad = NullIfEmpty (iPadNibPicker.SelectedFile); proj.BundleIcon = NullIfEmpty (iphoneIconPicker.SelectedFile); proj.BundleIconHigh = NullIfEmpty (iphoneIconHighPicker.SelectedFile); proj.BundleIconIPad = NullIfEmpty (ipadIconPicker.SelectedFile); proj.BundleIconSpotlight = NullIfEmpty (settingsIconPicker.SelectedFile); proj.BundleIconSpotlightHigh = NullIfEmpty (settingsIconHighPicker.SelectedFile); proj.BundleIconIPadSpotlight = NullIfEmpty (ipadSpotlightIconPicker.SelectedFile); proj.SupportedDevices = SupportedDevices; if (badPlist) return; try { var pf = proj.GetInfoPlist (); var doc = new PlistDocument (); doc.LoadFromXmlFile (pf.FilePath); var dict = doc.Root as PlistDictionary; if (dict == null) doc.Root = dict = new PlistDictionary (); var orientations = SaveOrientationsCombo (supportedOrientationsCombo); if (orientations != null) dict [OrientationUtil.KEY] = orientations; else dict.Remove (OrientationUtil.KEY); var iPadOrientations = SaveOrientationsCombo (iPadOrientationsCombo); if (proj.SupportedDevices == TargetDevice.IPhoneAndIPad && iPadOrientations != null) dict [OrientationUtil.KEY_IPAD] = iPadOrientations; else dict.Remove (OrientationUtil.KEY_IPAD); doc.WriteToFile (pf.FilePath); } catch (Exception ex) { badPlist = true; MonoDevelop.Ide.MessageService.ShowException (ex, "Error saving Info.plist."); } }
public void Load (IPhoneProject proj) { devRegionEntry.Text = proj.BundleDevelopmentRegion ?? ""; bundleIdEntry.Text = proj.BundleIdentifier ?? ""; bundleVersionEntry.Text = proj.BundleVersion ?? ""; displayNameEntry.Text = proj.BundleDisplayName ?? ""; mainNibPicker.Project = iPadNibPicker.Project = proj; mainNibPicker.EntryIsEditable = iPadNibPicker.EntryIsEditable = true; mainNibPicker.DefaultFilter = iPadNibPicker.DefaultFilter = "*.xib"; mainNibPicker.DialogTitle = GettextCatalog.GetString ("Select main interface file..."); mainNibPicker.SelectedFile = proj.MainNibFile.ToString () ?? ""; iPadNibPicker.DialogTitle = GettextCatalog.GetString ("Select iPad interface file..."); iPadNibPicker.SelectedFile = proj.MainNibFileIPad.ToString () ?? ""; targetDevicesCombo.AppendText (GettextCatalog.GetString ("iPhone and iPad")); targetDevicesCombo.AppendText (GettextCatalog.GetString ("iPhone only")); targetDevicesCombo.AppendText (GettextCatalog.GetString ("iPad only")); SupportedDevices = proj.SupportedDevices; ProjectFileEntry [] pickers = { iphoneIconPicker, iphoneIconHighPicker, ipadIconPicker, settingsIconPicker, settingsIconHighPicker, ipadSpotlightIconPicker, }; foreach (var p in pickers) { p.Project = proj; p.DefaultFilter = "*.png"; p.EntryIsEditable = true; p.DialogTitle = GettextCatalog.GetString ("Select icon..."); } iphoneIconPicker.SelectedFile = proj.BundleIcon.ToString () ?? ""; iphoneIconHighPicker.SelectedFile = proj.BundleIconHigh.ToString () ?? ""; ipadIconPicker.SelectedFile = proj.BundleIconIPad.ToString () ?? ""; settingsIconPicker.SelectedFile = proj.BundleIconSpotlight.ToString () ?? ""; settingsIconHighPicker.SelectedFile = proj.BundleIconSpotlightHigh.ToString () ?? ""; ipadSpotlightIconPicker.SelectedFile = proj.BundleIconIPadSpotlight.ToString () ?? ""; badPlist = false; try { var pf = proj.GetInfoPlist (); var doc = new PlistDocument (); doc.LoadFromXmlFile (pf.FilePath); var dict = doc.Root as PlistDictionary; if (dict == null) doc.Root = dict = new PlistDictionary (); var orientationArr = dict.TryGetValue (OrientationUtil.KEY) as PlistArray; var ipadOrientationArr = dict.TryGetValue (OrientationUtil.KEY_IPAD) as PlistArray; LoadOrientationsCombo (supportedOrientationsCombo, orientationArr); LoadOrientationsCombo (iPadOrientationsCombo, ipadOrientationArr); } catch (Exception ex) { badPlist = true; MonoDevelop.Ide.MessageService.ShowException (ex, "Error reading Info.plist. Some settings may not be saved."); } HandleTargetDevicesComboChanged (null, null); }
public IPhoneSigningKeyPanelWidget(IPhoneProject project) { this.Build(); resourceRulesEntry.DefaultFilter = "*.plist"; resourceRulesEntry.Project = project; resourceRulesEntry.EntryIsEditable = true; entitlementsEntry.DefaultFilter = "*.plist"; entitlementsEntry.Project = project; entitlementsEntry.EntryIsEditable = true; additionalArgsEntry.AddOptions(IPhoneBuildOptionsWidget.menuOptions); profiles = MobileProvision.GetAllInstalledProvisions(); var txtRenderer = new CellRendererText(); txtRenderer.Ellipsize = Pango.EllipsizeMode.End; identityCombo.Model = identityStore; identityCombo.PackStart(txtRenderer, true); identityCombo.AddAttribute(txtRenderer, "markup", 0); identityCombo.RowSeparatorFunc = delegate(TreeModel model, TreeIter iter) { return((string)model.GetValue(iter, 0) == "-"); }; identityCombo.Changed += delegate { UpdateProfiles(); }; provisioningCombo.Model = profileStore; provisioningCombo.PackStart(txtRenderer, true); provisioningCombo.AddAttribute(txtRenderer, "markup", 0); var signingCerts = Keychain.FindNamedSigningCertificates(x => x.StartsWith("iPhone")).ToList(); signingCerts.Sort((x, y) => Keychain.GetCertificateCommonName(x).CompareTo(Keychain.GetCertificateCommonName(x))); identityStore.AppendValues("<b>Developer (Automatic)</b>", Keychain.DEV_CERT_PREFIX, null); identityStore.AppendValues("<b>Distribution (Automatic)</b>", Keychain.DIST_CERT_PREFIX, null); int trimStart = "iPhone ".Length; identityStore.AppendValues("-", "-", null); foreach (var cert in signingCerts) { string cn = Keychain.GetCertificateCommonName(cert); if (cn.StartsWith(Keychain.DEV_CERT_PREFIX)) { identityStore.AppendValues(GLib.Markup.EscapeText(cn.Substring(trimStart, cn.Length - trimStart)), cn, cert); } } identityStore.AppendValues("-", "-", null); foreach (var cert in signingCerts) { string cn = Keychain.GetCertificateCommonName(cert); if (cn.StartsWith(Keychain.DIST_CERT_PREFIX)) { identityStore.AppendValues(GLib.Markup.EscapeText(cn.Substring(trimStart, cn.Length - trimStart)), cn, cert); } } this.ShowAll(); }