iOS 7.0 Kod imzalama kimliği bulunamadı


124
  • sertifika geçerlidir
  • xcode 5
  • iOS 7

Kod İşareti hatası: Kod imzalama kimliği bulunamadı: Derleme ayarlarınızda ("iOS Ekibi Sağlama Profili: *") belirtilen ön hazırlık profiliyle eşleşen kod imzalama kimliği (yani sertifika ve özel anahtar çiftleri) bulunamadı. CodeSign hatası: SDK'daki "iOS 7.0" ürün türü "Uygulama" için kod imzalama gerekli


24
Buna elma kodu imzalama kabusu diyorum, bunu her zaman sertifikalarımı / profilleri kaldırarak çözüyorum, onları yeniden indiriyorum ve ardından doğru profilleri eşleştiriyorum.
meda


9
Xcode'u yeniden başlatmak yardımcı olur.
Ronald Randon

2

1
Üçüncü olarak XCode yeniden başlatılıyor
Khanh Nguyen

Yanıtlar:


68

Sertifika için

  1. Önceki Sertifikayı İptal Et.
  2. Yeni Geliştirme Sertifikası oluşturun.
  3. Sertifikayı İndirin.
  4. KeyChain'i yerleştirmek için çift tıklayın.

Temel Hazırlık profili için

  1. Yeni Oluşturun veya Mevcut Temel Hazırlık profilini Düzenleyin.
  2. İndirin ve kurun.

BundleIdentifier için.

  1. com.yourcompanyName.Something (AppId ile aynı koyun)

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

CodeSigningIdentity.

  1. Oluşturduğunuz Temel Hazırlık profilini seçin.

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


4
Bazen yeniden başlatma yardımcı olur, Mac'imi yeniden başlattıktan sonra bana yardımcı oldu.
maske

1
Ayrıca, uygulamanın paket tanımlayıcısıyla eşleşen bir Uygulama Kimliğine sahip bir dağıtım ön hazırlık profili olup olmadığını da kontrol etmelisiniz. Bunları eşleştirdikten sonra, gönderme iletişim kutusu bana bu hatayı veriyor.
Chuck Krutsinger

1
Sertifikaları yeniden oluşturmadan önce, kullanmaya çalıştığınız sertifikanın özel anahtarına sahip olduğunuzdan emin olmanızı öneririm.
jjramos

Önceki sertifikaları neden iptal etmemiz gerektiğine dair herhangi bir özel neden?
iAviatorJose

43

Bu sorun için düzeltmem şuydu:

Xcode> Tercihler. Hesaplar'da Apple Kimliğinize tıklayın. Ayrıntıları Görüntüle'yi tıklayın, projelerinizin Temel Hazırlık Profilini tıklayın (bunun yardımcı olduğunu düşünüyorum) ve sol alttaki yenile düğmesini tıklayın.


17

Bu konudaki kişisel deneyimlerimle başka cevapları da tamamlayacağımı düşündüm.

Son zamanlarda iki hedefin oluşturulacağı ve ikisinin aşağıdaki hatayla başarısız olacağı bir sorun yaşadım:

Kod İşareti hatası: Kod imzalama kimliği bulunamadı: "XXXXXXXXXX" ekip kimliğiyle eşleşen geçerli imza kimliği (yani sertifika ve özel anahtar çifti) bulunamadı. CodeSign hatası: SDK'daki "iOS 7.1" ürün türü "Uygulama" için kod imzalama gerekli

Bu, Xcode'daki ve iOS Geliştirici Merkezi'ndeki her şeyi güncellemesine rağmen oldu .

İpucu, derleme hatası mesajında ​​gösterilen ekip kimliğinin güncel olmadığıdır.

Yeterince emin, Xcode'un project.pbxprojdosyasını bir Metin düzenleyicide açmak eski takım kimliğini buldu:

D29A93A318AB96440099C177 = {
        DevelopmentTeam = XXXXXXXXXX;
};

Bu arada, project.pbxprojdosyanızı almak için dosyanızı seçin .xcodeprojve içeriği burada gösterildiği gibi gösterin:

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

Hedef kimliğini D29A93A318AB96440099C177aradığımda, başarısız hedeflerden biriyle eşleştiğini görebiliyordum:

targets = (
    F5E8B19A16E64505006F22D4 /* MyTarget1 */,
    93DB2342183F737100BEA69F /* MyTarget2 */,
    D29A93A318AB96440099C177 /* MyTarget3 */,
    D200F4B518AB968A00F58C21 /* MyTarget4 */,
    F5E8B1C016E64505006F22D4 /* MyTarget5 */,
    589FB35119114DED003D9350 /* MyTarget6 */,
);

Bu durumda MyTarget3. Çözmek için, basit bir metin araması eski ekip kimliğini yeni doğru kimlik ile değiştirdi. Sorun çözüldü.

Özetlemek gerekirse , umarım, durumunuz Xcode'un proje dosyasının karmaşıklıklarını araştırmak yerine yukarıdaki cevaplar kullanılarak çözülür. Ancak, değilse ve hata geçersiz bir takım kimliği gösteriyorsa, o takım kimliğinin hala ortalıkta olup olmadığını kontrol etmeye değer.


Bu benim de sorunumdu. Bunun benim yüzümden mi yoksa dağıtılmış ekibimde kendi profilleri, sertifikaları vb. Olan birinden mi kaynaklandığından emin değilim. Pbxproj dosyasını bir kez kötü bir şekilde birleştirerek git auto'ya koydum. Fark ettiğim Geliştirme Takımı, proje ayarlarımdaki Genel sekmesi altındaki Takım açılır listesinden geliyor. Ekibin Yok olarak ayarlanmasını istiyorsanız, bu satırı tamamen kaldırmak benim için çalıştı.
JoshA

Kontrol ettim, Geliştirme Takımım doğru, yeni kimliğini nasıl alacağım? sertifika yüklemesi, içindeki ile aynı Geliştirme Takımına sahiptir. lütfen yardım edin
9to5ios

Tıkır tıkır çalışıyor. Sadece hatada gösterilen kimliği üstündeki ile değiştirin.
vanguard69

Benim durumumda, Hedef -> Genel -> Kimlik
Ohad Schneider

9

Geliştirmede de aynı sorunu yaşadım. Ben çözdüm

  1. XCode tercihlerine gidin, Apple Kimliğinin ayrıntılarını görüntüleyin ve şikayetçi olan ön hazırlık dosyasını silin.
  2. Anahtar Zinciri Erişimi'ne gidin ve yeni sildiğiniz ön hazırlık dosyasıyla ilgili geliştirme sertifikasını silin.
  3. Apple Üye Merkezi'nde, yerel olarak sildiğiniz geliştirme ön hazırlık dosyasını indirin, XCode'da göründüğünden emin olmak için dosyayı çift tıklayın.
  4. Yerel olarak sildiğiniz geliştirme sertifikasını indirin ve Anahtar Zinciri Erişimi'nde göründüğünden emin olmak için çift tıklayın.
  5. Şimdi gitmek iyi olmalı.

2
Bu cevabın sayfada daha yüksek olması gerekiyor.
bkSwifty

8

Jenkins ile bu problemi yaşadım.

Çözüm, sertifikayı kopyalayıp sistem anahtar zincirine yapıştırmaktı, aksi takdirde Jenkins sertifikayı okuyamadı.


7

Bu sorunu gidermek için tüm profilleri silmeniz gerekmez,

Düzenleyici'de cihaz profillerime baktığımda profillerimden birinin geçerli olmadığını gördüm. Daha sonra Geliştirici Sertifikaları, Tanımlayıcılar ve Profiller sayfasına gittim ve tüm profiller aktif, yeşil ve güzel görünüyordu, ancak cihazımda geçersiz olarak görünen bir tanesinde düzenle düğmesine tıkladığımda, ilgili hesaptaki onay kutusunun işaretlenmediğini gördüm Tümünü Seç işaretlenmiş olmasına rağmen. Profili sertifikamla ilişkilendirmek için kutuyu işaretledim, Profili indirdim ve her şey düzeltildi.

Profiller web sayfanızda "Düzenle" yi tıklayın Profiller web sayfanızda

"Tümünü Seç" işaretlenmiş olmasına rağmen ilişkilendirilmiş bir sertifika olmadığını görebilirsiniz. Profilinizi düzenleyin! [] [1]


Tüm ön hazırlık profilimi silmek üzereydim ve eskizden başlayacaktım, sonra cevap verdim Mükemmel dostum Bu sorun yüzünden bir gün boşa gitti, cevabını paylaştığın için çok teşekkürler.
Nilesh Kumar

4

Benim için, Proje → Hedefler / [Projeniz] → Genel → Ekip'i "Yok" olarak ayarlamak sorunu çözdü.


4

Bunlardan birini çözmeye çalışırken saçma bir süre geçtikten sonra ve bazı durumlarda bu cevapların çoğunun nerede doğru olabileceğini kesinlikle görebiliyorum, benim durumum o kadar da nadir değildi.

TestFlight ile test etmek için uygulama mağazasına dağıtmaya çalışıyordum. Artık projenin veya şirketin parçası olmayan önceki bir geliştirici, IOS Dağıtım Sertifikasını oluşturmuştu. Xcode'un bana söylemeye çalıştığı şey, evet, sertifika üye merkezindeydi, ama ahbap onu kesinlikle kullanamazsın çünkü senin değil. Onunla imzalamak için gereken özel anahtara sahip değildim ve hiçbir yenileme, yeniden başlatma, iptal etme bana yardımcı olmayacaktı. Uygulama mağazasına yüklemek için bir geliştirici ve dağıtım sertifikasına ihtiyacınız var.

Çözüm, anahtar zincirimden yeni bir imzalama isteği kullanarak üye merkezinde yeni bir üretim dağıtım sertifikası oluşturmaktı. Bu süreç, sertifikayı çevrimiçi oluştururken iyi bir şekilde belgelenir ve açıklanır. Tamamlandığında, anahtar zincirinize indirmek için hesabınızı xcode'da yenileyin ve altın olacaksınız. Umarım bu birisine yardımcı olur!


2

garip gelebilir ama benim için mac'umu yeniden başlatmaya çalıştım .. neden ve ne olduğunu açıklayamıyorum ama şimdi çalışıyor. umarım birine yardımcı olur


2

Saf komut satırı / jenkins derleme betiği kullandığımda bu iş parçacığına ulaştım ve entegrasyon ortamı için tek bir UI / RDP manuel kurulumunu istemiyorum.

Birkaç saat sonra jenkins kullanarak tamamen aynı sorunu çözmeye çalışın.
Anahtar "güvenlik listesi-anahtar zincirleri -s <anahtar zincirinizin_adı>" dır

--- Uzun hikaye ---
Proje bazında ayarları geçersiz kılmak için jenkins'te bir komut dosyası kullanıyorum (ön hazırlık profili ve imzalama kimlikleri)
Xcode 7'ye yükselttikten sonra, "oluştur" dan sonra "liste anahtar zincirleri" nin üzerindeki komut dosyasını değiştirmem gerekiyor anahtarlık"

Komut dosyası burada güncellendi .


1

tüm profillerinizi silmenize gerek yok, aynı sorunu yaşadım ve eksik sertifikaları yükleyerek düzelttim. Kod imzalama için kullandığınız ön hazırlık profili için gerekli sertifikayı yüklemeyi unutmuş olabilirsiniz.

  • kod imzalama provizyon profili (geliştirme / dağıtım) için anahtar zincirine istenen sertifikaları (geliştirme / dağıtım) yüklediğinizden emin olun.

1

Paket Tanımlayıcısını değiştirmeyi deneyin: Proje -> Hedefler / [Projeniz] -> Genel -> Paket Tanımlayıcı

Uygulama AppStore'da yayınlandıysa XCode, uygulamanın aynı paket tanımlayıcısıyla oluşturulmasına izin vermez.


1

Xcode 7'de iOS 8 ve 9 hedefleniyor. Geliştirme profilim iyi, bu hatayı uygulama mağazasına yüklemek için uygulamayı arşivlerken aldım. İşte yaptığım şey:

Xcode> Tercihler> Hesaplar> Ayrıntıları Görüntüle. İOS Dağıtımı'nın yanındaki "Sıfırla" düğmesini tıklayın. Bu, kullandığınız dağıtım ön hazırlık profilini geçersiz kılar (çünkü dağıtım sertifikasını sıfırlarsınız), bu nedenle yeni sıfırlanan sertifikayı içerecek şekilde profili düzenleyin.

Hem yeni dağıtım sertifikasını hem de yeni düzenlenen dağıtım ön hazırlık profilini indirdiğinizden emin olun. Xcode'u yeniden başlatın.


1

Sertifikanızın özel anahtarınızla bağlantılı olduğundan emin olun :

Açık Anahtar Zinciri erişimi, oturum açma, Sertifikalar . Listenin içindeki sertifikayı bulun ve özel anahtarınızla doğru şekilde eşleştirilip eşleştirilmediğine bakın.

Sertifika özel anahtarla imzalanmamışsa silin, apple geliştirici sayfasına gidin ve yeni sertifika oluşturun. Bazen eskiyi iptal etmek gerekir. Bu yeni sertifika artık özel anahtarınızla düzgün bir şekilde imzalanacaktır.

Şimdi, yeni sertifikanız olduğunda, oluşturma sürecinde yeni sertifikayı içerecek gerekli ön hazırlık profillerini yeniden oluşturun.

Ekibinizden biri bu sertifikayı kendi özel anahtarıyla sıfırladığında, aynı sorun yenileme işlemi sırasında tekrar ortaya çıkabilir. Emin değilim ama öyle görünüyor ki ekipteki her geliştiricinin dağıtım için kendi sertifikası olmalı.


1

Açıkçası bu sorunun farklı nedenleri var. :)

Benim durumum için, hesap girişimin süresi doldu ... Bunu basitçe çözdüm:

XCode -> Tercihler -> Hesap -> Apple Kimlikleri -> İlgili kimliği seçin ve girişi yenileyin ...

Bu yardımcı olur umarım!


0

Sayı gezgin gidin ve kontrol Signing Identity:için mevcuttur Anahtarlık Erişim . Hayır ise, .cerdosyayı indirin ve anahtar zincirine ekleyin.


0

Uzun süre saç çektikten sonra nihayet bir sorun buldum.Provisioning Profilini oluştururken yanlış sertifika seçtim, Doğru olanı seçerek bana yardımcı oldu. Senin durumunda, eğer birden fazla ise o zaman denemelisin ve seçmelisin bu sorunu çözmek için tek tek.


0

Xcode 7.3, OSX 10.11.4 ile iOS derlemeleri için yeni Jenkins kutuları kurarken "Command / usr / bin / codeign, çıkış kodu 1 ile başarısız oldu" şeklinde belirsiz bir hatayla karşılaştım.

Benim durumumda birkaç şey doğru oldu: 1. Evet Sertifikalarımı anahtar zincirine ekledim, hem Apple'ın köküne hem de ekibin sertifikasına. 2. Evet xcode tercihleri ​​aracılığıyla doğru ön hazırlık profilini indirdim. 3. Evet, xcode'da elle bile oluşturuldu.

Ancak, jenkins için xcode'da belki bir önbelleğe alma sorunu vardı. İşe yarayan şuydu: 1. Xcode GUI'den çıkın. 2. Geri dönün ve yapıyı bir kez manuel olarak çalıştırın. 3. Yalnızca o zaman Xcode, anahtar zinciri erişim yetkilendirmesine izin vermesini isteyecektir. 4. Jenkins'in bunu düzeltebilecek bazı ayarları var, ancak makinelerim güvende, bu yüzden 'her zaman xcode'un anahtar zincirine erişmesine izin ver' seçeneğine tıklıyorum.


0

İle Fastlane yüklü oluşturabilir ve tarafından bir Kalkınma Belgesi yükleyebilirsiniz

cert --development
sigh --development
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.