unityでAmazonSNS経由でFCM使ってPUSH通知しようとしたら激ハマリしたでござるの巻 ログを見よう編
試行錯誤の中で参考にしたログなど。
Unity側登録時のRegID(registration Id)の確認
regIDの確認は実機デバッグで確認した。
サンプルのGCM.csの116行目、regIDこれが空でうまく取得できていなかった。
実機をデバッグモードでつなぎ、VisualStudioCommunity2015を起動し、
Debug->Attach Unity Debuggerを選択
machineにつないだデバイスが表示される。このときややタイムラグがあるのでやや注意。
慌てず待つべし。
RegIDがNULLの場合、FCM(GCM)周りの設定が間違ってないか確認すべし
AmazonSNS側のログ
AmazonSNSkのコンソールから
Applications->ARNを選択->Platform Application action->Delivery status
Create IAM rolesを選択
IAM roleを作成し、設定を保存すると、配信後
Cloud watch のログから配信ステータスを確認できるようになる。
参考
[Amazon SNS] 配送ステータスが CloudWatch で確認できるようになりました! | Developers.IO
端末側確認
通知が端末まで来ているものの、androidmanifestが間違ってると、
何も表示されない。
コマンドラインからadb logcatで端末のログを確認
V/NotificationService( 774): pkg=pkg.hogehoge.com canInterrupt=false intercept=true
こんな感じでログが出ていれば端末までは届いている
その後にActivity見つからないよとかIntentないよとか言われている場合は
AndroidManifestを確認すべし
実際、GCMBroadcastReceiverの
GCMが大文字なのに"Gcm"と書いてて引っかかった・・・まぁ、探すの大変だった・・・
ステータスバーの通知を押してもIntentが起動しない
こちらもAndroidManifestの問題だった。
サンプルのAndroidManifestではUnityPlayerNativeActivityのみ記載があるがこれではだめ。
UnityPlayerProxyActivity、UnityPlayerActivityなども追記したら動いた。
このへんはUnity側のバージョンアップと関係していそう。
タイトル変えられない
Java側ソースを見ると