Kod işareti hatası: Sertifika kimliği iki kez görünüyor


103

CodeSign hatası: 'iPhone Developer: XXXX (12345678)' sertifika kimliği anahtar zincirinde birden fazla görünüyor. Kod işareti aracı yalnızca bir tane olmasını gerektirir.

Bu yüzden anahtarlığıma gidip onu siliyorum. Ancak Xcode 4'ü her yeniden başlattığımda bu hatayı alıyorum ve bazı uygulamalar süresi dolmuş eski sertifikayı anahtar zincirine geri ekliyor. Neden ve hangi uygulama hakkında bir fikriniz var mı?


olası Xcode
zoul

Yanıtlar:


99

Ben de aynı sorunu yaşadım. Düzeltildi. Bir uygulama gönderdikten ve uygulamayı imzalamak için birkaç sertifika yükledikten sonra geldi.

Hızlı Düzeltme: ANAHTAR ZİNCİRİ ERİŞİMİ'ni açın> SERTİFİKALARIM'a tıklayın> burada muhtemelen iPhone Geliştiricisi'ni göreceksiniz:. Muhtemelen İKİ KEZ göreceksiniz! En erken Son Kullanma tarihine sahip olanı seçin, sağ tıklayın ve SİL'i seçin.

Yapmadıysanız Xcode'u yeniden başlatın. Şimdi çalışıyor. :)

Mutlu Kodlama.


27
Bir adım daha! Düzenleyici'yi XCode'da açmanız ve yinelenen sertifikayı sildikten sonra ön hazırlık profillerinizi yenilemeniz gerekir.
Meekohi

@Meekohi Ön hazırlık profillerimi 'yenilemekle' ne demek istiyorsun? Teşekkürler!
abw333

7
Xcode'u yeniden başlatmak, eski sertifikayı sildikten sonra benim için aynı sorunu çözdü.
Maxim Mikheev

Xcode 4'te (4.4.1'e sahibim), eski sertifika ile ilişkili TÜM ön hazırlık profillerini silmem gerekiyordu. Sonra Xcode'u yeniden başlattım ve eski sertifika Anahtar Zincirinde (sihirli bir şekilde) görünmeyi durdurdu.
Roberto

3
Bir eklemeyle benim için çalıştı (Xcode 4.6.3 kullanıyorum). Süresi dolan (veya en kısa sürede sona eren) sertifikaları sildim, sonra Xcode'u yeniden başlattım ve hala sorun yaşadım - eski sertifikalar bir şekilde KeyChain Access'te yeniden göründü. Bu yüzden Xcode'u yeniden başlattım ancak projemi açmayı seçmeden önce KeyChain Access'e geri döndüm ve eski sertifika yine oradaydı, bu yüzden onu sildim. Sonra projemi açtım (zaten çalışan Xcode'da) ve her şey yolundaydı - yeniden inşa edebildim.
Ed Sinek

71

Sanırım basit silme işleminin neden çalışmadığını anladım. Geliştirme sertifikası hala provizyon profilinde saklandığı için, Anahtar Zinciri'ndeki sertifikayı sildikten sonra Xcode'u kapattığımda / yeniden açtığımda eski sertifikanın geri geldiğini gördüm. Bu yüzden tekrar siliyorum. İşe yaradı.

Profil silme çözümü basit bir şekilde benim için işe yaramadı.

Benim durumumda işe yarayan çözüm:

  1. Xcode'dan çık
  2. Anahtar Zinciri erişimi açıksa, açık tutun.
  3. Xcode'u şimdi başlatın.
  4. Xcode'un şikayetçi olduğu sertifikanın önbelleğinden başlatıldığında anahtar zincirine yeniden ekleneceğini görün.
  5. Devam edin ve silin.
  6. Derleyin ve mutlu kodlama yapın.

3
Yukarıdaki tüm çözümleri denedim ve bu hile yaptı. Görünüşe göre birden çok neden / çözüm var.
Nathan Hangen

+1: XCode'un gerçekten de sertifikaların "önbelleğini" tuttuğunu ve bunları piyasaya sürüldüğünde eklediğini doğrulayabilirim - bu şekilde çalışması korkunç! Çok fazla soruna neden oluyor! Yazıklar olsun sana Apple, bununla savaşmaktan dolayı saatlerce kayıp zamana neden oldu!
JRG-Developer

10

Ben sadece aynı sorunla mücadele ederek oldukça fazla zaman harcadım. Tüm onca düzeltme girişimlerinden sonra, sonunda bunun Xcode'da bir hata olduğunu fark ettim. Bu gönderi bana bunu düzeltmem için bir ipucu verdi: sertifikalar sihirli bir şekilde anahtarlığınızda görünüyor

Benim durumumda, eşleşen özel anahtar Sistem anahtar zincirindeydi ve üzerinde sadece benim adım vardı (bunun tedarik için olduğunu söylemek zor). Yapmak zorundaydım:

  • İlişkili özel anahtarı 'oturum açma' anahtar zincirine taşıyın
  • Xcode yeniden başlatıldı ve özel anahtarın artık ilişkili olarak gösterildiğini fark etti (ne için olduğunu doğrular)
  • Sertifikayı ve özel anahtarı silin
  • Xcode'u yeniden başlatın ve puf! Eski sertifikamı eklemeyi bıraktı

İlginç bir gözlem, sertifikayı sildiğinizde ilişkili özel anahtarı silmemesidir. Görsel olarak, sertifikanın altındaki özel anahtarı gösterir. Kanmayın.

İyi şanslar!


son xcode Ekim 2012 güncellemesi dağ aslanı - özel anahtar benim için çok çalıştı silme
ina



3

Xcode45-DP1 ile aynı sorunu yaşıyorum. bu benim için çalışıyor:

  1. hesabınızla ilgili tüm sertifikaları anahtar zincirinden kaldırın. ÇIK anahtarlık

  2. hesabınızla ilgili tüm temel hazırlık profillerini xcode: organizer: device: Library: sağlama profillerinden kaldırın. Xcode'DAN ÇIK

  3. sertifikanızı iptal edin ve yeniden oluşturun ve derleme makinenize indirin

  4. ön hazırlık profilini indirmeden önce , adınızın seçili olduğundan emin olmak için indirme düğmesinin yanındaki Düzenle'yi tıklayın .

  5. Ardından ön hazırlık profilini indirin

  6. sertifikayı anahtar zincirine kurmak için çift tıklayın

  7. ön hazırlık profilini xcode: organizer: device: Library: ön hazırlık profillerine sürükleyin

  8. xcode'dan yenile düğmesine tıklamayın.

  9. yapıyı yap.


3

Cevap burada

Düzenleyici ile eski sertifikayı kullanarak tüm eski ön hazırlık profillerimi kaldırın, ardından XCode'dan çıkın, eski sertifikayı Anahtar Zincirinden kaldırın ve XCode'u yeniden başlatın.

sağlama profillerinde referanslarınız olduğunda xcode sertifikaları tutacak gibi görünüyor


1

Zombi sertifikalarının anahtar zincirime yeniden doldurulması ve sertifika kimliğinin iki kez görünmesi konusunda sorun yaşıyordum. Yinelenen sertifikayı silmek işe yaramadı.

Xcode'da, hedefte Kod İmzalamama baktığımda, "Ad Hoc" yapılarda "Sürüm" derlemelerinden farklı bir dağıtım profilim olduğunu hatırladım.

Yeni bir sertifika oluşturduğumda, Sürüm yapıları için değil, yalnızca Ad Hoc derlemeleri için yeni bir profil indirdim.

Xcode, bu profillerin her ikisi için de sertifika üzerinde asılı duruyordu ve bu nedenle Xcode, yinelenen sertifikalara neden oluyordu ... çünkü profillerimi düzgün bir şekilde güncellemeyi unuttum.

TÜM ön hazırlık profillerinizi yeni sertifikaya güncellediğinizden ve TÜM profilleri aynı anda Xcode'da değiştirdiğinizden emin olun.

Tüm ön hazırlık profillerinizi yeni sertifika ile güncellediğinizden emin olun, aksi takdirde Xcode HER İKİ profil için sertifikayı anahtar zincirine koymaya çalışır ... bu da yinelenen hataya neden olur!


1

Bu sorunu yaşadım ve onunla ilgili her bilgiyi okudum, sonunda çözümü kendi başıma buldum. Ne söz başarısız insanlar olmasıdır ÖNCE Xcode organizatörü ve temizlik sertifikaları ÖNCE size herhangi süresi dolmuş sertifika yok olduğundan emin olmak gerekir Anahtarlık süresi dolan tuşları temizlik Sağlama Portal . Eski Geliştirici sertifikasını kullanan eski bir uygulama için süresi dolmuş bir sertifikanız bile varsa, Xcode bunu ilk derlemede düzenleyicisine çekecek ve oradan anahtar zincirinize gidecek ve bir kopyasına neden olacaktır.


1

Benim durumumda, Xcode'un baktığı "önbellek" takılı bir iOS cihazıydı. Bunun sizin için sorun olup olmadığını belirlemek için:

  1. Tüm iOS cihazların bağlantısını kesin
  2. Rahatsız edici sertifikayı ve özel anahtarı Anahtar Zinciri Erişimi'nden silin
  3. Xcode'u yeniden başlatın
  4. Anahtar Zinciri Erişimini Kontrol Edin: Benim durumumda, kopya bu noktada yeniden OLUŞTURULMADI
  5. İOS cihazını yeniden bağlayın
  6. Xcode'u yeniden başlatın
  7. Anahtar Zinciri Erişimini Kontrol Edin: Benim durumumda kopya bu noktada yeniden oluşturuldu

Sizin için temel neden buysa, Xcode'u başlatmadan önce iOS cihazlarının bağlantısını kestiğinizden emin olarak sorunu çözebilirsiniz.


0

Gereksiz sertifikayı silmek benim için işe yaramadı. Görünüşe göre xcodebuild her çağrıldığında, anahtar zincirindeki sertifikayı bir yerde bir önbellekten "yeniden oluşturuyor" ... avi ile aynı sorun için bir hack / düzeltme oluşturdum, dosyanın nerede önbelleğe alındığını bulmaya çalıştım ve temizle, ama şansım yaver gitmedi. Sonunda, benim için işe yarayan şey (biraz hack, ama hey, başka ne yapabilirsin), sertifika numarasının ne olduğunu bulmak ve xcodebuild çağrıldıktan kısa bir süre sonra onu anahtar zincirinden manuel olarak kaldırmaktı. Önce / usr / bin / dizininize gidin (veya xcodebuild dosyanız hangi dizinde varsa, deneyin which xcodebuild) ve aşağıdaki komutu çalıştırın:

sudo mv xcodebuild xcodebuild_actual

Ardından, aşağıdaki kodla favori düzenleyicinizi kullanarak bir dosya oluşturun (sudo'yu unutmayın):

xcodebuild_actual $* &
echo "xcodebuild started, waiting to wipe certificate, 10 seconds"
sleep 2
echo "Wiping Certificate..."
sudo security -v delete-certificate -t -Z 407629F811D52C0BB7AD31BBB18DCB496354B05E

Not: Bu belirli komutu bir parola girmeden çalıştırmak için erişime sahip olmak için sudoers dosyanızı değiştirmeniz gerekir.

Yukarıdaki -Z sonrasındaki onaltılık kimliği, sorun teşkil eden zombi sertifikasının onaltılık kimliğiyle değiştirin. Son olarak, xcodebuild dosyasının yürütülebilir olduğundan emin olun:

sudo chmod 755 xcodebuild 

Artık anahtar zincirinizi açabilir ve oluşturma komutunu çalıştırabilir ve rahatsız edici zombi sertifikasının nasıl yeniden dirildiğini ve ardından kod imzalama için bir sorun haline gelmeden önce özet olarak vurulduğunu izleyebilirsiniz. Umarım Apple bunun için gerçek bir düzeltme bulacaktır.


0

Benim durumumda sertifikaları silmek işe yaramadı. XCode 4 bunları önbelleğe alıyor veya geri yüklüyor gibi görünüyor. Sonunda benim için işe yarayan püf noktası, anahtar zinciri ve xcode'u çalıştırmaktı. Ardından anahtarlıkta 2 sertifikamı (dev + dist) 'oturum açma'dan' sistem'e sürükleyin. Sonra kopyalar sihirli bir şekilde yeniden belirdi ve onları silebilirdim ve ardından sertifikaları tekrar 'giriş'e sürükledim


0

Çok kolay, doğru Sertifikayı masaüstünüze aktarın. Anahtar zincirindeki bu Sertifikayı silin. Hata mesajıyla kaynak oluşturmayı deneyin (sertifikanız yok ..) Ardından sertifikayı tekrar içe aktarın. => Başarılı!


0

Artık ihtiyacım olmayan sertifika için anahtar zincirimdeki özel anahtarlardan birini sildim.

Sertifika yeniden belirse, ancak özel anahtar yeniden görünmese bile. Şimdi geçerli sertifikaları kontrol edin ve yalnızca bir sertifika görünecek ve özel anahtarı silinen diğer sertifikalar artık geçerli sertifikalar altında görüntülenmeyecektir.

Bence bu sorunu çözmenin en basit yolu bu.


0

Bir zamanlar aynı problemle uğraşıyordum. Ve xcode'daki Organizer sekmesinden kullanılmayan ön hazırlık profilini kaldırarak çözdüm. Aslında, Anahtar Zinciri bu sertifikayı, süresi dolmuş sertifika olan veya iptal edilmiş sertifika ile yapılan bu ön hazırlık profilinden alır.

Bu nedenle, bu ön hazırlık profilini Düzenleyici sekmesinden silmeniz yeterlidir. Düzenleyici, xcode'un sağ üst tarafındaki düğmedir Açın ve Düzenleyici'de daha kullanmadığınız ön hazırlık profillerini kaldırın.

İşte ekran görüntüsü,

görüntü açıklamasını buraya girin

Anahtar zincirinden fazladan sertifika kaldırmayı unutmayın, ancak bundan sonra bu sertifika tekrar görünmez.

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.