2011-12-24 23 views
10

私はiOS 5アプリケーションのプッシュ通知をRay Wenderlichのガイド:http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12で実装しようとしています。iOS:プッシュ通知の登録方法

私はAppDelegateの私didFinishLaunchingWithOptionsメソッドに次のように挿入した:私のデバイス上でアプリケーションを実行するとプッシュ通知を受け入れるように私に言って、ポップアップ/警告が表示されていない(シミュレータではない)

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

。私は回線にデバッグポイントを挿入しましたが、registerForRemoteNotificationTypesが呼び出されています。

何も起こりません。

答えて

7

アプリを削除してもう一度やり直してください。そのダイアログは一度だけ表示されます。しかし、そのアプリを再インストールしたときにダイアログが再び表示されるかどうかはわかりません。

あなたの設定アプリに通知センターを開き、あなたのアプリがリストにあるかどうかを確認することもできます。

また、ブレークポイントを追加し、didRegisterForRemoteNotificationsWithDeviceTokenが実行されるかどうかを確認することもできます。

+0

私はデバイスからアプリケーションを削除しようとしましたが、何の成功もありませんでした。アプリは通知センターにはありません。さらに、 'didRegisterForRemoteNotificationsWithDeviceToken'または' didFailToRegisterForRemoteNotificationsWithError'は決して呼び出されません。 – dhrm

+0

正しいBundle Identifierを設定しましたか?ワイルドカードのApp IDを使用していますか? – YuAo

+3

お返事ありがとうございます。問題は、証明書のプッシュ通知を有効にした後にプロビジョニングプロファイルを再生成する必要があることでした。 – dhrm

3

私はこの正確な問題を(同じチュートリアルではあまりありません)、誤ったプロビジョニングプロファイルでコードに署名していました。

具体的には、(私は証明書を2回作成したくないので)私のアプリケーションの "生産"プッシュ通知を有効にしましたが、Xcodeの私のビルド設定では、 "iPhone開発"がデフォルトの "コード署名ID"それはされていたはずの "iPhone Distribution"ではなく、 "Release"。これは私のテストアプリのデフォルト設定のようでした。

うまくいけば、私は同じ問題で時間を無駄にする誰かを止めることができます。

+0

同じチュートリアル、同じ問題。私はデバッグビルドをデバイスに繋いで実行しており、IDにサインインするdevを持っています...「私はプロダクションの "プッシュ通知を私のアプリケーションに有効にしました"と言うと、その意味を詳しく教えてください。 –

1

iOS 8から、これに新しい方法があります。ストレートUIApplication.hから:

- (void)registerForRemoteNotifications NS_AVAILABLE_IOS(8_0); 

アプリケーションデリゲートで呼ばれるようにapplication:didRegisterForRemoteNotificationsWithDeviceToken:またはapplication:didFailToRegisterForRemoteNotificationsWithError:のいずれかになりますこれを呼び出します。

注:これらのコールバックは、アプリケーションがregisterUserNotificationSettings:のユーザー通知に正常に登録されている場合、またはBackground App Refreshが有効になっている場合にのみ行われます。

関連する問題