14

https://code.google.com/p/apns-php/에 제공된 apns PHP 서버를 사용하고 있습니다.APNS : 유효하지 않은 토큰 (8)

푸시 알림 인증서를 설정했지만 연결시 오류가 발생합니다.

무엇이 문제입니까? 내 서버를 실행할 때

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

이 오류입니다 : 여기에 내가 장치 토큰을 얻는 방법이다

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

이 빌드에서 Ad-Hoc 프로비저닝 프로파일을 사용 했습니까? 그렇지 않으면 생산 인증서가 작동하지 않습니다. – edwardmp

+0

@edwardmp 예 그게 문제라고 생각합니다. –

답변

20

가장 그럴듯한 설명은 샌드 박스 장치 토큰을 푸시 알림을 보내는 것입니다 프로덕션 APNS 서버로 전송합니다.

샌드 박스 환경에서 테스트하는 동안 앱에서 서버로 보낸 이전 장치 토큰을 사용 중이거나 앱이 개발 프로비저닝 프로필로 서명 된 상태에서 샌드 박스 장치 토큰을받는 중 하나 APNS 서비스에서.

내 대답은 사용자가 직접 만든 더미 토큰이 아니라 APN 서비스에서 비롯된 장치 토큰을 사용한다고 가정합니다.

프로비저닝 프로파일을 점검하여 aps 인 타이틀먼트에 대해 표시되는 값을 확인하는 것이 좋습니다. 또한 이전 장치 토큰에서 데이터베이스를 지울 것을 제안합니다.

+0

음 ... 이제 내가 샌드 박스로 변경 한 오류는 발생하지 않지만 내 장치는 여전히 내가 알 수있는 한 알림을받지 못합니다. –

+0

@ JasonSilberman 정확히 모래 상자로 바꿨습니까? 앱이나 서버? 서버에서 잘못된 인증서를 사용하는 경우 (sandbox push certit를 사용하여 프로덕션 APNS 서버에 연결하거나 그 반대의 경우) 장치는 아무 것도 수신하지 않으며 서버는 오류 응답을받지 않습니다. – Eran

+0

샌드 박스 게이트웨이와 샌드 박스 인증서를 사용하고 있습니다. –