HATA ITMS-90164/90046: Geçersiz Kod İmzalama Yetkileri


82

Not: Xamarin kullanarak geliştiriyorum. Xamarin Forumunda yayınlanan benzer soru burada

CompanyApp adlı bir uygulama oluşturuyorum . Sonra com.Company.CompanyApp için ilgili Uygulama Kimliğini kullanan Dağıtım Sağlama Profili ile birlikte bir Uygulama Kimliği oluşturdum . İkili dosyayı yükledim ve mükemmel bir şekilde çalıştı.

(Aynı çözüm & proje, sadece farklı paket imzalama ayarı yüzden, küçük değişikliklerle temelde aynı app) Sonra üzerine uygulamanın demo sürümünü oluşturmak gitti CompanyAppDemo yeni bir Uygulama Kimliği ile com.Company.CompanyAppDemo a ile birlikte Yeni Uygulama Kimliğini kullanan yeni Dağıtım Temel Hazırlık Profili. Yeni Temel Hazırlık Profilini kullanmak için iOS Paket İmzalama seçeneklerini güncelledim ve IPA'yı oluşturdum. Ancak bunu Uygulama Yükleyiciye yüklediğimde aşağıdaki hatayı aldım:

[2015-01-23 16:08:21 SGT] HATA: HATA: HATA ITMS-90164: "Geçersiz Kod İmzalama Yetkileri. Uygulama paketi imzanızdaki yetkiler, ön hazırlık profilinde bulunanlarla eşleşmiyor. Sağlamaya göre profilinde, paket izin verilmeyen bir anahtar değeri içeriyor: "Payload / CompanyApp.app / CompanyApp" içindeki "uygulama tanımlayıcı" anahtarı için "TEAMID.com.Company.CompanyApp" "

[2015-01-23 16:08:21 SGT] HATA: HATA: HATA ITMS-90046: "Geçersiz Kod İmzalama Yetkileri. Uygulama paketinizin imzası, iOS'ta desteklenmeyen kod imzalama yetkileri içeriyor. Özellikle 'TEAMID.com.Company değerini verin. "Payload / CompanyApp.app / CompanyApp" içindeki "uygulama tanımlayıcı" anahtarı için .CompanyApp "desteklenmiyor. Bu değer, TEAMID'nizle başlayan bir dize, ardından bir nokta". "Ve ardından paket tanımlayıcısı olmalıdır."

Hiçbir işe yaramadığını anlamak için günlerdir hata ayıklama yapıyorum.

Neden yeni profille imzaladığımda, Application Loader'ın attığı hata TEAMID.com.Company.CompanyAppDemo yerine orijinal TEAMID.com.Company.CompanyApp kimliğine başvuruyor merak ediyorum ? Bu, Xamarin'de yanlış bir ön hazırlık profili alan bir hata mı yoksa bir şeyi mi kaçırıyorum? Farklı uygulamalar için farklı bir sertifikaya ihtiyacınız yok değil mi?

Xamarin.

Yanıtlar:


133

Birisi benim gibi ERROR ITMS-90046'yı arayarak buraya gelirse, benim çözümüm onu ​​temizlemek ve önceden derlenmiş tüm çerçeveleri (özel olanlar) silmek ve sonra yeniden inşa etmekti.

Not: Hata açıklaması "aps-environment" anahtarı hakkında "geliştirme" olarak bir şeyler söyledi.

Düzenleme: Gerçek hata mesajı


bunu biraz daha açıklayabilir misin?
John

1
Evet, benim uygulamamda özel çerçeveler kullanıyorum, bunlar "inşa aşamaları" "hedef bağımlılıklar" bölümüne ekleniyor, bu yüzden uygulamayı derlediğimde derleniyorlar ve ayrıca imzalanıyorlar. Ayrıca her çerçevede, derlenmiş çerçeveyi başka bir klasöre taşıyan "yapı aşamalarında" bir betik var. İmzalama sürecinde bir hata var gibi görünüyor ve bence anahtar kısım çerçevelerin silinmesiydi, derleyiciyi onları tekrar derlemeye ve imzalamaya zorladı. Bu hata bir daha asla olmaz.
quarac

Bu işe yaradı, sadece temizledim ve tekrar derledim ve hiçbir şeyi değiştirmedim, neden ilk seferde başarısız oldu? Gizem
rr1g0

Burada aynı sorun ve aynı düzeltme! Beni güçlü bir baş ağrısından kurtardın! Çok teşekkürler.
stefat

7
Tek yapmam gereken Temizliği yapmaktı ... Bu, TestFlight'a yaklaşık 50 derleme yüklendikten sonra yeni bir hataydı
Phamer

63

Aynı sorunu yaşadım ve basit bir Ürün -> Temiz ile çözdüm .


1
Teşekkürler, HATA ITMS-90164'ü çözmem için çalıştı: "Geçersiz Kod İmzalama Yetkileri. Uygulama paketi imzanızdaki yetkiler, ön hazırlık profilinde bulunanlarla eşleşmiyor. Ön hazırlık profiline göre paket, izin verilmez: 'Payload / Palau Moja.app/Palau Moja'daki' get-task-allow 'anahtarı için' true '"HATA ITMS-90164:" Geçersiz Kod İmzalama Yetkileri. Uygulama paketi imzanızdaki yetkiler ön hazırlık profilinde bulunanlarla
Josep Escobar

Josep ile aynı hatayı aldı ve temizle -> arşivle -> tekrar yükle sorunu çöz. Bu çözümü gönderdiğiniz için teşekkürler!
Biraz

Ürün-> Temizlemeyi nerede yaparsınız ? XCode veya Visual Studio'da mı? Xamarin, BTW kullanarak geliştiriyorum.
James Lavery

20

Birisi, hem ITMS-90164 hatasını hem de ITMS-90046 hatasını ve get-task-allow ve asp-environment anahtarlarını arayarak buraya gelirse :

1

David P'nin dediği gibi, bir Ürün -> Yeni bir Arşiv sorunumu çözmeden önce temizleyin.

Sadece şunu eklemek istiyorum, benim durumumda hatalı xarchive'ın aşağıdaki dosyanın eksik olduğunu gözlemledim:

2

Bu .xarchive dosyasını üretim imzası için istemcinize göndermeden önce, arşivlenmiş-genişletilmiş-yetki-hakları.xcent dosyasını aramak ve orada olduğundan emin olmak isteyebilirsiniz.


18

Nihayet 2 hafta saç çekildikten sonra ..

Bazı nedenlerden dolayı, Entitlements.plist içinde TEAMID.com.Company.CompanyAppDemo olarak ayarlanmış anahtar 'uygulama tanımlayıcısı' yoksa , Xamarin orijinal uygulama tanımlayıcısını, yani TEAMID.com.Company.CompanyApp'ı kullanır.

Dolayısıyla çözüm, Entitlements.plist içine doğru uygulama paketi kimliğini belirten uygulama tanımlayıcı eklemekti. Ardından, Oluşturma Seçenekleri> iOS Paket İmzalama'ya plist'i ekleyin.


13
xamarin büyük bir üretkenlik artışı!
Anton Tropashko


8

Bunu Entitlements.plist'te değiştirin:

<key>aps-environment</key>
<string>development</string>

Buna:

<key>aps-environment</key>
<string>production</string>

5

Bu, iTunes connect'te yeni bir sözleşmeyi kabul etmeniz gerekmesinden de kaynaklanabilir. İTunes connect'e giriş yapın ve en son sözleşme değişikliğini kabul etmenizi isteyen en üstte bir afiş görmelisiniz.


1
Bir cankurtaranınız :) Apple'ın alakasız hata mesajlarını sevmelisiniz
Yoav Schwartz

4

Benim için sorun, otomatik olarak eklenen ve boş olan bir Entitlements.plist idi. Özel yetkiler alanından kaldırıldı ve sorunu çözdü.

Visual Studio 2015'te iOS Paket İmzalama Görünümü


3

Paketlemeden önce ilgili sürüm sertifikasını seçmezseniz, ERROR ITMS-90164 rapor edilecektir.

Yapı Ayarı -> Kod İmzalama Kimliği -> Yayın -> Herhangi bir IOS SDK


2

Arşivlerken WatchKit Uygulamasını değil Uygulama hedefini seçtiğinizden emin olun.


2

Diğer cevapların hiçbiri bu hatayı benim için çözmedi, ancak bu:

  1. Yeni XCode uygulaması oluşturun ve kod imzalama ayarlarını inceleyin.

  2. Uygulamanızın varsayılan XCode 7 veya Xcode 8 imzalama ve sağlama ayarlarına benzer şekilde ayarlanmasını sağlamaya çalışın, XCode 7 burada gösterilir, XCode 8'de tekrar değiştirilir.

temel hazırlık ve imzalama

  1. Yukarıdakiler yeterli değilse, tekrar yapmanız gerekebilir, ancak bu sefer, yapmadan önce, süresi dolmuş eski sağlama profillerini apple Keyring'inizden silin veya XCode'daki apple geliştirici (itunes) hesabınızı silin ve yeniden oturum açın. tercihler. HERHANGİ bir değişiklikten sonra XCODE'DAN ÇIKIN ve YENİDEN BAŞLATIN. Ardından hesabınızı tekrar ekleyin ve XCode'un yeni imza ve ekip bilgilerinizi almasına izin verin.

1

Ana olmayan bir git şubesinden bir yapı yüklemeyi denedim. Sorunu çözmek için şubeyi ana ile birleştirdim ve yeniden inşa ettim. Daha sonra yapıyı başarıyla yükleyebildim.


1

2 hedef içeren bir proje (2 Geliştirici kimliği, 2 hak ile) buna yol açabilir. (Bana nasıl olduğunu sorma ...)

Arşivlerken başka bir yetki dosyasını geçici olarak kaldırın.


1

Uygun bir Xcode 'Quit' yapmak ve ardından yeniden başlatmak, benim için çalışmasını sağlayan son eylemdi.

Paket tanımlayıcısını değiştirdim (bir demo sürümü için) ve arşivlenmiş yapımı doğrularken aynı hatayı (soruda ayrıntılı olarak belirtildiği gibi) aldım. Xcode kullanıyorum. Sadece Xcode'u kapatmak ve projemi yeniden açmak yeterli değildi, ancak tam bir 'Çıkış' oldu. Bir şey muhtemelen tahmin ettiğim bir yerde önbelleğe alındı


Bu benim için yaptı. XCode bazen çok titiz olabiliyor.
Aaron Krauss

1

Burada listelenen her şeyi denedim, sorunun benim dosyam olduğu ortaya çıktı .entitlement, ilk etapta hiç koymadığım satırlar vardı, bir şekilde eklendiler.
O satırları kaldırıp tekrar denedi, çalıştı.


1

Yetkililer.plist'te, applinks: htts: //domain.app.link'den applinks: domain.app.link'e erişim alanlarının değerini yeniden adlandırdım, bir cazibe gibi çalışıyor. Şerefe!


0
  1. Build PhaseXcode'da git
  2. Tüm çerçeveleri kaldırın
  3. Onları geri ekleyin
  4. Şimdi oluştur-> Arşiv-> App Store'a Yükle

Yaşasın, işin bitti. Sorun çözüldü


0

Benim için otomatik kod imzalama özelliğini kapatıp tekrar açarak çözebildim:

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


0

Benim için iOS Paket İmzalama altındaki Özel Yetkilendirmeler ayarımda yanlış dosyam vardı. Kaldırıldı ve işe yaradı!


1
Ekran görüntüsü güzel olurdu.
Warren P

0

Saatler süren araştırmalardan sonra kolay bir çözüm buldum.

Uygulamayı yüklemek için uygulama yükleyiciyi kullanmak yerine, XCode'dan Organizer'ı kullandım ve yükleme yaparken herhangi bir uyarı olmadan çalıştı!


0

Benim sorunum, IPA dosyası oluşturmak için yanlış bir paket kullanıyordum


0

Bende de tam olarak aynı sorun vardı ve bu oldukça aptalca bir hataydı. Kimsenin buna zaman harcamasını istemiyorum, bu yüzden bunun için:

Hata

Yani burada olan şey, dağıtım hedefine '10' girmemdi. Bunun yerine 10.0 olmalıydı. Kötü şöhretli ERROR ITMS-90164/90046: Benim için Geçersiz Kod İmzalama Yetkileri'ni üreten şey buydu!



0

Burada iki sentim var.

Şu anda bu soruna takılı kaldım çünkü TeamID / Uygulama Kimliğimi apple geliştirici portalından kopyaladığımda, bu da authlement.plist'e çok fazla ilgisiz değer getiriyor. Bunu fark etmedim çünkü authlement.plist'i düzenlemek için Xcode kullanıyordum ve giriş kutusu ilk yeni satır karakterinden sonra her şeyi göstermeyecek.

Bu vaka için authlement.plist için düz metin düzenleyici kullanmanızı öneririm.

Teşekkürler, Samuel


0

Stackoverflow'da geçen günlerde okuduğum tüm hileleri denedikten sonra "xxxxxx.entitlements" dosyasını silip yeniden oluşturuyorum. Capabilities'e tıklıyorum, Associated Domains'de ON'u seçiyorum ve "Domains" ekliyorum. Daha sonra, Yetenekler> Anında Bildirimler bölümünde, "Anında Bildirimler yetkisini yetki dosyanıza ekleyin" seçeneğini tıklayın.

Bunu yapmak ARŞİVİ Başarılı yapmama izin verdi


0

Bunun gibi bir bağlantım vardı ve bu da webcredentials:https://************.linkyüklememin başarısız olmasına neden oluyordu. Onu kaldırdım ve sorun çözüldü.

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.