web-dev-qa-db-ja.com

OneSignalによるプッシュ通知:「プッシュトークンなし」とはどういう意味ですか?

プッシュ通知に OneSignal を使用しています。

サブスクライブされたリストでは、一部のデバイス/ユーザーはNo (No Push Token)でマークされています。説明によると:This user has no Push token and cannot be targeted.

それはiOS devicesおよびAndroid devices

どういう意味ですか?なぜそれが起こるのですか?それを変更する方法は?

12
user6465101

「プッシュ通知」機能がオンになっているかどうかを確認できますか?そうでない場合は、電源を入れて動作するかどうかを確認します。動作しない場合は、読み続けてください。

OneSignal SDKの最新バージョン( 2.1.14 )を実行していることを確認してください。このバージョンでは、問題が解決されているはずです。次に、次の修正を試してください。

修正1

ナビゲーションパネルから、一番上の青いプロジェクトを選択します。次に、ターゲットを選択して、ビルド設定に移動します。他のリンカーフラグを検索し、次のエントリを追加します。-ObjC

プロジェクトをクリーンアップして再実行し、機能するかどうかを確認します。

修正2

ブリッジヘッダー(ある場合)、またはアプリデリゲートに表示されるヘッダーファイルで、次のインターフェイスメソッドを定義するOneSignalクラスの拡張機能を作成します。

+ (void)didRegisterForRemoteNotifications:(UIApplication*)app deviceToken:(NSData*)inDeviceToken;

次に、アプリデリゲートのdidRegisterForRemoteNotificationsデリゲートメソッドをオーバーライドし、OneSignalで上記のメソッドを呼び出して、両方のパラメーターをSDKに渡します。

1
Joe

これは、OneSignalがデバイスからpushTokenを取得しなかったが、デバイスがOneSignalアカウントに登録できたことを意味します。 iOSではpushTokenはデバイストークンと呼ばれ、AndroidではこれはGoogleの登録IDです。

使用しているOneSignalSDKに応じて、OneSignalinitを呼び出してログを追加する前に呼び出すことができるsetLogLevel関数があります。これは、iOSの場合はXcodeログに、Androidの場合はadblogcatに出力されます。また、最後のOneSignalSDKを使用していることを確認してください。

ログイン中にページ下部のヘルプバブルからOneSignalに連絡することもでき、アカウントをチェックして問題の診断に役立てることができます。

1
jkasten

バージョン2.1.10までのXCode8で使用した場合にOneSignalSDKにかなり重大な欠陥があり、Cocoapodsを使用してパッケージを含めるときにiOSデバイスのこれらのNo Push token登録が発生したことに注意してください(推奨されるアプローチ)。ポッドを更新してください。

2.1.11のリリースノート を参照してください。

OneSignalがCocoaPodsを介してダウンロードされ、-ObjCフラグを使用する他のポッドが含まれている場合に発生する2.1.10の「プッシュトークンなし」の問題を修正しました。

1
Mick Byrne

Xcodeプロジェクトで 「プッシュ通知」および「リモート通知」 が有効になっていることを確認してください。

1
nunoarruda

他の回答が述べたように、CocoaPodsセットアップの2.1.10にはバグがあります。だから私は変わった

から

pod 'OneSignal' ## points to 2.1.10

pod 'OneSignal', :git => 'https://github.com/OneSignal/OneSignal-iOS-SDK.git', :branch => 'master'
0
dichen