Nessuna stringa di autorizzazione "aps-environment" valida trovata per l'applicazione sull'app store


103

Quindi ho questa app chiamata Dripper che ho pubblicato circa un mese fa e poi un aggiornamento un paio di giorni fa. L'aggiornamento ha aggiunto notifiche push e alcune piccole modifiche. L'ho testato con sandbox-apn utilizzando il profilo di sviluppo e le cose hanno funzionato alla grande. Poi sono passato all'apn di produzione e l'ho spinto al test di volo, ancora una volta le cose hanno funzionato perfettamente. Dopo aver immesso l'aggiornamento sul mercato e averlo eseguito, ho notato che non ricevevo nuove registrazioni push sul server. Ho esaminato i registri della console per il dispositivo e ho trovato questo:

4 dic 17:55:15 Ina-touch-it coffco [1210]: registrazione per notifiche remote
4 dic 17:55:15 Ina-touch-it SpringBoard [52]: nessuna stringa di autorizzazione 'aps-environment' valida trovata per l'applicazione 'Dripper': (null). Le notifiche non verranno consegnate.
4 dicembre 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}

Sono un po 'confuso perché pensavo che l'apn di produzione avrebbe funzionato allo stesso modo tra build ad-hoc e app store.

Ecco il mio ID app e i suoi diritti -> http://i.stack.imgur.com/uf4pB.png

Ecco il profilo di provisioning per l'App Store -> http://i.stack.imgur.com/AYOV5.png


Qui viene firmato e caricato -> i.stack.imgur.com/AziCI.png Impostazioni build -> i.stack.imgur.com/j2TFG.png
Jessiah

Risposte:


282

Risolvo questo problema abilitando la funzionalità di notifica push.

Fare clic su .xcodeproj -> Funzionalità -> Abilita notifica push


15
In XCode 8 ho visto un errore in questa sezione che diceva che era necessario aggiungere un file di diritti. Ho cliccato su questo per correggerlo e poi ha funzionato bene.
Pellet

Solo di recente è apparso quando si è iniziato a sviluppare in Xcode 8 e questo lo ha risolto. Grazie!
Kody R.

In precedenza stava lavorando su Xcode 7.3 ma improvvisamente non si registrava su Xcode 8, ma questo ha risolto il mio problema abilitando la funzionalità di notifica push.
Vinod Rathod

Apple decide di nascondere questa opzione da qualche parte nel profondo di Xcode 8.1. Per favore fatemi sapere se qualcuno riesce a trovarlo.
Thomas Sebastian

Non ho ricevuto l'opzione "Notifica push" nell'elenco delle funzionalità. Aveva qualcosa a che fare con il fatto che XCode stava generando automaticamente il mio profilo di provisioning (sono nuovo per iOS dev quindi potrei sbagliarmi ...). Ho dovuto accedere al mio account sviluppatore e creare manualmente un profilo di provisioning per la mia app prima di visualizzare le notifiche push nell'elenco delle funzionalità. Infine, abilitandolo ha risolto questo problema.
Max Mumford

103

Ho risolto questo problema in questo modo:

  • Vai a "Preferenze" di Xcode
  • Vai alla scheda "Account"
  • Seleziona il mio ID Apple e fai clic su "Visualizza dettagli"
  • Fare clic sulla freccia nell'angolo inferiore sinistro per aggiornare
  • Fai clic su "Fine"

E prova ancora!

Fonte:


6
quindi dovresti selezionare il profilo di provisioning corretto in Build Setting
Hashem Aboonajmi

2
Nel mio caso avevo bisogno di rigenerare i profili di provisioning nel centro di sviluppo. Quindi scarica nuovamente tutti i profili e certificati tramite Xcode> preferenze> Account> il tuo ID Apple> pulsante Visualizza dettagli nell'angolo destro> pulsante Scarica tutto. Dopodiché dovrebbe funzionare di nuovo.
blackjacx

2
Trovo triste che ci siano così tanti problemi nel processo di push e deployment. L'unico modo in cui posso tollerare tutto ciò è fare tutto manualmente al 100% e sapere cosa sta tentando di fare Xcode e gestire le identità del portachiavi e i profili di provisioning sul file system e tramite l'utilità di configurazione di iPhone.
Tom Pace

57

È necessario abilitare Target—> funzionalità—> notifica push. Ho affrontato questo problema utilizzando Xcode 8.inserisci qui la descrizione dell'immagine


18

Tali problemi sono dovuti al fatto che il profilo di provisioning corrente non contiene informazioni APNS, poiché il profilo di provisioning viene creato PRIMA di creare il certificato APNS.

Pertanto, per risolvere il problema, creare un nuovo profilo di provisioning e selezionare il profilo di provisioning in Xcode. Allora sei FATTO.

Inoltre, quando aggiungi push, credo che tu abbia aggiornato anche i certificati nel portachiavi.


Il profilo che sto utilizzando è stato creato dopo aver creato il certificato per l'APN push di produzione. C'è qualcosa che posso fare per confermare che manca o contiene le informazioni APN?
Jessiah

@Jessiah: No .. È come se dovessimo seguire le orme fornite da Apple.
Fahim Parkar

6

Per quanto riguarda Xcode 9, alcune delle risposte sono obsolete o incomplete per risolvere questo problema specifico.

Ecco i passaggi da seguire per me:

1. Creare il profilo di fornitura

( FCM non è un prerequisito per la notifica push ma le loro guide sono sorprendentemente chiare, ecco il link )

Per testare la tua app durante lo sviluppo, devi disporre di un profilo di provisioning per lo sviluppo per autorizzare i tuoi dispositivi a eseguire un'app non ancora pubblicata sull'App Store.

  1. Passa all'Apple Developer Member Center e accedi.
  2. Accedi a Certificati, Identificatori e Profili.
  3. Nel menu a discesa nell'angolo in alto a sinistra, seleziona iOS, tvOS, watchOS se non è già selezionato, quindi vai a Profili di provisioning> Tutto.
  4. Fare clic sul pulsante + per creare un nuovo profilo di provisioning.
  5. Seleziona Sviluppo di app iOS come tipo di profilo di provisioning, quindi fai clic su Continua.
  6. Nel menu a discesa, seleziona l'ID app che desideri utilizzare, quindi fai clic su Continua.
  7. Seleziona il certificato di sviluppo iOS dell'ID app che hai scelto nel passaggio precedente, quindi fai clic su Continua.
  8. Seleziona i dispositivi iOS che desideri includere nel profilo di provisioning, quindi fai clic su Continua. Assicurati di selezionare tutti i dispositivi che desideri utilizzare per il test.
  9. Inserisci un nome per questo profilo di provisioning (ad es. Firebase Sample App Development Profile), quindi fai clic su Genera.
  10. Fare clic su Download per salvare il profilo di provisioning sul Mac.
  11. Fare doppio clic sul file del profilo di provisioning per installarlo.

2. Attivare le funzionalità di notifica push

  1. Vai all'editor del progetto, dal manuale ufficiale inserisci qui la descrizione dell'immagine
  2. Nella sezione delle funzionalità, attiva la notifica push inserisci qui la descrizione dell'immagine

4

Ho avuto lo stesso problema utilizzando iOS 8.0 e versioni successive; Non ho ricevuto il token del dispositivo e stavo dando l'errore: "nessuna stringa di autorizzazione 'aps-environment' valida trovata per l'applicazione"

L'ho risolto utilizzando i passaggi seguenti

  • Ho creato un nuovo profilo di provisioning per l'ID app
  • aggiunto in xcode
  • progetto Vai a Xcode "Preferenze"
  • Vai alla scheda "Account" Seleziona il mio ID Apple e fai clic su "Visualizza dettagli"
  • seleziona il tuo profilo di provisioning
  • Fare clic sulla freccia nell'angolo inferiore sinistro per aggiornare
  • Fai clic su "Fine"

e ora esegui il progetto sicuramente funzionerà.


3

Per qualche motivo la soluzione di Wei non funzionava per me. Quando si fa clic su Correggi diritti, Xcode generava due file e ancora non funzionava, infatti i file di diritti generati erano vuoti.

Ciò è stato causato (apparentemente) dal fatto che PRODUCT_NAME del progetto è piuttosto lungo e include spazi e lettere "ä" e "ö". Dopo averlo modificato in una versione breve con lettere solo in inglese, la correzione di Wei ha funzionato correttamente.


1

Mi ci è voluto un po 'per capire cosa causava un errore di autorizzazione per l'ambiente aps non valido. Il problema era che c'erano due file .entitlements nel progetto XCode. Uno è platform / ios //. Entitlements e un altro è platform / ios // Resources / .entitlements e le autorizzazioni appropriate sono presenti nel primo file solo mentre XCode è configurato per utilizzare il secondo. Ho aggiornato manualmente quest'ultimo file e tutto ha iniziato a funzionare. Un'altra opzione per risolvere questo problema è cambiare il file .entitlements utilizzato da XCode. Questo può essere fatto in Impostazioni build -> Firma -> Parametri di configurazione dei diritti di firma del codice.

Non sono sicuro del motivo per cui ci sono due file .entitlements in XCode. Potrebbe essere che il plug-in push di Cordova abbia creato il secondo (sto sviluppando un'app mobile ibrida Cordova)? E qual è la posizione corretta per il file .entitlements?


-1

Ho riscontrato questo problema e l'ho risolto con la prima soluzione.

Tuttavia, ho fallito una volta perché avevo due account Apple collegati. Dopo averne rimosso uno, tutto è diventato funzionante.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.