14

https://code.google.com/p/apns-php/で提供されている apns php サーバーを使用しています。

プッシュ通知証明書をセットアップしましたが、接続時にコードがまだエラーをスローします。

これの何が問題なのですか?デバイストークンを取得する方法は次のとおりです。

- (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.
4

1 に答える 1

26

最も可能性の高い説明は、サンドボックス デバイス トークンを含むプッシュ通知を本番 APNS サーバーに送信していることです。

サンドボックス環境でアプリをテストしているときにアプリからサーバーに送信された古いデバイス トークンを使用しているか、アプリがまだ開発用プロビジョニング プロファイルで署名されており、APNS サービスからサンドボックス デバイス トークンをまだ受け取っています。 .

私の答えは、自分で作成したダミーのトークンではなく、APN サービスから生成されたデバイス トークンを使用していることを前提としています。

プロビジョニング プロファイルをチェックして、aps エンタイトルメントに表示される値を確認することをお勧めします。古いデバイス トークンからデータベースをクリアすることもお勧めします。

于 2013-05-11T23:04:24.350 に答える