14

Używam serwera php na serwerze phon pod adresem https://code.google.com/p/apns-php/.APNS: niepoprawny token (8)

Ustawiłem certyfikat powiadomienia push, ale mój kod nadal generuje błąd podczas łączenia.

Co jest nie tak z tym? Oto jak uzyskać token urządzenia:

- (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 
} 

Jest to błąd, gdy uruchomię mój serwer:

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

Czy korzystasz z profilu administracyjnego Ad-Hoc z tą kompilacją? Poza tym certyfikat produkcyjny nie będzie działał. – edwardmp

+0

@edwardmp tak, myślę, że to jest problem. –

Odpowiedz

20

Najbardziej prawdopodobnym wyjaśnieniem jest to, że jesteś wysłanie powiadomienia push z tokena urządzenia Piaskownica do produkcyjnego serwera APNS.

Albo używasz starego tokenu urządzenia, który został wysłany na serwer przez aplikację podczas testowaliśmy go w środowisku piaskownicy, czy aplikacja jest jeszcze podpisana z profilem rezerw rozwoju i nadal otrzymuje żetony urządzeń piaskownicy z usługi APNS.

Moja odpowiedź zakłada, że ​​używasz tokena urządzenia pochodzącego z usługi APN, a nie jakiegoś fałszywego tokena, który sam utworzyłeś.

Sugeruję sprawdzenie profilu obsługi, aby zobaczyć, jaka wartość będzie widoczna dla uprawnienia do aps. Proponuję również wyczyścić bazę danych z dowolnego starego tokena urządzenia.

+0

hmm ... Teraz nie zgłaszam błędu, który zmieniłem w piaskownicy, ale moje urządzenie wciąż nie otrzymuje powiadomienia, o ile wiem. –

+0

@JasonSilberman Co dokładnie zmieniłeś w piaskownicy? Aplikacja lub serwer? Jeśli używasz niewłaściwego certyfikatu na serwerze (przy użyciu certyfikatu push piaskownicy w celu połączenia z produkcyjnym serwerem APNS lub odwrotnie) urządzenie nie otrzyma niczego, a serwer nie otrzyma żadnej odpowiedzi o błędzie. – Eran

+0

Używam bramy piaskownicy i certyfikatu piaskownicy –

Powiązane problemy