SDK iOS 8.0'da ürün türü Unit Test Bundle için kod imzalama gereklidir


128

Alma

SDK'da "iOS 8.0" ürün türü "Birim Test Paketi" için kod imzalama gereklidir

Uygulama hedefim kod imzalama gayet iyi - ancak test hedefim değil. Yeni bir bilgisayar satın aldım, bilgisayardan yeni bir geliştirme sertifikası oluşturdum, ön hazırlık profilini buna göre güncelledim, her ikisini de yükledim ancak bu kod imzalama hatasını geçemiyorum.

Yeniden yükleyebilmem için tüm sertifikaları / profilleri yerel olarak silmenin herhangi bir yolu var mı?

Muhtemelen bir tür böcek.


Benzer bir hatam vardı - benim düzeltmem derleme ayarlarına gidip otomatik olarak seçmek yerine ön hazırlık profillerini seçmekti.
scb998

Yanıtlar:


129

Sorun, projenin kaynak kontrolü altında olması ve .xcodeproj'u her çektiğimde güncelleniyor. Ve ön hazırlık profilim kaynak kontrolündeki profilden farklı olduğu için, Birim Testi hedefi otomatik olarak "Kodlama işaretine" geçer. Bu yüzden, her git çekmeden sonra profili oraya ayarlamam gerekiyor.

Görünüşe göre bir cihaza konuşlandırılıyorsa, bir birim test hedefi varsa, kod imzalanmalıdır.

Adımlar:

1) Hedefi test hedefiniz olarak değiştirin (Uygulama Adı Testleri)

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

2) "Kod İmzalama Kimliği" nin "Kod İmzalama" OLMADIĞINDAN emin olun. Oturum açmak için bir profil seçin

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

Çalışması için değiştirmek zorunda olduğum tek şey buydu.


Yukarıdaki soruda belirtilenle aynı sorunla karşı karşıyayım ancak nasıl çözeceğimi çözemiyorum ve aynı sorunla ilgili bir soru gönderdim. stackoverflow.com/questions/27312745/…
Neal

Lütfen bana nasıl yapılacağına dair aşamalı bir süreç anlatır mısınız?
Neal

Xcode 8'de sorun vardı. Çözünürlük sizinkiyle aynı değildi, ancak yakındı. Bana yolu gösterdiğin için teşekkürler!
user3259235

Ayrıca, 'Kod İmzalama Kimliği'ni ayarlamanın yanı sıra,' Geliştirme Ekibi'ni de kurmanız gerekebilir.
bit ve

100

Düzeni Düzenle'ye giderek sorunu (geçici olarak) düzelttim, ardından Yapı bölümünde, birim test hedefimin "Çalıştır" da çağrılmasını kaldırdım.


1
İyi yakalama! Neden geçici olarak söylüyorsunuz ? Bana mantıklı bir çözüm gibi görünüyor. Uygulamayı mağazaya gönderdiniz mi?
mokagio

Uygulamayı App Store'a göndermede sorun yok. "Geçici olarak" dedim çünkü kod imzalamayla uğraşarak daha kalıcı bir düzeltme olabileceğini düşündüm, ancak bu hızlı ve sorunsuz bir çözümdü.
ZS

2
Harika, teşekkürler. Bana iyi bir çözüm gibi görünüyor, birim test hedefi zaten çalışmamalı. +1
mokagio

Bana daha fazla ayrıntı açıklayabilir misin? "inşa etmem" gerektiğini mi söylüyorsun? ve 'birim
testimin

66

Buradaki diğer tavsiye bana yardımcı olmadı, ancak bu hatayı adresine giderek düzelttim Product > Scheme > Edit Scheme. Sonra Buildsol tarafa tıkladım ve yanındaki onay kutularının seçimini kaldırdım AppNameTests. XCode 6.3 kullanıyorum

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


@Almo "Test" altındaki herhangi bir kutunun işaretini kaldırmayın, bunun yerine APPNAMEtests etiketli satırdaki (işaretini kaldırabileceğiniz) her şeyin işaretini kaldırın. Açıklığa kavuşturmak için cevabıma bir ekran görüntüsü ekleyeceğim.
Olivia Stork

1
Bunu yaptım ve Test hariç her şeyi kontrol ettim. Testi imzalamaya çalışmayı durdurmak için bir .plist dosyasını kaldırmam gerektiği ortaya çıktı. Projem statik bir kitaplık oluşturuyor, bu nedenle hiçbirinin kod imzalanmasına gerek yok.
Almo

1
Ahh tamam. Görünüşe göre, bu sorunun neden olabileceği birçok neden ve onu düzeltmenin birçok yolu var. Çözümünüzden başka kimse bahsetmediyse, başka bir olası cevap olarak yayınlamayı düşünebilirsiniz.
Olivia Stork

3
@huggie ¯ \ _ (ツ) _ / ¯ iOS programlamaya hoş geldiniz!
Olivia Leylek

1
@OliviaStork beni mecbur kıldı. işimi kurtardığın için çok teşekkür ederim.
Anurag Shrivastava

29

Test hedefi için derleme ayarlarında manuel olarak bir ön hazırlık profili seçerek bunu düzelttim.

Test hedefi ayarları -> Oluşturma ayarları -> Kod imzalama -> Kod işareti kimliği. Önceden, "Kodlama işareti" olarak ayarlanmıştı.


Ön hazırlık profilini seçmek açıkça benim için çalıştı, teşekkürler.
Mike Weller

Ayrıca, "Temel" değil, üstte "Tümü" filtresinin seçildiğinden emin olun.
Marty

13

Ayrıca, yapı hedef cihazınızı ayarlarsanız, test ederken ve hata ayıklarken sorun ortadan kalkacaktır. İmzalanan kod, yalnızca uygulamanızı fiilen fiziksel bir cihaza dağıtmaya çalıştığınızda gereklidirincir

Benimkini "myIphone" dan iPhone 6 Plus simülatörüne değiştirdim ve uygulamayı geliştirirken sorunu çözdü.


1
ama ya uygulamanızı fiziksel bir cihaza dağıtmak İSTİYORSANIZ ±!
Marwen Trabelsi

8

Benim durumumda karşılaştığım sorun şuydu:

CodeSign hatası: SDK'daki "iOS 8.4" ürün türü "Unit Test Bundle" için kod imzalama gerekli

Şans eseri, hedef hiçbir şey uygulamadı, bu yüzden hızlı bir çözüm onu ​​kaldırmaktır.

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


2

Çalışmamın CI'sı üzerindeki entegrasyon testleri için komut satırından xcodebuild çalıştırırken bu hatayı alıyordum. Proje seviyesi ayarını kod imzasına ayarlayarak çalıştırmayı başardım. Bazı nedenlerden dolayı hedef ayar göz ardı edildi ve proje ayarına geri döndü.


2

Yukarıdaki çözümlerden hiçbir şey işe yaramazsa şu adımları izleyin

Hedefler'den "Bilgi" altında uygulama adı Testlerini seçin

Aşağıdakini değiştir

Paket Tanımlayıcı: com.ProjectName. $ (PRODUCT_NAME: rfc1034identifier)

com.ProjectName.appname için

Paket adı: $ (PRODUCT_NAME)

Paket adı: uygulama adı

Derleyin ve çalıştırın


1

Aynı bölümdeki ('Kod İmzalama') 'Yetkilendirme Profili'ni Otomatik'ten' Yetkilendirme Profilim adına 'değiştirerek sorunu çözüyorum


0

Merhaba bugün aynı problemle karşılaşıyorum. "Spentak" ın cevabını okuduktan sonra iOSDeveloper'a ayarlamak için hedefimin kod imzalamasını yapmaya çalıştım ve hala çalışmadım. Ancak "Temel Hazırlık Profili" ni "Otomatik" olarak değiştirdikten sonra, proje herhangi bir kod imzalama hatası olmadan oluşturuldu ve çalıştı.


0

Bazen bu, github veya diğer üçüncü taraf eğitim sitelerinden bir proje indirdiğinizde olur.Bu uygulamalar genellikle farklı bir kimlikle veya şirket / adla imzalanır.Bu olduğunda, çözümü çözemezseniz, yeni bir xcode projesi oluşturun. ve tüm üstbilgi ve uygulama dosyalarını yeni projenize kopyalayın.Ayrıca bağımlılık dosyalarını da unutmayın .. çerçeve dosyaları gibi. Bu benim için çalışıyor.

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.