Profil, uygulama tanımlayıcı yetkisi için yetki dosyasının değeriyle eşleşmiyor


92

Uygulama mağazasına bir uygulama yüklemeye çalışıyorum ve sertifikaların bulunduğu sayfada bu hatayı alıyorum. Anlayabildiğim kadarıyla alanı değiştirdim, böylece eşleştiler, ama bir şeyi kaçırıyorum.

bu ortaya çıkan şey

Herhangi bir yardım çok takdir edilecektir.

info.plist


1
Dosyanı göster entitlements.plist.
Imad Ali

Belki de daha önce hiç aramadığım içindir, ama gördüğüm tek plist bilgi diyor, ama işte bu 2. görüntü.
Paul Raymond

artık bağlantı gönderemeyeceğimi söylüyor, eğer birisi bir şey söylerse Chicago uçağına binmek üzereyim
Paul Raymond

Yanıtlar:


208

Bunun neden düzeltildiğinden emin değilim, ancak Hedef'in Yetenekleri sekmesine girdim, iCloud'u AÇIK duruma getirdim, bir arşiv oluşturmaya çalıştım, başarısız oldu, iCloud'u tekrar KAPALI duruma getirdim, bir Arşiv oluşturma işlemi yapmayı denedim ve başarılı oldu ve bundan sonra sertifikaları otomatik olarak tekrar çözebildi.


3
Bunun neden işe yaradığını bilmiyorum ama işe yaradı, elma desteği daha az yardımcı oldu.
Paul Raymond

13
Bunun için teşekkürler - açıp kapattıktan sonra xcodeproj'un yanında boş bir .entitlements plist oluşturdu. Görünüşe göre gönderim sürecinin aradığı şey bu. Muhtemelen yalnızca herhangi bir yetki / yetenek gerektirmeyen mevcut uygulamalar için Xcode 9'daki bir sorun.
Andrew Wood

3
Burada aynı. Eski proje. Bir yeteneği değiştirme öneriniz için çok teşekkürler, şimdi kabul edilen boş bir yetkiler var. Apple ile hata bildirme.
RickJansen

6
Bütün bir akşam bu bs'ye şaplak attı. Açmak ve kapatmak zorunda kaldım, bu da boş yetkilendirmeler dosyasını oluşturdu ve ardından 'Kod İmzalama Yetkileri' oluşturma ayarımı bu boş dosyaya yönlendirmek zorunda kaldım.
Adam Waite

2
Xcode 10.0beta5'te bu hala devam ediyor. Benim için bunun nedeni, yetkilendirmeler oluşturulduktan sonra proje adını değiştirmekti. İCloud'u açıp kapatmak, yetkilendirmeler dosyasını yeniden adlandırdı ve derleme ayarlarında adını güncelledi. Dosyanın içeriği aynıydı. Yükleyicinin, derleme ayarları dosya adından bağımsız olarak yetkilendirmeler dosyasının adına önem verdiği görülüyor.
Troy

42

Finder'a sağ tıklayın -> Klasöre Git ...

~/Library/MobileDevice/Provisioning

Xcode 11 için

~/Library/MobileDevice/Provisioning Profiles/

Tamamlanan tüm ön hazırlık profillerini silin.


1
benim durumumda klasör "~ / Library / MobileDevice / Provisioning Profiles"
LightMan

Kabul ediyorum, bu doğru cevap, sadece Xcode 11 ile yol şu:~/Library/MobileDevice/Provisioning Profiles/
Marius Kažemėkaitis

Bu neden sorunu çözüyor? Az önce neyi sildik? Bunun herhangi bir yan etkisi var mı?
markdon

Xcode tarafından otomatik olarak veya developer.apple.com adresinden bir profil açarak manuel olarak eklenen ön hazırlık profillerini siliyorsunuz. Diğer profilleri kaybetmek istemiyorsanız, şöyle bir şey kullanabilirsiniz ... grep -ir YOUR_APP_ID ~ / Library / MobileDevice / Provisioning \ Profiles; Hangi profillerin eşleştiğini göstermek için. Sadece bunları silin ve aynı görevi yerine getirecektir.
Chris Douglass

Bu sorunu düzeltir, ancak önce Xcode'a gitmeniz ve İmzalamayı Otomatik Olarak Yönet seçeneğinin işaretini kaldırmanız, ardından yukarıdakileri yapıp Otomatik İmzalamayı yeniden kontrol etmeniz gerekir ve her şey yolunda. Benim için düzelt. Tam açıklamayı burada görün :: ottorinobruni.com/…
c0d3p03t

33

Oluşturduğunuz uygulama application-identifier, ön hazırlık profilinin beklediği değere sahip değil . 2ABCDEFG ekibi için appID com.example.foo sertifikası uygulama tanımlayıcısını bekliyor olacak: 2ABCDEFG.com.example.foo, uygulamanız appID'sinin com.example.foo olduğunu açıkladı, ancak uygulama tanımlayıcısı eşleşmedi , ya yanlış takım önekini kullanıyorsunuz ya da bundleID yanlış yapılandırılmış.

Benim durumumda, bir prod uygulaması ve bir qa uygulaması oluşturmama izin vermek için derleme şemaları kullanıyorum. prod için com.example.foo ve KG için com.example.foo.qa. Info.plist'teki bundleIdentifier'ımı $ (PRODUCT_BUNDLE_IDENTIFIER) $ (BUNDLE_SUFFIX) olarak ayarladım, bu simülatörde ve cihazda farklı uygulamalara sahip olmak için harika çalışıyor, ancak uygulama arşivleme aşamasında uygulama tanımlayıcısını oluşturduğunda Info.plist tarafından oluşturulan bundleIdentifier'ı okumamalıdır.

Durumu düzeltmek için FooProject.xcodeproj / project.pbxproj dosyasını (bir metin düzenleyiciyle) düzenleyerek QA buildSettings PRODUCT_BUNDLE_IDENTIFIER'ımı com.example.foo.qa olarak değiştirdim

Apple'ın Teknik Soru-Cevap bölümünü bu sorunu çözmek için derinlemesine incelediklerini görmek için görebilirsiniz. Dışa aktarılan uygulamanızda kod işareti yetkilerini çalıştırdıktan ve uygulamanızın hangi uygulama tanımlayıcısıyla oluşturulduğunu gördükten sonra, neyi yanlış yaptığınızı anlamak oldukça hızlı olmalıdır. https://developer.apple.com/library/content/qa/qa1879/_index.html Bu sayfayı Google aramamda bulamadım çünkü hata mesajındaki ifadeyi gerçekten kullanmıyorlar veya uygulamayı aramıyorlar - tam adıyla tanımlayıcı, ancak bunun yerine Uygulama Kimliği deyin.

Ayrıca, bu sorunun çözümü, uygulama tanımlayıcı yetkisine sahip yeni bir ön hazırlık profili oluşturmak değildir, bu yetkiye sahiptir, ancak sağlama profilindeki değer ve uygulamanızın eşleşmesi gerekir.


2
Teşekkür ederim! Ürün Paketi Tanımlayıcısındaki son ek için özel varlığımı kullanmak için paketleme altındaki yapı ayarlarımı değiştirerek düzeltebildim. örneğin com.mycompany.myapp $ (BUNDLE_ID_SUFFIX) ve bu sorunu çözdü. Bu yüzden proje dosyasını manuel olarak düzenlemem gerekmedi ve ortam başına farklı paket kimliklerini kolayca koruyabildim.
n8tr

Uygulama tanımlayıcı uyumsuzluğunun olmasının bir nedeni, tüm ön hazırlık profillerinin indirilmiş olmamasıdır. Tam uygulama kimliğine sahip profil eksikse arşiviniz joker profille oluşturulur ve bu da dışa aktarma aşamasında uyumsuzluğa neden olur.
diidu

Bu benim için çalıştı. Bir Ionic uygulaması oluşturuyordum ve farklı bir hesapta test ettiğimi fark ettim. Com.foo.testName kullandım ve doğru hesapla oluştururken tekrar değiştirdim. Görünüşe göre com.foo.testName hala pbxproj dosyasındaydı
Els

Çok teşekkürler, bu tam olarak doğrulamamı engelleyen şeydi ve açıklama çok açık!
MDH

@ n8tr Neredeyse bir haftalık baş ağrısı ve hayal kırıklığından sonra yorumunuz beni kurtardı. Teşekkürler.
Behdad

9

Belki de {project} .entitlements dosyası eksikti. @ Samkass'ın bahsettiğini yapmak dosyayı otomatik olarak oluşturacak ve çalışacaktır. Yani temelde yetenekler sekmesine gidin, her şeyi etkinleştirin ve devre dışı bırakın.


Bu aptalca ama güncellediğim birkaç eski proje için benim için çalıştı.
aspro

8

İCloud geçişini açmak, iCloud'u oluşturmak ve devre dışı bırakmak için değiştirmek, şunu söyleyen hatadan kurtuldu:

Profil, uygulama tanımlayıcı ve anahtar zinciri erişim grupları yetkilendirmeleri için yetki dosyasının değerleriyle eşleşmiyor.


Elbette çözüm bu olacaktır! Neden denemek için bu tamamen açık olmayan şeyi düşünmedim. Teşekkürler Apple.
Jonathan Plackett

3

Xcode 11'de bu, projeniz için bir .entitlement dosyası bulunmadığında gerçekleşebilir. Çözüm, 'İmzalama ve Yetenekler' altındaki '+ Yetenek' üzerine tıklayarak (bir .entitlement dosyasının oluşturulmasına yol açar) ve ardından yeteneği kaldırarak herhangi bir rastgele yetenek eklemek olacaktır. Bu, otomatik olarak bir sertifika sağlamanıza da izin verir.


2

Uygulama içi satın alma, push bildirimi, Inter App ses, Siri kiti vb. Gibi uygulamanız için gerekli olan uygulama özelliklerini kontrol edin .

Bu tür bir hatanın tek nedeni budur.

Uygulama kimliğinizde yukarıdaki bayrakların açık olduğundan emin olun.

Çoğu zaman push bildirimini yapılandırmadığınızda, Uygulama Kimliği geliştirmenizde Uygulama İçi satın alırsınız.


Hiçbir şeyi etkinleştirmedim. Bu gerçekten sinir bozucu.
Paul Raymond

uygulamanızda yukarıda bahsettiğim herhangi bir özellik var mı
Tech

Daha sonra bir ekran görüntüsü ekleyeceğim, ancak uygulama için push bildirimleri veya uygulama satın alımları yok.
Paul Raymond

tam olarak neyin ekran görüntüsünü istiyorsunuz? plist altında haklardan bahsetmez.
Paul Raymond

2

Hedefimin Yetenekler sekmesine girdim, Anahtar Zinciri Paylaşımını AÇIK duruma getirdim ve çalışmaya başladı


2

Benim için püf noktası

  1. hedef için bir yetenek ekleme / kaldırma (benim durumumda bir Widget);
  2. oluşturulan yetki dosyasının derleme ayarlarında listelendiğinden emin olun;
  3. ve "geliştirme" değerine sahip "APS Environemnt" anahtarını authlemenets dosyasına eklemek.

1

Xcode 10'da, yetki dosyasını Proje Gezgini'nde doğru klasöre taşıyarak çalıştırdım. Yetkiler dosyam yoktu, ancak yetenekler sekmesindeki özellikleri değiştirerek bir tane almayı başardım.

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


1

Aynı hatayı aldım ve yukarıdaki çözümlerden hiçbiri benim durumumdaki sorunu çözmedi.

Benim için işe yarayan şey, "Entitlements.plist" dosyasındaki "Hata ayıklanabilir" ayarını "HAYIR" dan "EVET" e değiştirmekti.


1

Benim durumumda sorun şuydu: Derleme adımı için kullanılan ön hazırlık profili, dışa aktarma adımı için kullanılan ön hazırlık profilinden farklı uygulama kimliği için oluşturuldu.

Bu nedenle, oluşturma ve dışa aktarma adımı için aynı ön hazırlık profilini kullandığınızdan emin olun.


Çünkü bu hatanın, derleme ve verme adımındaki farklı ön hazırlık profilleri nedeniyle oluşabileceğini vurgulamak istedim. Bu durumda hata mesajı kök nedeni bulmaya yardımcı olmaz. Cevabın neden geciktiğine gelince - bu hata belirli bir süreye bağlı değildir. Yani 1 yıl önce oldu ve şimdi aynı şekilde oluyor. Benim durumumda kabul edilen cevap işe yaramadı.
Alexey Komov

1

Benim için işe yarayan şey, arşivi XCode 11'de yapmam ve içine yüklemeyi Xcode 12 beta yapmamdı.


0

Geliştirici hesabınızda Uygulama Kimliğiniz için etkinleştirdiğiniz seçeneklerle uygulamada çapraz kontrol yetenekleri.


Bu ücretsiz bir uygulama ve hiçbir şeyi etkinleştirmedim ve bu çok sinir bozucu. Cihazıma çok iyi yüklüyor, nereye bakacağımı bilmiyorum.
Paul Raymond

ikisinin ekran görüntülerini paylaşabilir misin?
KavyaKavita

neyin ekran görüntüsünü istiyorsun?
Paul Raymond

bir geliştirici hesabında yetenekler bölümü ve Uygulama Kimliği yapılandırmasının ekran görüntüsü
KavyaKavita

0

Buradaki yanıtlarda listelenen birkaç seçeneği denedim, ancak hiçbiri yardımcı olmadı, ancak "İmzalamayı otomatik olarak yönet" onay kutusunu kapatıp açarak sorunu çözdüm.


0

TL; DR: Uygulama Kimliğinizi kontrol edin ve hizmetlerin hedefinizdekiyle eşleştiğinden emin olun.


Bana olan şey, Xcode 10.1'in bir Uygulama Kimliği oluşturmama yardım etmesine izin vermem ve bundan sonra burada açıklandığı gibi sorunla karşılaşmamdı. (Uygulamayı iTunesConnect'te oluştururken whildcard uygulama kimliğini seçtim, bu yüzden bunun yapıldığını bile fark etmedim.) İOS geliştirici portalını açtığımda, yeni uygulama kimliğinde Game Center ve Uygulama İçi Satın Alma otomatik olarak etkinleştirildi.

Game Center'ı sizin Target -> Capabilitiescihazınızda etkinleştiremediğim için Uygulama İçi Satın Alma'yı etkinleştirdim ve ardından uygulamam imzalanıp yüklenebilir.


0

Aynı sorunla karşılaştığımızda yukarıdakilerin hepsini denedik ama hiçbiri işe yaramadı.

Bizim için işe yarayan şey, paket tanımlayıcısını öncekiyle aynı olmayacak şekilde değiştirmektir, örneğin "com.name.App" yerine "com.name.App2"; xcode'un ön hazırlık profilini getirmeye / oluşturmaya çalışmasına izin verin ve ardından orijinal profiline geri dönün.

Bu fikir, Apple'ın geliştirici forumlarındaki bu başlıktan aldım - https://forums.developer.apple.com/thread/114539


0

Yinelenen bir hedef oluşturmaya çalıştıktan sonra bu sayfaya yakın zamanda rastladım - önerilerin hiçbiri benim için çalışmıyordu. Daha fazla araştırma ve bir miktar saç çekme, sonunda uygulamamın neyin yanlış olduğunu anlamaya çalışması için yapı ayarlarını incelemeye götürdü.

Projemin kendine ait bir tane olmak yerine ORİJİNAL hedefin yetkilendirme dosyasına işaret ettiği ortaya çıktı. Bu sorunu çözmek için Finder'daki orijinal yetkilendirmeler dosyasına gittim (ör. $ {SRCROOT} /MyProject/Entitlements/TargetName.entitlements ), aynı klasör içinde bir kopya oluşturdum ve sonra yeniden adlandırdım (örn. NewTargetName.entitlements).

Ardından, yeni yetkilendirme dosyamı açtım ve uygulama tanımlayıcı alanını yeni hedefimin paket tanımlayıcısının sonuyla eşleşecek şekilde değiştirdim (ör. ABCDEFGH.US.co.fake-company.superduperapp-newtargetname ).

Son olarak, yapı ayarlarındaki 'Kod İmzalama Yetkileri' alanını yetkilendirmeler dosyamın yoluna güncelledim (benim için bu $ {SRCROOT} /MyProject/Entitlements/TargetName.entitlements satırlarında bir şeydi ).

İmzalama ve Yetenekler sekmesine döndüm ve işte sorun çözüldü. Umarım dışarıdaki biri bunu yararlı bulur.


0

Xcode'un Bilgi sekmesine gidin ve Paket tanımlayıcı alanını değiştirin - uygulama adını değiştirdikten sonra, Genel sekmesinde Paket Tanımlayıcı'yı değiştirmeme rağmen değişmedi. Yukarıdaki düzeltmeler benim için işe yaramadı ama bu anında yaptı.


0

Xcode 12 beta 3'te yepyeni bir uygulamayla bu sorunu yaşadım ( uygulama gönderimleri bugün başladı ).

Xcode, "Otomatik olarak imzalamayı yönet" seçeneğine sahipti. Ancak, "İmzalama Sertifikası" nda görüntülenen Ekip Kimliği, iTunes Connect web sitesinde görüntülenen Ekip Kimliği ile eşleşmedi. Bu, uygulamanın yüklenmesini engelleyen temel nedendi.

Nasıl düzelttim:

  1. App Store dağıtımı için manuel olarak bir ön hazırlık profili oluşturdum
  2. Xcode'da Tercihler -> Hesap'ta "Manuel profilleri indir" seçeneğine dokundum
  3. Ardından, "İmzalamayı otomatik olarak yönet" i kapattım.
  4. Açılır menüde temel hazırlık profilini seçtikten sonra, "İmza Sertifikası" altında doğru Ekip Kimliği göründü

0

ExportArchive cmd'yi çalıştıran ve AppStore'a yükleyen bir Gitlab ardışık düzeni kurarken aynı sorunla karşılaştım. Derleme Ayarlarındaki DEVELOPMENT_TEAM'i İmzalama ve Onaylar'da seçilen aynı Ekiple değiştirerek çalıştırmayı başardım.

Çünkü daha önce, varsayılan olarak yanlış olan ve eşleşmeyen başka bir DEV TEAM kimliği kullanan ve "uygulama tanımlayıcı" = 12331232.com.bannana.apples.peach eşleşmediğinden şikayet eden boş olarak ayarlanmıştı. Bu da beni doğru DEV EKİBİ kurmaya yönlendirdi ve işe yaradı.

Xcode ver: Sürüm 11.3.1

Umarım bu birisine yardımcı olur.


0

Kurulumumuz

Birden çok hedef:

  • alt uygulamalar
  • izlemek
  • uygulama klibi
  • bugün widget

... ve iCloud'u kullanın.

İCloud'u açmak ve kapatmak bizim için bir seçenek değildi. Bunu zaten üretimde kullanıyoruz ve onunla uğraşmak yerine ... Orijinal sorunun mesajını ve bir noktada bu varyasyonu da aldım:

Profil, uygulama tanımlayıcı ve anahtar zinciri erişim grupları yetkilendirmeleri için yetki dosyasının değerleriyle eşleşmiyor.

Çözüm

Buradaki diğer yanıtlardan yola çıkarak, tüm hedeflerin bir .entitlementsdosyası olmasını sağladık . Hedefte hiç yoksa böyle boş bir tane oluşturduk:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict/>
</plist>

... ve 's hedefini işaret Code Signing Entitlementde Build Settingsboş için.entitlements dosyanın.

Çö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.