Xcode 4.3'te "uygulama için geçerli 'aps-çevre' yetkilendirme dizesi bulunamadı" nasıl düzeltilir?


153

Anlık bildirimleri alabilecek basit ve basit bir iOS uygulaması oluşturmak için çok çalışıyorum. Bunu yapmamın tek nedeni, diğer bazı ekip üyelerinin kullanması için bir prosedür oluşturmak ve web'de başka bir yerde bu tür talimatların güncel bir sürümünü bulamamaktır. Mağazamız iOS dev için oldukça yeni, kişisel olarak iOS dev ve Xcode ile tamamen deneyimsizim. Apple'dan ve başka yerlerden onlarca öğretici, makale ve sorunlu mesajla karşılaştım ve neredeyse orada olabileceğimi hissediyorum ...

İşte yapmam gereken yer (Xcode 4.3 kullanıyorum ve başlangıçta yalnızca iOS 5.1'e dağıtmaya çalışıyorum ve bazı şeylerin son zamanlarda Xcode'un önceki sürümlerine göre değişmiş olabileceğini unutmayın, ancak yine herkes için yeniyim bu - ve tamamen kafa karıştırıcı ve kıvrımlı bulmak):

1) iPhone'umda Push özellikli bir ön hazırlık profilim var

2) Test Xcode projemde imzalama kimliği olarak bu sağlama profilini seçtim (Yapı Ayarları> Kod İmzalama'da)

resim açıklamasını buraya girin

3) Özet ve Bilgi> Özel iOS Hedef Özellikleri'nin altında düzgün bir şekilde ayarlanmış paket tanımlayıcım var * (Sanırım ??)

4) Temsilcimin didFinishLaunchingWithOptions içinde aranan registerForRemoteNotificationTypes var

5) Temsilcimde didRegisterForRemoteNotificationsWithDeviceToken ve didFailToRegisterForRemoteNotificationsWithError var, sırasıyla cihaz belirtecini veya hatasını günlüğe kaydetmek için ayarlandı

6) Özet altında Yetkileri Etkinleştir seçeneğini işaretledim.

7) Seçilen Yetki Dosyasının hemen altında, Yetki Verileri Etkinleştir seçeneğini işaretlediğimde otomatik olarak oluşturulan Tinker6 (test projemin adı)

8) Tinker6.entitlements dosyasında aşağıdakileri aldım (topladığım, web üzerindeki birkaç farklı gönderiye göre doğru, ancak Apple'ın kendisinden kesin bir şey bulamadım):

resim açıklamasını buraya girin

Güncellenmiş

9) Ayrıca, her şeyi bir yetki dosyası olmadan denedim ve aslında aynı sonucu aldım.

10) Mobileprovision dosya içeriklerim yetkileri düzgün bir şekilde içeriyor (Numara ve alan adını karıştırdım, ancak yapısal olarak aynı):

<key>application-identifier</key>
<string>12355456A7.com.whatever.tinker</string>
<key>aps-environment</key>
<string>development</string>
<key>get-task-allow</key>
<true/>
<key>keychain-access-groups</key>
<array>
    <string>12355456A7.*</string>
</array>

/ güncellemeyi bitir

Bunu cihazımda çalıştırmayı denediğimde, Xcode çıktısında aşağıdaki hatayı alıyorum:

2012-06-11 12:45:23.762 Tinker6[13332:707] Failed to get token, error: 
Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' 
entitlement string found for application" UserInfo=0x24a3b0 
{NSLocalizedDescription=no valid 'aps-environment' entitlement string 
found for application}

Get-task-allow ayarlamayı denedim, üretime aps ortamı, dört olası kombinasyon, aynı şey.

Bunu nasıl aşabilirim? Bu konuda kesin belgeler nerede?

- daha fazla bilgi -

* Paket kimliğine göre, bunun Hazırlık profilindeki Uygulama Kimlikleri ve Profil kimlikleri ile ilgili olarak nasıl ayarlanması gerektiği konusunda hala net değilim. Uygulama Kimlikleri altındaki Temel Hazırlık portalında bu var (yine sayı ve etki alanını karıştırdık):

resim açıklamasını buraya girin

Ve iki yer demeti kimliği ayarlanır Bende:

resim açıklamasını buraya girin resim açıklamasını buraya girin

Bunların doğru olduğundan veya bir veya her ikisinin 12355456A7.com.whatever.tinker olarak ayarlanıp ayarlanmayacağından emin değilim, ancak bu işlemi daha önce başarılı bir şekilde denemedim ...

Not Benzer başlıklara sahip birçok yazı olduğunu fark ettim, ancak bunların hepsi dosya adlarına ve verilen bilgilere göre güncelliğini yitirmiş gibi görünüyor ve çözümlerin hiçbirinin yararlı olmadığı gerçeği. Verdiğim daha fazla ayrıntı düzeyinin kaliteli bir yanıt vermesini umuyorum. Muhtemelen en kısa zamanda bir ödül atayacağım ve bir çözüme götüren yüksek kaliteli bir cevap verirseniz, size ödül vereceğim ve cevabınızı twitter ve blogum aracılığıyla teşvik edeceğim. Özellikle çapraz posta gönderirseniz gerçekten iyi bir " blogunuza ya da her neyse" provizyon ve başka herhangi bir şey de dahil olmak üzere çalışma basit bir push bildirim uygulaması almak için gereken tam 500 adım vardır.

Yanıtlar:


94

app IDFor push uygulamasını yapılandırmadan önce ön hazırlık profilinizi oluşturduysanız, ön hazırlık profilini yeniden oluşturmayı deneyin.

iOS Temel Hazırlık Portalı -> Temel Hazırlık -> Sertifikanız -> DÜZENLEME -> Düzenleme yapın -> Yeni temel hazırlık indirin

Benim için çalıştı. Şimdi push'u kullanabiliyorum.


"ön hazırlık profilini yeniden oluşturma" nın tam olarak neyi içerdiği konusunda daha açık olabilir misiniz? Bu, XCode'da Temel Hazırlık Portalı'nda bir adım mıdır? Teşekkürler!
jwl

2
Portalda. Basitçe bir cihaz ekleyin veya kaldırın, temel hazırlığınız oluşturulur. Bundan sonra, çift tıklayın ve anahtarlığınıza takın.
elp

Yoğun olduğum için özür dilerim, ancak bunu Cihazlar'ın altına ekler / kaldırır mısınız? Ya da söz konusu gerçek Hazırlık Profilinin altında bir yerde ve eğer öyleyse tam olarak nerede?
jwl

Cihaz eklemek veya kaldırmak, provizyonunuzu yeniden oluşturmak için bir numaradır. Push id kullanmak için birini yenilemek gerekir, çünkü uygulama kimliği ve itme sertifika ile bağlantılı ..
elp

69

Her şeyden önce, sağlama profilinde bulunmayan özel anahtar / değer çiftlerini eklemediğiniz sürece, yetkiler dosyasına ihtiyacınız yoktur. Uygulamanız oluşturulduğunda, ön hazırlık profilindeki tüm haklar uygulamaya kopyalanır.

Eksik yetkilerle ilgili bir hata mesajı görmeye devam ederseniz, yalnızca kod imzalama seçeneklerinin derleme ayarlarında doğru olmadığını varsayabilirim.

"Hata Ayıkla" yapılandırması için doğru profilin seçildiğinden emin olmanız ve güvenli olmak için, hem "Hata Ayıkla" hem de "Herhangi bir iOS SDK" etiketli alt düğüm için doğru profili seçtiğinizden emin olmanız gerekir:

resim açıklamasını buraya girin

Bu ekran görüntüsü seçilen "Otomatik Geliştirici" profilini gösterse de, yalnızca test amaçlı olarak açılır menüden istediğiniz tam hazırlık profilini seçin. Xcode otomatik olarak istediğiniz profilden farklı bir profil seçiyor olabilir.

Ayrıca, temiz bir yapı yaptığınızdan, uygulamayı cihazınızdan tamamen sildiğinizden emin olun. Bu, etrafta asılı eski tüylerin olmadığından emin olmak içindir.


Mesajımda # 2 başına, doğrulamak için doğru bir şekilde ayarlanmış olsa da, doğrulamak için net bir ekran görüntüsü ekledim. Ayrıca, uygulamayı tamamen kaldırmayı denedim ve bir öneri için 2 gün boyunca kapalı bırakmayı denedim, bazı bilgilerin sıfırlanmasının bir gün sürdüğünü gördüm (evet, payette yakaladım !?). Ancak "" Hata ayıklama "yapılandırması için doğru profilin seçildiğinden emin olmanız gerektiğinde, tam olarak ne demek istiyorsunuz - bunu nereden seçeceğim?
jwl

"İPhone Geliştiricisi" bölümüne tıklarsanız veya geçerli değer olarak ayarlanmış herhangi bir değeri tıklatırsanız, Xcode'un bildiği tüm temel hazırlık profillerinin bir açılır listesini görürsünüz. Doğru olanın seçildiğinden veya "Otomatik Geliştirici" öğesinin doğru olanı seçtiğinden emin olun. Açılır menü size her şeyi göstermelidir.
Mike Weller

En son ön hazırlık profiline sahip olduğunuzdan emin misiniz? Push etkinleştirilmeden önceki eski bir sürümünüz olabilir mi?
Mike Weller

2
Evet, inanıyorum. Yeni sağlama profilini elde etmek için yaptığım şey, Xcode Organizer'da profili hem Kitaplıktan hem de aygıttan silmek ve ardından Kitaplık ekranında Yenile'yi tıklatmaktır. Bu, Temel Hazırlık Portalı'ndan geri çekildi. Daha sonra bunu cihaza ekledim. Ve yukarıda gösterildiği gibi, mobileprovision dosyası XML ish içeriği doğru hakları gösterir
jwl

3
Ach, özür dilerim. Bir olması gerekir -yolu önce: codesign -d --entitlements - /path/to/my.app. Ayrıca, bu noktada Debug-iphoneos dizininde olup olmadığınızı iki kez kontrol etmeniz de önemlidir, çünkü "Finder'da Göster" bazen sizi yanlış yere götürebilir.
Mike Weller

64

Xcode 8'de bu sorunla karşılaştım. Hedef -> yetenekler -> push bildirimini etkinleştirmeniz gerekir. Ekran görüntüsünü kontrol edin.

resim açıklamasını buraya girin


1
Bu bana yardım !! Sadece bir düğmeye tıklayın ... saatlerce hata ayıkladığım sorunumu çözüyorum ... Xcode8 de.
Veck Hsiao

3
OMG teşekkür ederim! Apple'a gel, bize daha makul bir hata mesajı ver!
Ferran Maylinch

Xcode 8 kapatıldı Uygulamam için push bildirimleri, bu yüzden bu çözüm işe yaradı.
Kevin

1
Teşekkür ederim, bunu bulmadan önce diğer kurulum adımlarını 3 kez yapmış olmalıyım. Kendimi bir aptal gibi hissediyorum, ama aynı zamanda araçların sorun olmasına izin vermenin kötü olduğunu da düşünüyorum.
Collin Flynn

günümü kurtardın dostum!
oskarko

47

En kolay yol, bunu Xcode ile hesaplarınızdan yapmaktır:

Xcode'un üzerine gidin -> Tercihler -> Hesaplar Sekmesini Seçin -> Ayrıntıları Görüntüle -> Sol alt kısımdaki Yenile düğmesine basın -> Tamamlandı.

Tekrar inşa edin ve işe yarayacak.


19

Tamam, problemle daha önce karşılaştım. Anlık bildirim sunucu tarafı uygulaması gerektirdiğinden benim için profili yeniden oluşturmak bir seçenek değildi. Bu yüzden, yeni ön hazırlık profili OLMADAN bu çözümü buldum.

Xcode doğru seçtiğimiz halde doğru hazırlık profilini düzgün seçmiyor.

Önce organizatöre gidin. Cihazlar sekmesindeki Kütüphane listesinden profil sağlama listesinden, kullanmaya çalıştığımız profili seçin. Sağ tıklayın ve ardından "Finder'da Profili Göster" e tıklayın.

resim açıklamasını buraya girin

Açılan Finder penceresinde doğru profil seçilecektir. Adı not edin.

resim açıklamasını buraya girin

Şimdi Xcode> Günlük Gezgini'ne gidin. "Tümü" ve "Tüm Mesajlar" için filtre seçin. Şimdi son aşamada (Hedef Oluştur) "ProcessProductPackaging" adlı adımı genişletin. Yetkilendirme profili adını not edin. Hata alıyorsanız eşleşmemelidirler. resim açıklamasını buraya girin

Şimdi Opened Finder penceresinde Xcode'un kullandığı hileli provizyon profilini silin. Şimdi tekrar inşa et. Hata çözülmelidir. Değilse, kaldırmak için başka bir haydut profili bulmak için işlemi tekrarlayın.

Bu yardımcı olur umarım.


Bu benim hatamdı ama bu yöntemi kullanarak düzeltildi. Yanlışlıkla bilgi kutusuna sertifikayı oluşturduğumdan farklı bir tanımlayıcı koydum.
JavaCoderEx

18

Cevap şuydu: baştan başlayın, her şeyi aynı şekilde yapın, ancak yeni bir ön hazırlık profili oluşturun ve yükleyin. İşe yaradı. Tüm ayrıntıları (mobil hizmetteki yetkiler) incelemek, buradaki sorumdaki her şeyle tamamen aynı görünüyor . Ama şimdi çalışıyor. Apple: NE?

Tabii ki, ön hazırlık profillerini silmek mümkün olsaydı bunu yapmak açık olurdu . Ancak bu mümkün olmadığından, ekibimizi bir grup test profiliyle karıştırmak istemedim. Yine de, sonunda sabrını kaybetti ve yine de denedi ve sonuçlandı. Whatevs.


Yeni bir profil oluşturmak ve eskisini "kirletmek" gibi diğer SO sorusunda benim için çalıştı: stackoverflow.com/questions/5681172/…
scurioni

Tek yapmam gereken mevcut sağlama profilini portaldan silmek ve yeniden oluşturmaktı. Profilleri güncellemeden sonra şimdi silebilirsiniz, böylece yeni bir uygulama kimliği oluşturmanıza gerek kalmaz.
odyth

Aynı uygulama kimliği ve dağıtım sertifikasına sahip yeni ön hazırlık profili sorunu benim için düzeltti. +1 :)
Azik Abdullah

18

Organizatör'deki XCode'dan eski ön hazırlık profilini silin.

Ardından, iOS yetkilendirme portalında aynı paket kimliği için yeni bir yetkilendirme profili oluşturun (push özelliğini etkinleştirdikten sonra).

Yeni temel hazırlık profilini XCode'a aktarın, uygulama oluşturma ayarlarınıza ayarlayın.

İnşa et, koş, işe yarıyor.

Sadece yaptım.

Hatadan başarıya 10 dakika sürdü.


Bu da benim için çalıştı. Eski ön hazırlık profilini düzenlemek ve indirmek benim için işe yaramadı. Teşekkürler!
prageeth

Yararlı bir ek olarak, yeni bir ön hazırlık profili almak yerine, eskisini silebilirdim
16'da ritmatter

1
Çok elle yapmamanızı tavsiye ediyoruz. Github.com/fastlane/PEM kullanın .
fatuhoku

16

XCode 6.1.1 ve birden çok apple geliştirici hesabı

Bu zaten oldukça kapsamlı karışımın bir başka cevabı: Bugün bu sorunla tekrar karşılaştım ve bu sefer birden fazla elma hesabım olmasıydı. Önce XCode> Tercihler> Hesaplar> + 'ya 2. geliştirici hesabını eklemem gerekiyordu

Anlık Bildirim Özelliğinin AÇIK olduğundan emin olun

Daha sonra uygulamada aslında Uygulama İçi Satın Almayı etkinleştirmem gerekiyordu (bunu daha önce yapmam gerekmiyordu). XCode> (uygulama penceresi)> Hedefler> Yetenekler> Uygulama İçi Satın Alma AÇIK (ve bu aşamada doğru sertifikayı seçme seçeneği verildi)

Push özellikli sertifikayı Finder'da çift tıklayarak zaten eklediğimi unutmayın.

resim açıklamasını buraya girin


Başımı bu konuda raftaydı, sanırım Xcode 8 beta'ya geçtiğimde push bildirimleri anahtarımı falan kapattı. Teşekkürler
INVINCEable

Teşekkürler, bu yüzden bu sorunu yaşadım. Uygulama kimliğim uygulama içi satın alma, oyun merkezi vb. İçin etkinleştirildi, ancak Xcode / yeteneklerinde hepsi daha önce kapatıldı, sorun değil. Xcode 8'e güncellendiğinden beri bu sorunu yaşıyorum. Xcode'da IAP ve oyun merkezini etkinleştirdikten sonra sorun ortadan kalktı!
Ethan Long

11

(Xcode 5) Bir saat geçirdikten sonra sorunumu çözdüm. Hazırlık dosyasını Xcode 5'te yeniden oluştursanız bile, hesabınızı manuel olarak güncellemeniz gerekir. Yalnızca Düzenleme sekmesinde işe yaramayan sağlama dosyasını değiştirdim, Xcode eski sağlama dosyasıyla oluşturmaya devam etti.

Öyleyse git

Xcode> Tercihler> Hesaplar> Ayrıntıları Görüntüle (Hesabınızı seçin)

Ardından temel hazırlık dosyalarınızı yenileyin.


7

Benim sorunum sadece Xcode tarafından yönetilen joker karakter ön hazırlık profili ile imzalamak oldu.

Uygulamaya özel bir profil oluşturduktan (ve indirdikten, çift tıkladıktan ve Oluşturma Ayarlarımın buna yönlendirilmesini sağladıktan) sonra, başarıyla bir APNS cihaz belirteci aldım.


Ben de bu sorunu yaşadım. Xcode 5, ön hazırlık profillerini güncelleme konusunda oldukça iyidir. APNS hizmetini daha sonra geliştirmeye ekledim. Yukarıdaki poster, ön hazırlık profilinizin aslında üzerinde çalıştığınız uygulamaya özgü ve joker bir profil olmadığına işaret ettiğinden emin olmalısınız.
Michael

@Michael, bundan nasıl emin olabilirsin? Şu anda yok olarak ayarlanmış benim yapı ayarları (Kod İmzalama altında) değiştirmeyi denedim. Ne zaman doğru profili seçin ve yapı, bir hata ile gelir ve sonra joker sağlama profiline geri döner.
Ian Jamieson

@ian hangi hatayı alıyorsunuz? Bunun geçerli bir profil olduğundan emin misiniz?
Michael

Ah, sıraladım, Mac'e doğru sertifikayı yeniden indirmem gerekiyordu. Hile yapmış gibi görünüyor. Teşekkürler.
Ian Jamieson

Duyduğuma sevindim. Ayarlar doğru göründüğünde genellikle yaptığım şey budur. Tüm sertifikaları yeniden yap. Sorun daha fazla değil gibi görünüyor.
Michael

6

Ben aynı sorunu herkes vardı ve yukarıdaki tüm hileler denedim, hiçbir şey çalıştı. Hatta farklı bir geliştirici hesabıyla sildim ve yeni başladım.

Sonunda benim için işe yarayan şey

  1. Yukarıda önerildiği gibi yapın ve APP Kimliği oluşturun
  2. Ardından ön hazırlık profili oluşturun
  3. Sağlamanın geliştirme bölümünde ekip joker profilini (xcode one tarafından yönetilen) KULLANMAYIN. Anlık bildirimi etkin hale getirdiğiniz uygulama kimliğini kullanarak ayrı bir tane oluşturmanız gerekir. Bu şekilde geliştirdiğinizde, push bildirme işlevi yerleşik olacaktır.

Bir joker uygulama için bunu etkinleştirip etkinleştiremeyeceğinizi bilmiyorum, ancak en az 12 farklı öneri denedikten ve birkaç gün kaybettikten sonra umarım bu birine yardımcı olur


2
Ancak bu, mevcut tavsiyelere hiçbir şey katmıyor, bu da zaten bu tavsiyeyi veriyor. Açıkçası bir push uygulaması kendi profiline ihtiyaç duyar; dokümanlar, joker karakter profilinin özel yetkilere ihtiyaç duyan hiçbir uygulama için kullanılamayacağı oldukça açıktır.
matt

1
Bunu yaptım, ancak uygulamam sadece joker karakter ön hazırlık profilini seçecek, push bildirimleri etkin olanı seçmeye zorlayamam.
Ian Jamieson

3

Bir ön hazırlık profilinden bahsediyorsunuz ancak Apple Push Profilinden hiç bahsetmiyorum.

Push'u kullanmak için bir push profiliniz olmalıdır (biri geliştirme için diğeri serbest bırakma için iki tane vardır). Oluşturduktan sonra ilgili sertifikaları içerdiğinden emin olmanız gerekir (aşağıdaki DÜZENLEME bölümüne bakın).

Bu, tüm adımlarda size yol gösterecek mükemmel bir öğreticidir:

http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12

Bu öğretici gibi ayrıntılı bir cevap yazmak beni ya da başka birini, saatler ve saatler alacaktı, bu yüzden bu öğretici zaten var olduğunda ödül almaya çalışmayacağım ya da iddiada bulunmayacağım.

PS: Artık yetkilere ihtiyacınız olmadığına inanıyorum, bu eski bir şey.

DÜZENLEME: Ayrıca cihazda gerekli profillerinizin olup olmadığını da kontrol etmelisiniz - ayarlara gidin, ardından genel, profiller, profillerinizin listelendiğini, özellikle de elbette itme profilini kontrol edin. Bunu XCode'un Düzenleyici bölümünden de kontrol edebilirsiniz. Düzenleyici'de, Hazırlık Profilleri yazan iki bölüm vardır - biri Kütüphane'nin sol üst tarafındadır (bu, XCode'da imzalamak için kullandığınız profillerdir.) Ayrıca, bağlı aygıt için Hazırlık Profilleri adlı bir bölüm çağrısı görürsünüz, bu ahizeye yüklenmiş olan profildir. Ahizede yüklü değilse, ön hazırlık portalı web sitesinden indirebilirsiniz, ardından Ajanda penceresinin altındaki Ekle düğmesine tıklayın.

Hazırlama portalındayken Apple Push Profilinin sertifikaları içerdiğini de kontrol etmelisiniz: - soldaki menüde Temel Hazırlık öğesini tıklayın - profilinizin bir listesini göreceksiniz, Apple push profilini DÜZENLEMEK için seçin - göreceksiniz projenizde bulunan geliştiricilerin veya testçilerin vb. listesini içeren bir sertifikalar bölümü için onay kutusunun işaretlendiğinden emin olun. - ayrıca bir aygıtlar bölümü görürsünüz, test ettiğiniz aygıtın eklendiğinden emin olun.

XCode veya cihazda eski profilleriniz varsa bunları silin ve sağlama portalından tüm yeni profilleri indirin / yenileyin / yükleyin


Eğer yetkiler eski bir şeyse, neden hiçbir yetki hakkında şikayetçi bir mesaj alıyorum? Zaten şanssız mektuba bağlı öğretici takip ettim ... teşekkürler.
jwl

Ayrıca, gerçek mobileprovision dosyası hakkında yararlı olabilecek bazı bilgiler ekledim.
jwl

bu doğru, bildirimleri başarılı bir şekilde göndermek için herhangi bir .entitlements bile kurmuyorum. Bunu yaparken beni tetikleyen bir şey, mobil provizyonu manuel olarak indirmem, sonra ayarları indirmeye ve imzalanan kimliğe yeni indirilenle eşleşecek şekilde değiştirmem gerektiğiydi, benim durumumda, Xcode joker kartlı mobil provizyonu seçiyor.
X Slash

Ben de bir süre önce yetkiler hakkında bir hata mesajı aldım, bu kırmızı bir ringa, Mike Wellers yanıtı bakın, bu benim durumumda yaptım.
Gruntcakes

Cevabı kontrol etmeniz için birkaç şey daha güncelledik.
Gruntcakes

2

Ben de aynı sorunu yaşadım. Benim için sorun, ürün adımın ($ TARGET_NAME), apple tarafından sağlanan sertifikada sunulan şekilde büyük harfle yazılmamış olmasıydı. Örneğin, Apple sertifikası com.companyid.apndemo kullanırken com.companyid.APNDemo vardı.

Hedefimi küçük harf olarak değiştirdim ve işe yaradı. Not: Benim için ipucu, Yapı Ayarları'ndaki kod imzalama ayarının varsayılan geliştirici sertifikam olarak ayarlanmış olmasıydı; APNTest ön hazırlık profili değil.


1

Yukarıdaki cevapların çoğu doğrudur. Bununla birlikte, bununla ilgili olarak birden fazla olası hata var gibi görünüyor.

Sahip olduğum tek şey Uygulama Kimliğimdeki büyük harf kullanımı sorunuydu. Uygulama Kimliğim herhangi bir nedenle büyük harfle yazılmadı, ancak uygulamam büyüktü. Uygulama kimliğini doğru büyük harfle yeniden oluşturduktan sonra, sorunsuz bir şekilde çalıştı. Bu yardımcı olur umarım. Yine de sinir bozucu.

PS hala çalışmıyorsa, Kod İmza Kimlik Alanını "düzenle" ile manuel olarak düzenlemeyi deneyin. İkinci satırı, doğru ön hazırlık profil adının adıyla değiştirin.


1

Çözmem saatler sürdü. Birisi, xcode'un kendisini kullanırken imzalamak ve paketlemek için özel komut dosyaları kullandığından, uygulamanızda neyin bittiğini kontrol etmenin yalnızca bir yolu vardır. İle yetkilerinizi dökün

codesign --display --entitlements :- path/to/MyApp.app

ve kontrol edin aps-environmentve application-identifier.


aynı sorunla karşı karşıya kaldım. Sadece sormak istedim, uygulamanın yolu simülatörde yüklü uygulama için mi?
Ajeet

Hayır, xcode derleme dizinindeki gerçek aygıt için derlenen uygulamanın yoludur.
dwery

1

Bu hata, sertifikanızın süresi dolduğunda ortaya çıkabilir.

Çözüm sertifikayı yenilemek ve başvuruyu onunla imzalamaktır.


1

Temel hazırlık profillerinizde ( https://developer.apple.com/account/ios/profile/ ) bir iOS Dağıtım profilinizin bulunduğundan emin olmanız gerekir .

XCode'dan App Store'a yüklediğinizde, yetkilerinizde aps ortamına sahip olduğunuzdan emin olun. Değilse, Hesapları Görüntüle -> Ayrıntıları Görüntüle -> Tümünü İndir öğelerinden indirin.


1

Benzer bir sorunum vardı. Çeşitli nedenlerden dolayı XCode 7 ve 8 arasında zıplıyorum. Bir kez inşa etmek için 8'i kullandığınızda, 8'i kullanmanız gerekir. Sadece Xcode 8'i kullandım ve yukarıda önerilen değişikliklerin bazılarını uyguladım ve işe yaradı.



0

Xcode 4.6'daki 'otomatik' yetkilerle ilgili ilginç bir şey var gibi görünüyor.

Her SDK için bir Entitlement.plist dosyası vardır:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/Entitlements.plist

Geldiğim geçici bir çözüm, bu dosyayı düzenlemek ve gizli aps-çevre anahtarını manuel olarak eklemekti:

<?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>
    <key>application-identifier</key>
    <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    <key>aps-environment</key>
    <string>development</string>
    <key>keychain-access-groups</key>
    <array>
        <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    </array>
</dict>
</plist>

Daha sonra Xcode, aps-çevre anahtarını içeren doğru Xcent dosyasını oluşturur:

/Users/mySelf/Library/Developer/Xcode/DerivedData/myApp-buauvgusocvjyjcwdtpewdzycfmc/Build/Intermediates/myApp.build/Debug-iphoneos/myApp.build/myApp.xcent

Xcode dosyanızın nerede oluşturulduğunu Xcode Günlük Gezgini'ni kullanarak bulabilirsiniz,
"ProcessProductPackaging" öğesini bulun .

Ne yazık ki, sorunu çözdüğümü bulduğum tek yol bu .
(ve sonunda artık itme jetonunu düzgün bir şekilde alabilir)

Sadece daha zarif bir çözüm olup olmadığını merak ediyorum.
Bununla ilgili daha fazla ayrıntı için lütfen SO soruma bakın:
Xcode 4.6 otomatik yetkilendirme çalışmıyor - "geçerli bir ortam yok"


0

AppID'leri / Profilleri silmeden ve yeniden oluşturmadan önce Kütüphane ve Cihazınızda aynı (ve doğru) profillerin kurulu olduğundan emin olun.

Yeni bir bilgisayara geçtikten sonra bu hatayı görmeye başladım. Göçten önce Push doğru şekilde çalışıyordu.

Sorun, (duh) profilleri yeni makinedeki Xcode kütüphanesine içe aktarmamış olmamdı (Düzenleyici / Aygıtlar'da Kütüphane-> Hazırlama Profilleri altında).

Kafa karıştırıcı kısmı, CİHAZIN zaten doğru profillere sahip olması ve yapı ayarlarında beklendiği gibi ortaya çıkmasıydı, bu yüzden her şey orada doğru görünüyordu, ancak XCode KÜTÜPHANESİ bunlara sahip değildi, bu yüzden uygulamayı imzalamaktaydı ... ?? ?


0

Bunu benim için düzeltti. (Yetenekleri açıp kapama, ön hazırlık profilini yeniden oluşturma vb.) 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ü.

resim açıklamasını buraya girin


0

Burada listelenen tüm cevapları denedim ama kimse sorunumu çözmedi. Benim durumumda, bu hata Appid oluşturmadaki aptalca hatamdan kaynaklanıyor. Ben kullanılan Joker Uygulama Kimliğini kullanmak yerine Açık Uygulama Kimliğini soruna neden

Bir uygulamanın uzaktan bildirim almasını istiyorsanız (push bildirimi), com.tutsplus yerine com.tutsplus.push gibi bir Açık Uygulama Kimliği kullanmanız gerekir . *

Lütfen ScreenShot'ı bulun, resim açıklamasını buraya girin

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.