デバイストークンが登録されない(iOSの場合)
1. iOS10で許可ダイアログの拒否を選択している
iOS10 の端末で、許可ダイアログの拒否を押しますと、下記メソッドが呼ばれず、デバイストークンが取得されません。
- (void) application:(UIApplication* )application didRegisterForRemoteNotificationsWithDeviceToken:(NSData* )deviceToken
2. Xcode8で、capability で Push Notification を ON にしていない
Xcode8の設定については 【Xcode8】CapabilitiesのPushNotificationsの設定について をご参照ください。
3. Growthbeat SDK 2.x.x で setDeviceToken をしていない
Growthbeat SDK 2.xではGrowth Push initializeメソッドを読んだ時点でデバイストークン「NULL」で端末の登録が行われます。requestDeviceTokenの実装を行わないと、OSからデバイストークンが取得されません。また、setDeviceTokenを行わないと、Growth Pushにデバイストークンが送信されません。
4. その他
アプリのUIApplicationDelegateの実装クラスに、application:didFailToRegisterForRemoteNotificationsWithError: メソッドを実装して、何が出力されるかご確認してください。
- (void) application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error { NSLog(@"error: %@", error); }
例えば、iOS シミュレーターで実行した場合、下記のようなプッシュ通知が利用できない旨のエラーが出力されます。
error: Error Domain=NSCocoaErrorDomain Code=3010 "remote notifications are not supported in the simulator" UserInfo=0x8535c10 {NSLocalizedDescription=remote notifications are not supported in the simulator}
多くの場合下記に該当するエラーが出力されます。
・iOSシミュレータの場合は取得できない。
・アプリがiOS Developer Centerでプッシュ通知が有効にされていない場合は取得できない。
・アプリのProvisioning Profileがワイルドカード証明書の場合は取得できない。