14

Tôi đang sử dụng máy chủ php apns được cung cấp tại https://code.google.com/p/apns-php/.APNS: mã thông báo không hợp lệ (8)

Tôi đã thiết lập chứng chỉ thông báo đẩy thứ nhưng mã của tôi vẫn ném lỗi khi kết nối.

Điều gì là sai với điều này? Dưới đây là làm thế nào tôi có được các thiết bị mã thông báo:

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

Đây là lỗi khi chạy máy chủ của tôi:

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

Bạn có sử dụng hồ sơ cấp phép Ad-Hoc với bản dựng này không? Một giấy chứng nhận sản xuất khác sẽ không hoạt động. – edwardmp

+0

@edwardmp vâng tôi nghĩ đó là vấn đề. –

Trả lời

20

Lời giải thích rất có thể là bạn đang gửi một thông báo push với một mã thông báo thiết bị sandbox đến máy chủ APNS sản xuất.

Hoặc bạn đang sử dụng mã thông báo thiết bị cũ đã được ứng dụng của bạn gửi đến máy chủ trong khi bạn đang thử nghiệm trong môi trường hộp cát hoặc ứng dụng của bạn vẫn được ký với hồ sơ cung cấp phát triển và vẫn nhận được mã thông báo thiết bị hộp cát từ dịch vụ APNS.

Câu trả lời của tôi giả định rằng bạn đang sử dụng mã thông báo thiết bị có nguồn gốc từ dịch vụ APN và không phải mã thông báo giả nào bạn tự tạo.

Tôi khuyên bạn nên kiểm tra hồ sơ cấp phép để xem giá trị nào xuất hiện cho quyền lợi aps. Tôi cũng đề nghị bạn xóa db của bạn khỏi bất kỳ mã thông báo thiết bị cũ nào.

+0

hmm ... Bây giờ nó không phải là một lỗi mà tôi đã thay đổi để sandbox nhưng thiết bị của tôi vẫn không nhận được thông báo như xa như tôi có thể nói. –

+0

@JasonSilberman Chính xác thì bạn đã thay đổi thành sandbox? Ứng dụng hoặc máy chủ? Nếu bạn đang sử dụng chứng chỉ sai tại máy chủ (bằng cách sử dụng chứng chỉ đẩy sandbox để kết nối với máy chủ APNS sản xuất hoặc ngược lại), thiết bị sẽ không nhận được bất kỳ thứ gì và máy chủ sẽ không nhận được phản hồi lỗi nào. – Eran

+0

Tôi đang sử dụng cổng sandbox và chứng chỉ sandbox –

Các vấn đề liên quan