Eksik Anında Bildirim Yetkisi


126

Reddedildiğinde gönderilecek bir uygulamam var ve mesajı aldım

Eksik Anında Bildirim Yetkisi - Uygulamanız Apple Push Bildirimi hizmetine kaydoluyor gibi görünüyor, ancak uygulama imzasının yetkileri "aps-environment" yetkisini içermiyor. Uygulamanız Apple Push Bildirimi hizmetini kullanıyorsa, Uygulama Kimliğinizin Temel Hazırlık Portalı'nda Anında Bildirim için etkinleştirildiğinden emin olun ve uygulamanızı "aps-environment" yetkisini içeren bir Dağıtım sağlama profiliyle imzaladıktan sonra yeniden gönderin.

Geçici provizyonumu kontrol ettim ve orada aps-ortamını ve üretimini buldum, ancak dağıtım provizyonumu açtığımda böyle bir şey bulamıyorum.

Bu hata mesajının ve elma reddinin nedeni bu mu, nasıl düzeltebilirim?

Yanıtlar:


80

Evet, App Store reddinin nedeni budur. Geçici ön hazırlık profilinizde aps-ortam anahtarı varsa bu, uygulamanızın Apple Provisioning Portal'da doğru şekilde yapılandırıldığı anlamına gelir. Yapmanız gereken tek şey, yerel makinenizdeki App Store dağıtım profilini silmek, ardından Dağıtım profilini Sağlama Portalından yeniden indirmek ve kurmaktır. Bu yeni, aps-ortam anahtarını içermelidir.


Biraz daha sisi temizlemek için, bu oldukça "dağıtım profilinin içinde aps-ortamı vb. OLMALIDIR" ve sağlama işlemini bir metin düzenleyicide açtığımda, orada yatarken bulmam gerektiğini
belirtir

Özellikle dağıtım profilimden bir şey değiştirdiğimde yeni bir SSL sertifikası oluşturmam gerekir mi?
mirageservo

2
Hayır, yeni bir geliştirici sertifikasına gerek yok. Anlık bildirimler için dağıtımı etkinleştirdiğinizde (ad hoc profiliniz aps-ortam anahtarına sahip olduğu için bunu bir noktada yapmış olmanız gerekir), iTunes Sağlama Portalı, aps-environment anahtarını içeren yeni bir uygulama mağazası dağıtım profili oluşturur. Muhtemelen en yenisini indirip yüklemediniz.
tom

Bu soru galaksiye gelmeden önce bir şey daha var, proje oluşturma ayarlarında bir değişiklik olacağından ipa'yı yeniden derlemem (yeniden arşivlemem) gerekiyor mu yoksa uygulamayı yeniden derlemeyi zahmet etmeden doğrudan dağıtabilir miyim?
mirageservo

Yeniden arşivlemeniz gerekiyor. Uygulama ile ilişkili ön hazırlık profili .ipa'ya yerleştirilir.
tom

43

İlk Uygulama Kimliği

Üretim tarafında ID push bildiriminizin etkinleştirildiğinden emin olun

resimde göründüğü gibi

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

İkinci Sertifika

üretim bölümünden kimliğinizle iki sertifika oluşturun (push bildirimi etkin)

App Store ve Ad Hoc sertifika

Apple Push Bildirimi hizmeti SSL (Sandbox) sertifikası

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

Üçüncü Sağlama Profilleri

Dağıtım bölümünden kimliğinizle App Store profili oluşturun

En sonunda

kutunuzu yüklerken, hangi ön hazırlık profilinin kullanıldığını kontrol etmeli ve birçok yetkiye sahip olmalısınız

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

tüm durumlar bu soruna neden olur umarım bu size yardımcı olur


1
İşte kaçırdığım şey buydu. Uygulama kimliğini push bildirimleriyle kullanarak apple geliştirici sitesinde yeni bir ön hazırlık profili oluşturmam gerekiyordu. Yeni ön hazırlık profiliyle nihayet aps-environment yetkisi uygulamama eklendi. Teşekkür ederim!
M. Luisa Carrión

38

XCode 8'de, hükümler ve sertifikalar üzerindeki her şeyi etkinleştirmenin yanı sıra, hedefinizdeki Yetenekler sekmesinde push özelliğini etkinleştirmeniz gerekir: Xcode 8 "aps-ortam yetkisi, gönderildiğinde uygulamanın imzasında eksik"

Bununla ilgili blog yazım burada .


8
Bu çok klasik bir Apple. Bir yapıyı gönderdikten iki saat sonra, uzun süredir çözdüğüm bir sorunla ilgili bir hata mesajı gönderiyorlar (Dev Portal'da Anında Bildirim Uygulama Hizmetini etkinleştirme) ve bir 404 bağlantısıyla açıklanıyor. sorun, yazılımlarının yeni bir sürümüne (kilitlendiğim) yükseltirken ayarlarımı taşımamaları. Ugh.
Rembrandt Q. Einstein

3
Burada aynı hikaye. Hata mesajını neredeyse bir Apple hatası olarak görmezden geldik.
Vaiden

23

Bu mesajı farklı bir nedenden dolayı aldım - önce uygulama için özel olarak bir App Store Dağıtım Profili oluşturmadan Xcode aracılığıyla bir uygulama gönderdim. Eğer yüklediyseniz Xcode'un otomatik olarak joker bir App Store profili kullandığına inanıyorum. Ancak Push Bildirimleri kullanan bir uygulama kendi profilini gerektirir.

Düzeltme, uygulama için yeni bir App Store Dağıtım profili oluşturmaktır. Sonra onu indirir, Xcode'a sürükler ve yeni profili kullanmak için projenizi Oluşturma Ayarları> Kod İmzalama> Serbest Bırak'ı değiştirirsiniz.


11

@Vaiden tarafından verilen cevabın ardından, Xcode 8'de hedefi seçip "Sorunu düzelt" seçeneğine tıklayarak bu sorunu çözebilirsiniz. Elbette, Apple Geliştirici portalında anlık bildirimler ayarlamanız gerekecek (sizi ön hazırlık profillerini indirme zahmetinden kurtaran yeni "İmzalamayı otomatik olarak yönet" seçeneğini kullanarak süreci biraz basitleştirebilirsiniz).

Beni düzelt seçeneği


8

Uygulamalarında Push Bildirimleri kullanan bu sorunla karşılaşanlar için:

İtme sertifikalarımızın süresi yakın zamanda sona ermek üzereydi, bu yüzden Apple tarafından belirtilen standart şekilde yeni geliştirme / üretim itme sertifikaları oluşturduk (bu konuda ayrıntıya girmeyeceğim, güncelleme sırasında web'in her yerinde pek çok bilgi var bir yıl daha kullanım için itme sertifikalarınız).

Ancak bunu yaptıktan sonra bu sorudaki sorun ortaya çıktı. Ne yaparsak yapalım, bu e-postayı uygulamamızı gönderdikten sonra Apple'dan aldık. Apple Üye Merkezindeki Dağıtım Sağlama Profilimizin ayarlarını kontrol ettiğimizde, her şey yolunda görünüyordu (hem prod / dev için Uygulama Kimliğimiz için Push etkinleştirildi ve dağıtım sağlama profilimiz hala bu Uygulama Kimliğine bağlıydı, tam anlamıyla yeni oluşturduk standart uygulama olduğu gibi başka bir yıl için yeni itme sertifikaları).

Sonunda, bunu benim için çözen şey buydu:

  1. Uygulama Kimliğinize işaret eden yeni bir Dağıtım Temel Hazırlık Profili oluşturun (mevcut olanı dokunmadan bırakın)
  2. Xcode'da, sağlama profillerinizi Ayarlar> Hesaplar> Hesabınızı seçin> Ayrıntılar> Yenile simgesine tıklayın yoluyla yenileyin
  3. Uygulamanız için manuel olarak bir yetki plist dosyası oluşturun:
    • Dosya menüsü> Yeni Dosya ...
    • İOS> Kaynak> Mülk Listesi'ni seçin
    • Yeni dosyayı "foo.entitlements" olarak adlandırın (genellikle, "foo" hedef adıdır)
    • Üst düzey bir öğe eklemek için "Yetki Dosyası" nın yanındaki (+) işaretine tıklayın (özellik listesi düzenleyicisi, dosya uzantısı nedeniyle doğru şemayı kullanacaktır)
  4. Bu yetkilendirme dosyasının hedefinizin Derleme Ayarlarında kullanıldığından emin olun (Hedef> Derleme Ayarları> "Yetkileri Ara", CODE_SIGN_ENTITLEMENTS'de az önce yaptığınız Yetkiler dosyanızın yolunu ayarlayın)
  5. Hedefinizdeki sağlama profilinin / kod imzalama kimliğinin, uygun dağıtım sağlama profilinize / imzalama kimliğinize doğru şekilde ayarlandığından emin olun (bu açık olmalıdır)
  6. Bunun etkilenip etkilemediğinden% 100 emin değilim (Hedef ayarları proje ayarlarını geçersiz kıldığından beri olmamalıydı, ancak bunu yine de yaptım), Projenizin ön hazırlık profilinin / imzalama kimliğinin Hedefinizin
  7. Yaptığınız yetki dosyasında, boş dosyaya sağ tıklayın ve "Ham Anahtarları / Değerleri Göster" i seçin.
  8. Yetki dosyasına "aps-environment" adlı yeni bir giriş ekleyin ve değerini "üretim" olarak ayarlayın
  9. Anahtar bir not, eğer daha önce anahtar zinciri erişim grupları yetkisini kullanıyorsanız, bu anahtarı buraya da eklemek isteyeceksiniz çünkü bunu manuel olarak yaptığımda bir nedenden ötürü benim için temizlendi. Değerin önceki yapılarda kullanılan değerle aynı olduğundan emin olun (değeri, Düzenleyici'de önceki bir yapıyı bularak, uygulama mağazasına göndermeye çalışarak, ekibinizi seçerek ve ardından uygulamayı göndermeden önce yanındaki oka dokunarak bulabilirsiniz. Yetkileri genişletmek ve anahtar zinciri erişim grubu yetkisinin değerini görmek için "(X) Yetkiler" dizesi.
  10. Uygulamanızı arşivleyin ve son "Gönder" düğmesine ulaşana kadar göndermeyi deneyin. Bu uygulamanın artık üye merkezinde oluşturduğunuz yeni ön hazırlık profiliyle oluşturulduğunu görmelisiniz. Şimdi iptal edin.
  11. Apple üye merkezine geri dönün ve 1. adımda oluşturduğunuz yeni ön hazırlık profilini silin.
  12. Xcode'a geri dönün, 2. adımı tekrarlayarak ön hazırlık profilleri listenizi bir kez daha yenileyin.
  13. Şimdi uygulamanızı yeniden arşivleyin ve uygulamanın kullanmak istediğiniz eski Dağıtım ön hazırlık profiliyle oluşturulduğunu ve aps-ortam yetkisine doğru şekilde sahip olduğunu görmelisiniz. Gönderin ve bitirdiniz.

Bunun ekran görüntülerine sahip olması gerektiği kadar ayrıntılı olmadığını biliyorum, yapabildiğimde ekran görüntüleriyle güncellemeye çalışacağım ama şu an için bir zaman sıkıntısı içindeyim ve orada ne yaptım. Ayrıca, özetlediğim adımların bir kısmının veya çoğunun gerekli olmaması ihtimali de çok yüksek, onları buraya koyuyorum çünkü onları yaptım ve nihai çözüme yol açmış olabilirler.


Teşekkür ederim. # 8 benim için geliştirmeye ayarlandı, bu bizim sorunumuz olabilir.
ingage

Çok teşekkür ederim, bu boktan iş için bütün bir günü boşa harcadım, sorun 4 numaralı adımdı, nedense CODE_SIGN_ENTITLEMENTS belirtilmeden yetkiler yalnızca uygulama mağazası yüklemesinde göz ardı edildi.
Mark Kazakov

5

iOS Temel Hazırlık Portalında Developer.apple.com adresinde Uygulama Kimliğinizin Push Etkin olup olmadığını kontrol edin, Daha Sonra Etkinleştirilmemişse, Uygulama Kimliğiniz için Push SSL Sertifikanızı yapılandırın ve Anahtar Zincirinizde Yeniden Yükleyin Bir kez daha, ardından Dağıtım Profilinizi İndirin kurulumunu yapın Xcode Kitaplığınızda


4

Ayrıca uygulamamda push bildirimlerini hiç kullanmadığım halde bu sorunla karşı karşıyaydım. Yeni ön hazırlık profili oluşturmak da benim için işe yaramadı. Yaptığım şey şuydu: -

1. Yalnızca Ad hoc ve App Store için yeni ve yeni sertifika oluşturun.

2. Ardından bu sertifika ile dağıtım profili yapın ve profili Xcode ile entegre edin.

Daha sonra bu profil ile yeni gönderilen yapı herhangi bir uyarı olmadan onaylandı.


2
bunu denedim - yardımcı olmadı. hala eksik push bildirimleri alıyorum .. push bildirimlerini kullanmıyorum!
Adam

2

Benim durumumda, bir myapp.profile oluşturup xcode'a manuel olarak ayarlasam bile ve "bulucuda göster" i seçip embedded.mobileprovision'ı bulup aps-ortamının dosyada olduğundan emin olmak için kontrol ettiğimde, hata hala orada.

Daha sonra geliştirici merkezine gittim ve XC: myapp.profile durumunun geçersiz olduğunu öğrendim. Onu güncelledim ve XC: myapp.profile'ı yükledim ve iyi çalıştı.

Bence xcode profili yönetmeye çalışıyor ve ikili programınızı depolamaya gönderdiğinizde ön hazırlık profilini kontrol etmeniz ve doğru olduğundan emin olmanız gerekiyor. Ve diğer cevaplara göre çeşitli nedenlerden kaynaklanabilir, bu yüzden gerçekten can sıkıcı olabilir.

GÜNCELLEME:

İndirilen profille imzaladıktan ve aps-environmentadresine göndermeye çalıştığınızda orada olduğunu onayladıktan sonra App Store, profili ve kod imzalama varlığını otomatik ve olarak değiştirebilmelisiniz iOS Developer. Umarım Xcode 7'de geliştirilebilir.


Tüm profilleri kontrol ettim ve ayrıca XC: profil güncellendi ve herhangi bir asp-ortam anahtarı içermiyor orada hala aynı sorunu tekrar tekrar yaşıyorum. Herhangi bir yardım takdir edilecektir. Ve evet, uygulamada uygulanan herhangi bir push bildirimine ihtiyacım yok
The iOSDev

Ön hazırlık profilinin ikili içeriğini kontrol ederek ve "aps-environment" dizesinin içinde olup olmadığını kontrol ederek emin olabilir misiniz? İçindeyse, ondan kurtulmanın bir yolunu bulmanız gerekir, aksi takdirde uygulamanızı imzaladığınız profilin o profil olduğundan emin olmanız gerekir. Her iki durumda da bir sorun olmalı.
superarts.org

1
İki kez kontrol ettim ve daha fazlasını öğrenmeye çalıştım ama şansım yok. Bunun gibi bir dize yok ama 2 günlük arama ve denemelerden sonra, bu sorunun benim kodumla değil Xcode 7 beta ile uyumlu olduğunu anladım :) Xcode 6.4 ile aynı derleme mükemmel çalışıyor ve Apple'dan bildiren bir e-posta yok sorun, dolayısıyla sorun kod veya profille değil Xcode 7 beta 4 ile ilgilidir.
iOSDev

2

Bunu benim için düzelten şey buydu. (Yetenekleri açıp kapatmayı, ön hazırlık profilini yeniden oluşturmayı vb. Zaten denedim).

Gelen inşa Ayarlar sekmesi, içinde Kod İmzalama Yetkiler , benim .entitlements dosyasının tüm bölümler için bağlantı değildi. Herhangi bir SDK bölümüne ekledikten sonra, hata çözüldü.

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


2

Expo 'çıkarılmış' bir uygulama için bunu çözmek için, yetenekler sekmesine gittim, itmeyi etkinleştirdim ve sonra tekrar devre dışı bıraktım. Bu, APNS 'yetkileri' ayarını .entitlements dosyasından kaldırdı.


bunu "çıkarılan"
projemde

1

Aynı sorunu yaşadım ve çözümüm, Hedef -> Yetenekler'den push bildirim yetkisini eklemekti.


0

Bu aniden başıma geldi çünkü uygulamamın dağıtım profilinin süresi dolmuştu. Xcode, bunun yerine push bildirim yetkisinin etkinleştirilmediği joker karakter profilini kullanmaya başladı. Herhangi bir uyarı almadım. Düzeltme kolaydı; Apple Developer Üye Merkezi'nde uygulamam için başka bir dağıtım profili oluşturmam, indirmem ve Xcode'da yüklemek için çift tıklamam gerekiyordu.


0

Burada gerçekten çok iyi öneriler var.

Mina'nın sağladığı son ekran görüntüsüne atıfta bulunarak, ilk başta uygulamamı arşivledikten sonra, yükleme sırasında belirtilen ön hazırlık profili bir joker karakter (XC. *) İçeriyordu. Bu yanlış.

Bunu çözmek için epeyce çaba sarf edildi. Simon Woodside ve Mina Fawzy'nin sunduğu önerilerin bir kombinasyonunu gerçekleştirmek zorunda kaldım.

Projenizle ilgili herhangi bir mevcut sertifikanız ve ön hazırlık profiliniz varsa, şimdi hepsini yerel olarak kaldırmak ve hepsini uzaktan iptal etmek için iyi bir zaman olabilir. Kendinize yeni bir başlangıç ​​yapın.

Mina Fawzy'nin ayrıntılı önerisi mükemmel. Mina'nın önerisini yerine getirmek, eğer doğru bir şekilde yapılırsa, çevrimiçi olarak sizinle ilgilenmelidir.

Simon'ın önerisini girin. Projemin içinde kontrol etmem gereken iki şey. XCode'u kullanarak buraya gidin:

PROJE -> YAPI AYARLARI -> KOD İMZALAMA

İnceleme Kod İmzalama Kimlik ve Sağlama Profili özelliklerini. Bu iki özelliği proje adınıza ayarladığınızdan emin olun. XCode'un sizin için otomatik olarak seçim yapmasına izin vermeyin ve bazı genel kod imzalama kimliği kullanmayın (örn. Iphone Developer).

Arşivlemeye karar vermeden önce uygulamayı gerçekten cihazlarınıza yükleyebileceğinizden emin olun.


0

En büyük sorun i etkinleştirdikten sonra sahip olduğu Push Notificationgelen Capabilitiesve tüm sertifikaları remaking olmasıdır Hedef adı ve klasör adı projesi 2 dizeleri bestelenmiştir saklandı boşluk bırakarak. Alanı kaldırdıktan sonra her şey yolunda gitti!


1
Uygulamam push bildirimini kullanmıyor ancak yine de bu uyarıyı apple'dan alıyorum. Lütfen önerin
Chandni

0

Bu sorunu yaşadım çünkü yetkiler dosyam önceki manuel düzenleme nedeniyle hatalı biçimlendirilmişti. Yanlış biçimlendirilmiş yetki girişi sözdizimini kaldırdım ve ardından yetenekler sekmesindeki "düzelt" seçeneğine tıklayabildim ve Xcode yetkiyi dosyama ekledi.

Aşağıda, uygun şekilde biçimlendirilmiş bir yetki dosyası (" Runner.entitlements") örneği verilmiştir :

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>aps-environment</key>
    <string>development</string>
    <key>com.apple.developer.applesignin</key>
    <array>
        <string>Default</string>
    </array>
</dict>
</plist>

0

DÜZELTME FİKİR Hey millet, bir uygulama yaptım ve herhangi bir push bildirim işlevi kullanmadım ama yine de bir e-posta aldım. Apple geliştirici portalında uygulamamı apple store connect'te oluşturmak için kullandığım paket tanımlayıcısının sertifikalarını, kimliklerini ve profillerini kontrol ettikten sonra push bildirimlerinin açıldığını fark ettim.

Yapmanız gereken şey:

ayrıca sertifikalarınızı yönetebileceğiniz apple geliştirici oturum açma sitesine gidin 2. sağ taraftaki "Sertifikalar, Kimlikler ve Profiller" sekmesini seçin 3. şimdi "Tanımlayıcılar" ı seçin 4. ve listeden sağdaki paket kimliği 5. şimdi push bildirimini görene kadar aşağı kaydırın 6. kapatın 7. yapınızı arşivleyin ve Apple Store Connect'e yeniden yükleyin

Umarım yardımcı olur!

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.