0

このアプリがこのデバイスにインストールされたのはこれが初めてであり、プッシュ通知に登録されたことはありませんが、要求を拒否します。次のコードを使用していますが、プロジェクトをクリーンアップし、派生データを削除し、デバイスにアプリをアンインストールして再インストールしても、プッシュ通知を受信するかどうかを尋ねられることはありません。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [[UIApplication sharedApplication]
     setStatusBarStyle:UIStatusBarStyleBlackOpaque animated:YES];

    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

 // Override point for customization after application launch.
    self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]autorelease];

 [[UIApplication sharedApplication] registerForRemoteNotificationTypes:
     UIRemoteNotificationTypeBadge |
     UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound];

     self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];

    return YES;
}

通知の登録を求められないのはなぜですか?そして、設定で通知を確認しましたが、このアプリはリストされていません。

4

2 に答える 2

1

プッシュ通知はシミュレーターではサポートされていません。これはiOSデバイスでのみ試すことができます。

  1. appIDのiOSプロビジョニングでプッシュ通知が有効になっていることを確認してください。

  2. Entitlements plistには、開発時の文字列としてのキーaps-environmentと値、およびAppStoreに送信する直前またはADHOC証明書で署名する前の値を含める必要があります。developmentproduction

プッシュ通知に登録したことを確認するには、コードにこれを含めて、機能しているかどうかをテストします

(void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken
{
NSString *token = [[devToken description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<> "]];
NSLog(token);
}

これが機能しない場合は、このチュートリアルを試してください。

于 2013-01-25T22:26:14.173 に答える