Xcode 5: Kod imzalama yetkilendirme hataları


149

IOS 7'yi destekleyecek yeni bir uygulama geliştirdim. Yeni XCode 5 GM'yi aldım ve taze provizyon profilimi ve dağıtım sertifikamı kullanarak uygulamalarımı imzalamaya çalıştım, ancak dağıtımla ilgili sorun yaşıyorum. Sürekli olarak aşağıdaki hatayı alıyorum:

"Geçersiz Kod İmza Yetkileri. Uygulama paketi imzanızdaki yetkiler, yetkilendirme profilinde bulunan yetkilerle eşleşmiyor. Yetkilendirme profiline göre paket, izin verilmeyen bir anahtar değer içeriyor: '[XXXX.com.sample .company] 'anahtar anahtar kelime erişim grupları için ".

Ayrıca aynı hata adı verilen bir anahtar değeri için application-identifier.

Hata Ekran Görüntüsü:

resim açıklamasını buraya girin

Yanıtlar:


208

Çözüm, provizyon profili yazan Xcode 5'te yeni seçenekte yatmaktadır. Sadece proje hedefinin sağlama profilini doğru olana ayarlayın ve işe yarayacaktır.

resim açıklamasını buraya girin


6
Bu cevaba eklemek için - Hazırlık profili için hem Dağıtım hem de Yayın türlerim vardı. Aynı hatayı aldım ve Release türü için ayarlanmış bir geliştirme profilim vardı (Dağıtım türünü kullandığımı düşündüm ve Release tipini fark etmedim). Bunu dağıtım profilime ayarladıktan sonra işe yaradı.
Bek

4
Bu yanıtı daha da netleştirmek için, birleştirilmiş görünümü kullanarak sağlama profilimi ve kod imzalama kimliğimi her birinin en üst satırında ayarlamaya çalışıyordum. Bunu yapmak yine <Birden çok değer> 'e geri çekti. Bununla birlikte, her iki satırı genişlettiğimde, Debug / Release satırları uygun profil / imzalama kimliğini listelemesine rağmen, her yapılandırma için "Any iOS SDK" alt satırlarının tümünü None olarak ayarlanmış olduğunu gördüm. Tüm "iOS SDK" satırlarını açıkça uygun değerlerine ayarlayana kadar bu durumda arşivleme bana hala hata verdi.
qix

1
Bunun için günler geçirdik ! bununla ilgili kötü bir şey , IPA'yı oluştururken yine de aynı profili seçmemiz gerekiyor . Bunu nasıl buldun Benjamin?
cregox

2
Ne yazık ki, benim için çalışmıyor. Developer.apple.com web sitesindeki profillerimi kontrol ettim ve Game Center ve Uygulama İçi satın alma özelliğini etkinleştirdim. Ben de kullanmıyorum ve bunun bir sorun olup olmadığını merak ediyorum.
JScarry

4
Daha fazla açıklama eklemek için, Xcode'un hem bir proje hem de bir hedef için Profil bilgileri sağlama seçeneğini belirlemenize izin verdiğini unutmayın . Yalnızca proje için değil , hedefin ayarlarını değiştirdiğinizden emin olmanız gerekir .
Brian Stormont

55

Benim gibiyseniz ve HER ŞEYİ denediğinizi düşünüyorsanız , projenizi on defadan fazla arşivlediniz, başınızı klavyeye vurdunuz ve hala bu hatayı alıyorsunuz . Lütfen kendinize bir iyilik yapın ve sadece XCode'u yeniden başlatın , benim için çalıştı. Bazen Apple ... Senden nefret ediyorum.


Bir xcode oturumunda iki farklı uygulama yaptım ve 1000 hata aldım. yeniden başlatma çalıştı. teşekkür ederim!
donmarkusi

Bu benim için de işe yaradı. Xcode 6.3 kullanıyorum. Kod imzalama için apple dev hesabı seçemedim. "İos uygulama kimliği 'xxxxxxxxx', haritalar özelliğindeki değişiklikleri desteklemiyorsa" her zaman tamamen alakasız hata mesajı görüntülendi. Basit bir xcode yeniden başlatma benim için düzeltti.
Sahil

3
1000 kez seni oylayabilirsem, yapardım. Bu benim için çalıştı. Bu XCode 7.1'de oldu.
Manu Kanthan

25

Yukarıdaki adımların çoğundan geçtim ama nihayet benim için işe yarayan, Xcode'daki profillerimi yenilemekti. Uygulamamın dağıtım profilinin listede zaten gösterildiğinden neden gerekli olduğundan emin değilim. İşte adımlar:

  1. Xcode Tercihleri
  2. Hesaplar sekmesi
  3. Apple Kimliğinizi seçin
  4. Apple Kimliği ayrıntılar panelindeki Ayrıntıları Görüntüle düğmesine basın
  5. Sol alt köşedeki Yenile düğmesine basın

2
Bunu yaptıktan sonra, yeni profilin uygulandığından emin olmak için Oluştur ve Arşivle komutunu yeniden çalıştırmanız gerekir. (En azından benim için gerekliydi.)
Brent Royal-Gordon

12

Benim durumumda, developer.apple.com'daki Uygulama hizmetlerinde Xcode ile aynı özellikleri etkinleştirdim. Bu benim için çalışıyor

resim açıklamasını buraya girin

resim açıklamasını buraya girin


Benim için işe yarayan şey budur - geliştirici merkezinde bunları kapatamıyorum ve iOS 7.0'ın Xcode 5.1.1 ile derlenmesi Onları gerektiriyor gibi görünüyor.
Matt H

6

Benim durumumda (özür dilerim) -> Genel -> Kimlik'te "Takım" ı "Hiçbiri" olarak değiştirdim

Başka bir durumda, bu kimliği "Yok" tan kimlikleri ve profilleri yöneten geliştirici hesabına geçirmem gerekiyordu.

Xcode bazen kod imzalama ile çok uğraşır, öyle görünüyor. Ya da biz sadece ölümlüler elbette ne yaptığını anlayacak kadar zeki değiliz. Vazgeçme, hepimiz zaman zaman kod imzalama işkence geçiriyoruz!


Wow, akşamımı kurtardın, teşekkürler. Ama ... neden işe yaradı?
Martin

Neden işe yaradı… Bence Xcode son derece karmaşık bir ürün ve kimlikler ve provizyon profili oluşturma en başından beri kıllı. Artık hiç kimsenin ilişkilerle ilgili tam bir anlayışa sahip olmadığını düşünüyorum. Yapmıyorum. Bazen bu iş parçacığının gösterdiği gibi deneme yanılma.
RickJansen

5

Benim durumumda, Sürüm için doğru Hazırlık Profili ayarlamam ve ardından Xcode'u yeniden başlatmam gerekiyordu. Yeniden başlatmadan önce aynı provizyon profili vardı ve işe yaramadı. Yani, bazen yeniden başlatma mucizeler yapabilir. Belki bu birine yardım eder.


3

Birisi GameCenter kullanıyorsa, hedefinizdeki bu bölümü kontrol edin. Bazı eski proje ile çalıştı ve 2 hata vardı (ama her şey iyi çalıştı). Devre dışı bırakmak ve geri etkinleştirmek bu sorunu çözdü.resim açıklamasını buraya girin

Büyük olasılıkla bu eylem, Uygulama Merkezi'ne Oyun Merkezi yetkisini ekler ve kendi başına işler.


3

1.Proje klasörüne gidin, * .entitlements dosyalarını silin. 2.Sonra xcode proje hedefine gidin -> yapı ayarları -> kod imzalama yetkileri - değerleri silin 3.Clean 4.Run


3

Ah, bu muhteşem hata. Bu hatayı gördüğümde benim için aşağıdakileri kontrol ediyorum:

1. XCode'un yetkilendirme profili bilgilerinize her zaman erişmesine izin verin - XCode, başlattığınız zaman bilgisayarınızın özel dosyalarına erişmesini isteyip istemediğinizi sormaya devam ederse, şimdi değil, her zaman erişime izin verme seçenekleriyle provizyon profil bilgilerini alabilmesini sağlar, ya da sadece bir kez - HER ZAMAN İZİN VER olarak ayarlayın

2. Projenizin etrafında tek bir eski yetki dosyanız varsa onlardan ve herhangi bir işaretinden kurtulun - projenizde bir .entitlements dosyası görürseniz silin (veya emin değilseniz en azından referansı kaldırın) bunu tamamen silmeye hazırsınız), ardından Oluşturma Ayarları'ndaki 'Kod İmzalama' bölümünün altındaki 'Kod İmza Yetkileri' satırının boş olduğundan emin olun

3. Uygulama Hizmetlerinizi çevrimiçi olarak kontrol edin ve uygulama için XCode'daki Hizmetlerinizle eşleştirin - Apple Üye Merkezi'ne gidin ve uygulamanızın Uygulama Kimliğini kontrol edin, 'Uygulama Hizmetleri'ni görmek için uygulamayı tıklayın ve ne yaptığınızı görün kontrol ettikten sonra XCode'a gidin ve ikisinin her ikisinde de aynı Apple hizmetleri listesine sahip olduğundan emin olmak için 'Yetenekler' bölümünüzü kontrol edin

4. Doğrulamadan önce uygulamanıza geçerli bir Hazırlık Profili atadığınızdan emin olun - Apple Üye Merkezindeki uygulamanız için ön hazırlık profilinizi iki kez kontrol edin, süresinin dolmadığından, doğru paket kimliğine ve dağıtımına sahip doğru Uygulama Kimliğine sahip olduğundan emin olun . XCode'a sahip olduğundan emin olmak için yeni ön hazırlık profilini indirin ve tıklayın veya XCode> Tercihler> Hesaplar'a gidin> hesabınızı tıklayın ve 'Ayrıntıları Görüntüle' seçeneğini tıklayın, ardından tüm profilleri XCode ile senkronize etmek için alt köşe düğmesini tıklayın. 'Kod İmzalama' bölümünde profilin şimdi seçilebilmesi gerekir. Doğru ön hazırlık profiline sahip olduğunuzda, 'Kod İmzalama Kimliği' satırlarını bu ön hazırlık profili için doğru seçeneğe ayarlayabilirsiniz.

Not - Bir dağıtım sertifikası yapıyorsanız, tüm 'Kod İmzalama Kimliği' satırlarını hata ayıklama satırları da dahil olmak üzere dağıtım için kullandığınız kimliğe ayarlamak yardımcı olabilir

5. TÜM BAŞKA BAŞARILARSA - Projenizi temizleyin ve XCode'u yeniden başlatın, projenizi bir sonraki açışınızda ve Doğrulamaya çalıştığınızda bazı Apple sihri işe yarayabilir


2

Eski bir 3.1.5 projesi oluşturuyorsanız, Xcode 5, Benjamin'in cevabını imkansız kılan bazı hatalara sahiptir, çünkü seçim yapabileceğiniz Hazırlık profilleri yoktur. Xcode proje dosyalarının geç saatlerde eziyetle okunduktan sonra benim için çalışan bu çözümü buldum:

  • Xcode 5'teki Yardımcı Programlar bölmesinde (sağda), Belge projesi altında, Xcode 3.1 ile uyumlu olan Xcode 3.2 ile uyumlu olarak değiştirin.
  • Kuruluşunuzun adını girin.
  • Projeyi kapat.
  • Proje dosyanızı açın, örn. open -a TextEdit path/to/name.xcodeproj/project.pbxproj
    • İki Dağıtım yan tümcesini ( isa=XCBuildConfiguration) kaldırın .
    • (Tane buildConfiguration iki birlikte hatları çıkarın PBXNativeTargetve bir de PBXProject XCConfigurationLists)

Artık yeniden açmaya, arşivlemeye ve App store'a göndermeye hazırsınız - voilà! Tekrar çalışıyor!

Nasıl çalıştığını düşünüyorum

Bunun işe yaradığını düşünüyorum, çünkü çizgi boyunca bir yerde herhangi bir ayrı dağıtım yapılandırmasına olan ihtiyacı azaltmaya karar verdi, bu iyi bir şey. Arşivlediğimde, Xcode dağıtım için işaretleri otomatik olarak kodlar. İlk etapta bu şekilde uygulanmalı, Apple'ın otomatik geçişi IDE'nin bir parçası yapamayacağı utanç verici; bunun yerine bizi geliştiricileri bu işi yapmak için onlarca yıl geçirmeye zorluyorlar.


2

Bu sorunla bir günden fazla bir süredir mücadele veriyorum, burada ve internette başka yerlerde önerilen her türlü çözümü deniyorum. Hiçbir şey çalışmadı...

Ama sonunda sorunu çözmeyi başardım!

Sahip olduğum sorun, 3 yıldan fazla bir süredir dokunmadığım eski bir uygulamadaydı ve şimdi uzun zamandır beklenen bir güncellemeyi yayınlamak üzereydim. Uygulamayı yayınladığımdan beri Apple, sertifikaların ve Uygulama Kimliğinin çalışma şeklini güncelliyor. Kullanılması tavsiye edilen Takım Kimliği kavramını tanıttılar. Özellikle, Apple'ın "Sertifikalar, Tanımlayıcılar ve Profiller" sitesi o zamandan beri birçok değişiklik gördü.

Orada, App Store Dağıtımı için kullandığım Hazırlık Profilinin Uygulama Kimliği'ne bağlı olduğunu fark ettim, ED8xxxxxxx.com.rostsolutions.*ancak göndermek üzere olduğum oyun için Uygulama Kimliğine baktığımda Uygulama Kimliği'nin olduğunu fark ettim ATMxxxxxxx.com.rostsolutions.Swisch. Yani Uygulama Kimliği öneki eşleşmedi! Bu sorunun kökü gibi görünüyordu. Yaptığım şey ATMxxxxxxx.com.rostsolutions.Swischbunun yerine Uygulama Kimliğine bağlı yeni bir Temel Hazırlık Profili oluşturmaktı . Bu Hazırlık Profilini kullanarak uygulamamı App Store'a başarıyla gönderdim ve şimdi Apple tarafındaki her şeyin yolunda gitmesi için parmaklarımı çapraz tutuyorum.

(İlk olarak joker kimliğine yeni Temel Hazırlık profiline bağlanmaya çalıştım ATMxxxxxxx.com.rostsolutions.*, ancak bu işe yaramadı).

Ama beni şaşırtan şey, iTunes Connects'teki eski Uygulamaya baktığımda ve İkili Ayrıntılar'a gittiğimde, Uygulama Kimliğinin olduğunu söylüyor ED8xxxxxxx.com.rostsolutions.Swisch. Öyleyse neden Uygulama Kimliğini şu şekilde listeleyen "Sertifikalar, Tanımlayıcılar ve Profiller" sayfası var ATMxxxxxxx.com.rostsolutions.Swisch?


Bu Daniel'i gönderdiğin için teşekkürler. İstenen sertifikaların ve profillerin kullanılmasını engelleyen benzer bir davranış görüyorum. Bir sertifikayı her indirdiğimde veya Xcode'un bunu yapmasına izin verdiğimde, benim durumumda iCloud özelliğini (kullanımı) bozan bir 'hayali' ekip kimliği görünür. Benim için henüz bir çözüm yok.
David

AMAN TANRIM! 50'den fazla uygulama ile aynı saçmalık bize oluyor! Ahh hayalet ekibi bizi öldürüyor. Neden Apple Neden! ????
Sukima

2

Sorunum, Apple Kimliğimi Tercihler-> Hesaplar'dan kaldırıp tekrar ekleyerek çözüldü. Sonra tüm ön hazırlık profil dosyalarım Ayrıntıları Görüntüle yardımcı program panelinde göründü. Projenin genel bir seçim olduğunu düşünmek yerine, genel bir seçim olduğunu düşünerek yanlışlıkla "Mac Team Provisioning Profile: *" seçiyordum. Temel hazırlık dosyaları projeye özgü olmalıdır. Oh ve BTW, ön hazırlık profilinizin doğru yetkilere sahip olduğundan emin olun (örneğin, Haritalar). OSX Maps ile yetkisiz bir uygulama yayınlamayı başardım ve Apple bunu onayladı - ancak üretim sürümünde hiçbir Haritalar görünmedi!


1

Benim durumumda da aynı sorun vardı, benim çözümüm Arşivi yapmadan önce Yapı Ayarlarındaki 'Temel Hazırlık Profilini Bırak' idi. Bunu iki kez, biri App Store dağıtımı için diğeri Ad Hoc dağıtımı için yapıyorum. Ayrıca arşivlerime bir yorum da ekliyorum. Benim sonucum, "arşiv imzası" ile ilgili kırılmış bir şey olduğudur.



1

Ben xcode 5 kendi oluşturabileceğiniz "dağıtım" yerine "yayın" kullanır düşünüyorum.


1

Yukarıdaki tüm işe yaramadıysa (benim durumumda birkaç gün sonra her şeyi denemek şans yok ) Ben sadece bir Mac uygulaması var. REVOKE İLE DİKKATLİ OLUN!

Elle 1) Revoke tüm "Mac App Dağıtım" & "Mac Yükleyici Dağıtımı"
Anahtarlık (2) ilgili sertifikalar ve açık anahtarlar Temiz Uyarı: Silme önce ihracat)
3) Yeniden Xcode Safari'de 4) Git () developer.apple .com -> sertifika vb 5) Keychain- içinde CertificateSigningRequest.certSigningRequest> Sertifika yardımcısı oluşturma
) 6 * .certSigningRequest ile developer.apple.com "Mac App Distribution" hem & "Mac Yükleyici Dağıtım" konulu elle oluşturma
7) erzakları Profiller -> Dağıtım -> AppStore için özel provizyon oluştur / düzelt (Özellikle "AppStore için Mac provizyon profili" olarak adlandırıyorum
) Xcode -> Ayarlar -> Hesap -> Hesabınız ->Yenile 9) Xcode Clean -> Arşiv -> Doğrula


1

Benzer bir sorunla mücadele ediyorum (Geçici dağıtım için inşa ediyordum). Son başarılı dağıtımdan bu yana değişen tek şey, ön hazırlık profiline iki cihaz eklemekti.

Tüm oluşturma ayarlarını iki ve üç kez kontrol ettikten sonra, ön hazırlık profilini (hiçbir şeyi değiştirmeden) yeniden oluşturdum, yeniden indirdim ve işe yaradı.

Bu yüzden kendine dikkat edin: Mantık açıklaması yoksa, her zaman iyi eski IT voodoo'yu deneyebilirsiniz.

Adına rağmen, bilgisayarınızda hangi ön hazırlık profillerinin bulunduğunu kontrol etmek için yararlı olan iPhone Yapılandırma Yardımcı Programını da öneririm .


1

HATA ITMS-9000: “Bu paket geçersiz. App Store'a gönderilen yeni uygulamalar ve uygulama güncellemeleri, XCode 5.1.1 veya sonraki sürümlerin ve iOS 7 SDK'nın herkese açık (GM) sürümleriyle oluşturulmalıdır. Beta yazılımla oluşturulan uygulamaları göndermeyin.


0

Birden çok geliştirici aynı üye merkezi hesabını kullanıyorsa. Bunlardan biri başkaları tarafından oluşturulan bir sertifikayı kullanamaz, çünkü bilgisayarlarını kullanarak oluşturulan bir sertifika isteği kullandılar.

Sizin tarafınızdan oluşturulan bir sertifikayı kullanmanız gerekir (bilgisayarınız kullanılarak oluşturulan sertifika isteği).

Alternatif olarak, size Geliştirici Profili göndermelerini söylediler. adından emin değilim. başka bir bilgisayarda oluşturulan sertifikayı kullanmak için.


0

Kod imzalama Yetki kaynağınız kaynaklarda Yetki dosyası içermediğinden oluşur, Sadece ayar ve arama kodu imzalamaya gidin Yetki, hata ayıklama ve serbest bırakma girişini siler, yeniden proje oluşturduğunuzda hata olmadığını göreceksiniz. Şerefe


-1

Aynı problemim vardı, ama burada yazılan hiçbir şey benim için işe yaramadı. Ancak, benim için işe yarayan basit bir yol buldum. Bunu nasıl yapacağınız aşağıda açıklanmıştır:

1) Projenizde ve Hedef (ler) iniz oluşturma ayarlarında, tüm Hazırlama profilleri için "Hiçbiri" seçeneğini ve tüm Kod İmza Kimlikleri için "Kod İmzalama" seçeneğini belirleyin.

2) Şimdi Hedefinizi seçin ve ayarları oluşturun. Kod İmzalama Kimlik Sürümü ayarında, "Herhangi bir iOS SDK" için "iOS Dağıtımı" nı seçin. Ardından, Hazırlık Profili Sürümü ayarında "Herhangi bir iOS SDK" için dağıtım profilinizi seçin. Bundan sonra Kod İmzalama Kimlik Sürümü ayarınız otomatik olarak "iPhone Dağıtımı" olarak değişmelidir.

3) Yapınızı arşivleyin ve doğrulayın. Şimdi iyi çalışmalı. Bu kadar!

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.