Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        protected virtual MobileProvision GetMobileProvision(MobileProvisionPlatform platform, string uuid)
        {
            var extension = MobileProvision.GetFileExtension(platform);
            var path      = Path.Combine(MobileProvision.ProfileDirectory, uuid + extension);

            if (File.Exists(path))
            {
                return(MobileProvision.LoadFromFile(path));
            }

            return(MobileProvision.GetAllInstalledProvisions(platform, true).FirstOrDefault(x => x.Uuid == uuid));
        }
Esempio n. 3
0
        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();
        }