アプリケーションでデバイストークンを抽出しようとしているときに、大きな不満を感じています。これまでのところ、私は持っています
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//register for push notifications
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];
その後
-(void)application:(UIApplication *)app didRegisterForRemoteNotificationsWith:DeviceToken:(NSData *)deviceToken
{
NSString *str = [deviceToken description];
NSLog(@"%@", str);
}
- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error
{
NSLog(@"Failed to get token, error: %@", error);
}
これが取引です。
私のiOSシミュレーター:
Failed to get token, error: Error Domain=NSCocoaErrorDomain Code=3010 "remote notifications are not supported in the simulator" UserInfo=0x5813d20 {NSLocalizedDescription=remote notifications are not supported in the simulator}
予想通り。
iOS4.2を実行している第2世代のiPodTouchでは、どちらのコールバックも呼び出されません。iOS5.1.1を実行している同僚のiPhone4sでも同じことが起こります
最後に、iOS.5.1.1を実行している別の同僚のiPhone 4では、デバイストークンが「com.apple.mobileconfig」であることが返されているようです...これは非常に奇妙です。
デバイスのアプリで通知が有効になっていることを確認しました。また、アプリ識別子バンドルがxCodeで正しく設定されていることも確認しました。
編集:何が起こったのかわかりませんが、このスレッドを投稿してから数日後、iPhone 4をMacに接続すると、デバイストークンのコールバックがデバッグモードで動作し始め、他のすべてのデバイスでも動作し始めました。プロビジョニングプロファイルにいくつかの変更を加えた(新しいデバイスのUDIDを追加する必要があったなど)ので、何か問題が発生した可能性があります。よくわかりません。
EDIT2: didRegisterコールバックの直前に余分なコロンがあったようDeviceToken
です...