14

Sto utilizzando il server phns apns fornito allo https://code.google.com/p/apns-php/.APNS: token non valido (8)

Ho impostato il certificato di notifica push ma il mio codice genera ancora un errore durante la connessione.

Cosa c'è di sbagliato in questo? Ecco come ottenere il token dispositivo:

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken { 

#if !TARGET_IPHONE_SIMULATOR 

    // Prepare the Device Token for Registration (remove spaces and < >) 
    NSString *deviceToken = [[[[devToken description] 
           stringByReplacingOccurrencesOfString:@"<"withString:@""] 
           stringByReplacingOccurrencesOfString:@">" withString:@""] 
          stringByReplacingOccurrencesOfString: @" " withString: @""]; 
    NSLog(@"%@", deviceToken); 

#endif 
} 

Questo è l'errore quando ho eseguito il mio server:

Sat, 11 May 2013 13:37:53 -0700 ApnsPHP[18198]: INFO: Trying 
ssl://gateway.push.apple.com:2195... 
Sat, 11 May 2013 13:37:54 -0700 ApnsPHP[18198]: INFO: Connected to ssl://gateway.push.apple.com:2195. 
Sat, 11 May 2013 13:37:54 -0700 ApnsPHP[18198]: INFO: Sending messages queue, run #1: 1 message(s) left in queue. 
Sat, 11 May 2013 13:37:54 -0700 ApnsPHP[18198]: STATUS: Sending message ID 1 [custom identifier: abc123] (1/3): 101 bytes. 
Sat, 11 May 2013 13:37:54 -0700 ApnsPHP[18198]: ERROR: Unable to send message ID 1: Invalid token (8). 
Sat, 11 May 2013 13:37:54 -0700 ApnsPHP[18198]: INFO: Disconnected. 
Sat, 11 May 2013 13:37:54 -0700 ApnsPHP[18198]: INFO: Trying ssl://gateway.push.apple.com:2195... 
Sat, 11 May 2013 13:37:54 -0700 ApnsPHP[18198]: INFO: Connected to ssl://gateway.push.apple.com:2195. 
Sat, 11 May 2013 13:37:54 -0700 ApnsPHP[18198]: INFO: Sending messages queue, run #2: 1 message(s) left in queue. 
Sat, 11 May 2013 13:37:54 -0700 ApnsPHP[18198]: WARNING: Message ID 1 [custom identifier: abc123] has an unrecoverable error (8), removing from queue without retrying... 
Sat, 11 May 2013 13:37:55 -0700 ApnsPHP[18198]: INFO: Disconnected. 
+0

Hai utilizzato un profilo di provisioning Ad-Hoc con questa build? Altrimenti un certificato di produzione non funzionerà. – edwardmp

+0

@edwardmp yeah Penso che questo sia il problema. –

risposta

20

La spiegazione più probabile è che si sta inviando una notifica push con un token dispositivo sandbox al server APNS di produzione.

O si sta utilizzando un vecchio token dispositivo che è stato inviato al proprio server dall'app mentre lo si testava nell'ambiente sandbox, oppure l'app è ancora firmata con un profilo di provisioning di sviluppo e continua a ricevere token dispositivo sandbox dal servizio APNS.

La mia risposta presuppone che si stia utilizzando un token dispositivo originato dal servizio APN e non un token fittizio creato dall'utente.

Suggerisco di controllare il profilo di provisioning per vedere quale valore appare per il diritto aps. Ti suggerisco inoltre di cancellare il tuo db da qualsiasi vecchio token del dispositivo.

+0

hmm ... Ora non viene generato un errore che ho modificato nella sandbox ma il mio dispositivo continua a non ricevere la notifica per quanto posso dire. –

+0

@JasonSilberman Che cosa hai modificato esattamente nella sandbox? L'app o il server? Se si sta utilizzando il certificato errato sul server (utilizzando il ceritificate sandbox push per connettersi al server APNS di produzione o viceversa) il dispositivo non riceverà nulla e il server non riceverà alcuna risposta di errore. – Eran

+0

Sto utilizzando il sandbox gateway e il certificato sandbox –

Problemi correlati