Uygulama mağazasındaki uygulama için geçerli bir "aps-environment" yetki dizesi bulunamadı


105

Bu yüzden, yaklaşık bir ay önce yayınladığım Dripper adlı bu uygulamaya ve birkaç gün önce bir güncellemem var. Güncelleme, push bildirimleri ve birkaç küçük değişiklik ekledi. Geliştirme profilini kullanarak sandbox-apn ile test ettim ve her şey harika gitti. Sonra işleri prodüksiyon apnına çevirdim ve test uçuşuna ittim, yine her şey mükemmel çalıştı. Piyasaya güncelleme koyup çalıştırdığımda, sunucuda herhangi bir yeni push kaydı almadığımı fark ettim. Cihazın konsol günlüklerine baktım ve şunu buldum:

Aralık 4 17:55:15 Ina-touch-it coffco [1210]: Uzaktan bildirimlere
kaydolma Aralık 4 17:55:15 Ina-touch-it SpringBoard [52]: Uygulama için geçerli bir 'aps-environment' yetkilendirme dizesi bulunamadı 'Damlatıcı': (boş). Bildirimler teslim edilmeyecektir.
4 Aralık 17:55:15 Ina-touch-it coffco [1210]<Warning>: Failed to register with error : Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' entitlement string found for application" UserInfo=0x174270900 {NSLocalizedDescription=no valid 'aps-environment' entitlement string found for application}

Biraz kafam karıştı, çünkü prodüksiyon-apn'nin geçici ve uygulama mağazası kurulumları arasında aynı şekilde çalışacağını düşündüm.

İşte benim uygulama kimliğim ve yetkileri -> http://i.stack.imgur.com/uf4pB.png

İşte uygulama mağazası için temel hazırlık profili -> http://i.stack.imgur.com/AYOV5.png


Burada imzalanıyor ve yükleniyor -> i.stack.imgur.com/AziCI.png Yapı ayarları -> i.stack.imgur.com/j2TFG.png
Jessiah

Yanıtlar:


283

Push bildirim özelliğini etkinleştirerek bu sorunu çözüyorum.

.Xcodeproj -> Yetenekler -> Push Bildirimi Etkinleştir seçeneğine tıklayın


15
XCode 8'de bu bölümde bir yetki dosyasının eklenmesi gerektiğini söyleyen bir hata gördüm. Düzeltmek için buna tıkladım ve sonra iyi çalıştı.
Pelet

Sadece son zamanlarda Xcode 8'de geliştirmeye başlarken ortaya çıktı ve bu onu düzeltti. Teşekkürler!
Kody R.

Daha önce Xcode 7.3 üzerinde çalışıyordu, ancak aniden Xcode 8'e kaydolmuyordu, ancak bu, push bildirim özelliğini etkinleştirerek sorunumu çözdü.
Vinod Rathod

Apple, bu seçeneği Xcode 8.1'in derinliklerinde bir yerde gizlemeye karar verir. Lütfen onu bulabilecek biri varsa bana bildirin.
Thomas Sebastian

Yetenekler listesinde "Anında bildirim" seçeneğini almadım. XCode'un ön hazırlık profilimi otomatik olarak oluşturmasıyla ilgisi vardı (iOS geliştirmede yeniyim, bu yüzden yanılıyor olabilirim ...). Yetenekler listesinde Push Bildirimleri'ni görüntülemeden önce geliştirici hesabımda oturum açmam ve uygulamam için manuel olarak bir ön hazırlık profili oluşturmam gerekiyordu. Son olarak, etkinleştirmek bu sorunu çözdü.
Max Mumford

103

Bu sorunu şu şekilde düzelttim:

  • Xcode "Tercihler" e gidin
  • "Hesaplar" sekmesine gidin
  • Apple kimliğimi seçin ve "Ayrıntıları Görüntüle" yi tıklayın
  • Yenilemek için sol alt köşedeki oka tıklayın
  • "Bitti" yi tıklayın

Ve yeniden dene!

Kaynak:


6
ardından Derleme Ayarı
Hashem Aboonajmi'de

2
Benim durumumda, geliştirme merkezindeki ön hazırlık profillerini yeniden oluşturmam gerekiyordu. Ardından Xcode> tercihler> Hesaplar> Apple Kimliğiniz> sağ köşedeki ayrıntıları görüntüle düğmesi> tümünü indir düğmesi aracılığıyla tüm profilleri ve sertifikaları tekrar indirin. Bundan sonra tekrar çalışması gerekir.
blackjacx

2
İtme ve konuşlandırma sürecinde pek çok aksaklık olması beni üzücü buluyorum. Bunlardan herhangi birine tahammül edebilmemin tek yolu, her şeyi% 100 manuel olarak yapmak ve Xcode'un ne yapmaya çalıştığını bilmek ve dosya sisteminde ve iPhone Yapılandırma Yardımcı Programı aracılığıyla Anahtar Zinciri kimliklerini ve ön hazırlık profillerini yönetmek.
Tom Pace

57

Hedef—> yetenekler—> push bildirimini etkinleştirmeniz gerekir. Xcode 8 kullanarak bu sorunla karşılaştım.görüntü açıklamasını buraya girin


18

Bu tür sorunlar, Temel Hazırlık Profilinin APNS sertifikası oluşturmadan ÖNCE oluşturulduğundan, mevcut Hazırlama Profilinin APNS bilgilerini içermemesinden kaynaklanmaktadır.

Bu nedenle, sorunu çözmek için yeni bir Temel Hazırlık Profili oluşturun ve Xcode'da Temel Hazırlık Profilini seçin. O zaman BİTTİ.

Ayrıca push eklediğinizde, anahtar zincirindeki sertifikaları da güncellediğinize inanıyorum.


Kullanmakta olduğum profil, üretim push apn için sertifika oluşturduktan sonra oluşturuldu. Eksik olduğunu veya apns bilgilerini içerdiğini doğrulamak için yapabileceğim bir şey var mı?
Jessiah

@Jessiah: Hayır .. Sanki Apple tarafından sağlanan ayak izlerini takip etmemiz gerekiyor.
Fahim Parkar

6

Xcode 9 ile ilgili olarak, bu özel sorunu çözmek için bazı cevaplar eski veya eksiktir.

Benim için izlenecek adımlar şunlardı:

1. Temel Hazırlık Profilini Oluşturun

( FCM, push bildirimi için bir ön koşul değildir, ancak kılavuzları inanılmaz derecede açık, işte bağlantı )

Uygulamanızı geliştirme aşamasındayken test etmek için, cihazlarınıza henüz App Store'da yayınlanmayan bir uygulamayı çalıştırma yetkisi vermek üzere geliştirme amaçlı bir Temel Hazırlık Profiline ihtiyacınız vardır.

  1. Apple Developer Member Center'a gidin ve giriş yapın.
  2. Sertifikalar, Tanımlayıcılar ve Profiller'e gidin.
  3. Sol üst köşedeki açılır menüde, iOS, tvOS, watchOS'i seçili değilse seçin, ardından Temel Hazırlık Profilleri> Tümü'ne gidin.
  4. Yeni bir Temel Hazırlık Profili oluşturmak için + düğmesini tıklayın.
  5. Ön hazırlık profili türü olarak iOS Uygulama Geliştirme'yi seçin, ardından Devam'ı tıklayın.
  6. Açılır menüde, kullanmak istediğiniz Uygulama Kimliğini seçin, ardından Devam'ı tıklayın.
  7. Önceki adımda seçtiğiniz Uygulama Kimliğinin iOS Geliştirme sertifikasını seçin, ardından Devam'ı tıklayın.
  8. Temel Hazırlık Profiline eklemek istediğiniz iOS cihazlarını seçin, ardından Devam'ı tıklayın. Testiniz için kullanmak istediğiniz tüm cihazları seçtiğinizden emin olun.
  9. Bu temel hazırlık profili için bir ad girin (ör. Firebase Örnek Uygulama Geliştirme Profili), ardından Oluştur'u tıklayın.
  10. Temel Hazırlık Profilini Mac'inize kaydetmek için İndir'i tıklayın.
  11. Kurmak için Temel Hazırlık Profili dosyasına çift tıklayın.

2. Push Bildirimi yeteneklerini etkinleştirin

  1. Resmi kılavuzdan proje düzenleyicisine gidin görüntü açıklamasını buraya girin
  2. Yetenekler bölümünde, Push Bildirimi Etkinleştir görüntü açıklamasını buraya girin

4

İOS 8.0 ve üzeri sürümleri kullanırken aynı sorunu yaşadım; Cihaz jetonunu almadım ve hata veriyordum: "uygulama için geçerli bir 'aps-environment' yetki dizesi bulunamadı"

Aşağıdaki adımları kullanarak düzelttim

  • Uygulama kimliği için yeni temel hazırlık profili oluşturdum
  • xcode'a ekledi
  • proje Xcode "Tercihler" e gidin
  • "Hesaplar" sekmesine gidin Apple Kimliğimi seçin ve "Ayrıntıları Görüntüle" yi tıklayın
  • ön hazırlık profilinizi seçin
  • Yenilemek için sol alt köşedeki oka tıklayın
  • "Bitti" yi tıklayın

ve şimdi projeyi çalıştırın kesinlikle işe yarayacak.


3

Bazı nedenlerden dolayı Wei'nin çözümü benim için işe yaramadı. Düzeltme yetkilerine tıklandığında, Xcode iki dosya oluşturdu ve hala çalışmıyordu, gerçekten de oluşturulan yetki dosyaları boştu.

Bunun nedeni (görünüşe göre) projenin PRODUCT_NAME ürününün oldukça uzun olması ve boşluklar ve "ä" ve "ö" harfleri içermesi. Sadece İngilizce harflerle kısa bir versiyona değiştirdikten sonra, Wei'nin düzeltmesi doğru bir şekilde çalıştı.


1

Geçerli bir aps-çevre yetkilendirme hatasına neyin sebep olduğunu anlamam biraz zaman aldı. Sorun, XCode projesinde iki .entitlements dosyası olmasıydı. Biri platform / ios //. Yetkileri ve diğeri platform / ios // Kaynaklar / .entitlements ve uygun yetkiler, önceki dosyada yalnızca XCode ikincisini kullanacak şekilde yapılandırıldığında mevcuttur. İkinci dosyayı manuel olarak güncelledim ve her şey çalışmaya başladı. Bunu düzeltmek için başka bir seçenek de XCode tarafından hangi .entitlement'lerin kullanıldığını değiştirmektir. Bu, Derleme Ayarları -> İmzalama -> Kod İmzalama Yetkileri yapılandırma parametresinde yapılabilir.

XCode'da neden iki .entitlements dosyası olduğundan emin değilim. Cordova push eklentisi ikincisini yaratmış olabilir mi (hibrit bir cordova mobil uygulaması geliştiriyorum)? Ve .entitlements dosyası için doğru konum nedir?


-1

Bu sorunu yaşadım ve ilk çözümle çözdüm.

Ancak, oturum açmış iki elma hesabım olduğu için bir kez başarısız oldum. Birini çıkardıktan sonra her şey işe yaradı.

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.