anahtarlıktaki dağıtım sertifikasında özel anahtar eksik


171

Ben hiçbir yerde bir çözüm bulamadım aşağıdaki sorun var. Temel olarak, bir şirket geliştirici hesabımız var (kurumsal değil) ve bu yüzden uygulamamızı göndermek için ekibimizden bana dağıtım sertifikası göndermesini ve bana bir dağıtım ön hazırlık profili oluşturup göndermesini istedim.

Geliştirici profili ile her şey iyi çalışıyor, ancak sertifikayı ve sağlama profilini yüklediğimde, Xcode'da dağıtım profilini görmedim ve anahtarlıktaki dağıtım sertifikasının altında özel bir anahtarım yok.

Bunun nasıl çözüleceğini bilen biri var mı? Sertifikayı iptal etmem ve yeni bir sertifika oluşturmam gereken farklı yerlerde okudum, ancak şirkette bir sürü uygulamamız olduğu ve bunu herkes için iptal edemediğim için gerçekten yapamıyorum.


2
Başka bir makinede oluşturulan .CSR ile Sertifikalar oluşturmaya çalıştığımız için bazen Özel anahtar eksik. Bu nedenle, CSR dosyanızın ayrıca sertifika oluşturmaya ve yüklemeye çalıştığınız makinede de oluşturulduğundan emin olun ... ya da bu sorunu önlemek için .p12 sertifikalarını kullanabilirsiniz
MAhipal Singh

2
Benim durumumda anahtarlığımda iki özdeş imza sertifikası var ... Bunlardan birini silmek basitçe çözüldü ... Her ihtimale karşı ...
juanram0n

Yanıtlar:


168

resim açıklamasını buraya girinAhh bu yaygın bir sorun, çözüm basit:

Kim geliştirici kimlik bilgilerini ilk olarak bilgisayarındaki anahtarlığa gitmeli ve özel ve genel için anahtarlara sağ tıklamalı ve anahtarı bir dosyaya vermelidir. Daha sonra bu dosyayı bilgisayarınıza indirip açarsınız ve anahtarlığınıza eklenir.

Ön hazırlık profilleriniz için hem özel anahtara (.pem dosyası) hem de sertifikaya sahip olmanız gerekir.


36
Daha spesifik olmak gerekirse, ihtiyacınız olan .p12 dosyası (dışa
aktarılır

7
@Nirma İlk olarak geliştirici kimlik bilgilerinin oluşturulduğu bilgisayara erişimimiz yoksa ne yapmalı?
Nishad Arora

@NishadArora Kullanmak için yeni bir anahtar oluşturmanız gerekecek. Özel anahtar olmadan kullanmanın bir yolu yoktur. AFAIK
Joshua Pinter

2
@Nirma Yeni bir tane nasıl oluşturulur
Muju

Herkese yardımcı olursa, genel sertifikayı ve özel anahtarı yükledikten sonra (Anahtarlık Erişimi'nde kontrol edildi ve gösteriliyordu) Ayrıca özel anahtarı almak için Xcode'u yeniden başlatmam gerekiyordu. OSX 10.15.5'te Xcode 11.6'yı kullanma.
NHol

70

Orijinal dağıtım sertifikasını oluşturmak için kullanılan mac'e hala erişiminiz olduğu sürece çok basittir.

Hem sertifikayı hem de özel anahtarı vermek için bu mac'un Anahtarlık Erişimi uygulamasını kullanın. .P12 dosyasına dışa aktarmak için shift veya command tuşlarını kullanarak sağ tıklayın ve sağ tıklayın.

Çok net hale getirmek için bir ekran görüntüsü ekledi.

Mac'inizde bu .p12 dosyasını içe aktarın ve hazırsınız (sadece geçerli bir ön hazırlık profiliniz olduğundan emin olun).

Sadece dışa aktarmayı seçin


55

Başkalarının yanıtlarına eklemek için, artık bu özel anahtara erişiminiz yoksa, yeniden çalışmaya başlamak oldukça basittir:

  1. etkin sertifikanızı sağlama portalında iptal etme
  2. yeni geliştirici sertifikası oluştur (anahtarlık erişimi /.../ csr ... vb. isteği)
  3. yeni bir sertifika indirip kur
  4. mevcut uygulama kimliği için yeni bir ön hazırlık profili oluşturun (ön hazırlık portalında)
  5. yeni ön hazırlık profilini indirip yükleyin ve derlemede ayarlar uygun kod imzalama kimliklerini ayarlar

13
Burada şirketimde her zaman bir karmaşa var, kimse hangi bilgisayarın belirli bir sertifika oluşturduğunu bilmiyor. İptal etmek ve yeniden oluşturmak daha iyidir
user2387149

1
@ user2387149 6 yıl sonra CI / CD'ye bu tür şeyler yapmasını ve xCode üzerinden dağıtımı unutmasını öneriyorum.
Edgar Salazar

Zaten bir dağıtım sertifikası indirdiysem, iptal ettim ve tekrar isteyin. eski dağıtım sertifikasını kaldırmalı mıyım?
kafinsalim

15

KeyChain'den mevcut olanı silin, .p12 dosyasını alın ve sertifikanızın oluşturulduğu yerden mac'unuza ekleyin.

Kaynak Mac'ten .p12 almak için KeyChain'e gidin, sertifikayı genişletin, her ikisini de seçin ve 2 öğeyi dışa aktarın. Bu, .p12 dosyasını bulunduğunuz yere kaydeder:

resim açıklamasını buraya girin


8

Benim durumumda, anahtarlığımdaki tüm özel anahtarları kaybettim, yenileri doğru bir şekilde içe aktarıldı, ancak özel anahtarı da göstermiyor. Yardımcı olan tek şey yeni CertificateSigningRequest oluşturmaktı


6

Disitribution sertifikasını oluşturan orijinal olmayan bir Mac'i değiştirdikten sonra, özel anahtarı kaçırırsınız.Sadece orijinal sertifikayı silin ve benim için çalışan yeni bir tane oluşturun,


5

Uçuş test etmek için iOS derlemesini yüklemeye çalıştığımda hata oluştu.

"Missing privacy key".

resim açıklamasını buraya girin

Bu hatayı düzeltmek için sadece 2 adım.

  1. Eski sertifikayı developer.apple.com'dan kaldır
  2. Xcode veya developer.apple.com adresinden yeni sertifika oluşturun

Sorunum çözüldü (Xcode 9.4.1 kullanıyorum).

Lütfen kontrol edin, Xcode yeni sertifika oluşturdu.

resim açıklamasını buraya girin


5

AppStore dağıtım sertifikasını yeniden oluşturmaktan korkan kişiler için Apple belgeleri şunları söylüyor:

Önemli: Geliştirme veya dağıtım sertifikalarınızı yeniden oluşturmak, App Store'a gönderdiğiniz uygulamaları veya bunları güncelleme yeteneğinizi etkilemez.

Ancak Apple Developer Enterprise ekosistemine yönelik uygulamaları etkiler .


4
bir kurumsal hesabınız varsa yapar!
MobileMon

"Kurumsal ekosistem sistemi" tarafından .... Örn. büyük bir şirkette çalışıyorsanız ve 100 geliştiricinin söz konusu uygulama için bu özel anahtarı kullandığından bahsediyor musunuz?
petrosmm

2

Menü> Visual Studio (mac)> Tercihler> Yayınlama> Apple Developer Hesapları> [Apple kimliğinizi seçin]> Ayrıntıları Görüntüle> Sertifika Oluştur

Kullanılmayan / geçersiz sertifikaları silmek için web sitesine gidin: https://developer.apple.com/account/resources/certificates/list

oradaki istenmeyen sertifikaları sil

Ardından Uygulama Kimliği (tanımlayıcılar) oluşturmak, web sitesine gidin:
https://developer.apple.com/account/resources/identifiers/list

Ardından, ön hazırlık profilleri oluşturmak için web sitesine gidin:
https://developer.apple.com/account/resources/profiles/add

uygulama kimliğinizle bağlantı kurmak için sertifikayı kullanın.

Sonraki profilleri indirmek için:
Mac'inizde> Menü> Visual Studio (mac)> Tercihler> Yayınlama> Apple Developer Hesapları> [Apple kimliğinizi seçin]> Ayrıntıları Göster> Tüm Profilleri İndir


1

Bu sertifikaya Apple'ın geliştirici web sitesinden eriştim ve indirdikten sonra açtım. Aynı şekilde, açıkta sertifikayı anahtarlığa eklemek isteyip istemediğimi soran küçük bir pencere aldım. "Ekle" ye hafifçe vuruldu ve "eksik özel anahtar" hatası kayboldu.


1

Xcode yeni dağıtım sertifikası oluşturamadı sonra bu duruma ("Özel anahtar eksik.") Girdim - bilinmeyen bir hata oluştu.

Sonra özel anahtarı almak ya da yeni sertifika oluşturmak için mücadele ettim. Xcode'daki sertifika yöneticisinden "Girdiğiniz parola yanlış" gibi garip hatalar aldım. Ama benden herhangi bir parola bile istemedi.

Bana yardımcı olan şey:

  1. Developer.apple.com adresinde çalışmayan tüm dağıtım sertifikalarını iptal edin
  2. Mac bilgisayarımı yeniden başlat

Bundan sonra, Xcode yeni dağıtım sertifikası oluşturabildi ve hiçbir özel anahtar eksik değildi.

Alınan ders: Mac'inizi Windows kadar yeniden başlatın;)


0

Giriş'i kullanıp kullanmadığınızı kontrol edin veya sertifikaları eklemek için değil, sol üst taraftaki Sistem'i kontrol ediyorsanız, onu göremeyiz.

Bu yüzden .cer girişine sürükleyip bırakın ve özel anahtarı alıp alamadığınızı kontrol edin.


0

Sadece buna ışık tutmak için.

P12 sertifikamı Keychain'den sildikten sonra. Apple geliştirici portalından kendi sertifikamı yeniden indirdim.

Yalnızca sertifikayı indirebildim. Ancak imzalamak için özel anahtara da ihtiyacınız var. Yani siz de:

  • bunu almak için hem anahtardan hem de anahtardan sertifika ver.

  • Sertifika İmzalama İsteği yükleyin ve yeni sertifikalar oluşturun

Bu sertifikanın tek başına imzalama için bir değeri yoktur. Benim tahminim, özel anahtarın 'bir sertifika yetkilisinden sertifika talep ettiğinizde' anahtar zinciri tarafından oluşturulduğu, ancak bağlama sertifikasını ekleyene kadar size gösterilmediğidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.