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側ソースを見ると
unityでAmazonSNS経由でFCM使ってPUSH通知しようとしたら激ハマリしたでござるの巻 下準備編
AmazonSNSにはUnity用のプラグインもあるので簡単かと思ったら、
結構、面倒くさかったでござる。
GoogleのPush通知は最近、GCMから新しくなりFCMと名前が変わっている。
このへんの事情で勘違いした部分もあり、時間かかってしまった。
基本的にはGCMと下位互換あるらしい。
下記、ドキュメントを参考に進める。
AWS Mobile SDK for Unity — Unity Developer Guide
接続サンプルがあるのでこれを入れる。
・ FCM設定
下記参照
チュートリアル (Android) : mobile backendとFCMの連携に必要な設定 | ニフティクラウド mobile backend
送信者 IDをUnity側サンプルのGoogle console projectIDに設定する。
FCM(Firebase console)のServerKeyをamazon snsのCreate Platform applicationのAPI KEYに設定する。
作成した後、Application ARNを
UnityのAndroid Platform Application ARNに設定する。
・Cognitoを設定する
下記、参考に
AWS CLIをAmazon Cognito(UnAuth)で認証して使用する | Developers.IO
MnageFederatedIdentitiesから新規作成する。
cognito側Identity Pool IDをUnity側のIdentity Pool IDに設定する。
IAM(Identity and Access Management)で
できたIAMロールに対して、AmazonSNSFullAccess をアタッチする。
サンプルを起動し登録ボタンを押すと、amazonSNS側に
Applications->ARNクリック
EndpointsにEndpointが増えているはず。
publich to endpointで通知できる
macの/homeにディレクトリ作成
macで開発環境を作ろうとして、/home以下にmkdirでディレクトリを作ろうとしたところ、
下記のようなメッセージが表示された。
Operation not supported
下記に対策が書かれていた。
https://discussions.apple.com/thread/2138336?tstart=0
原因は
/etc/auto_masterの
home auto_home -nobrowse,hidefromfinder
この部分、この一行をコメントアウトし、再起動したら
作成できるようになった。
悪影響や副作用は不明・・・
fuelphpのscafold使ってみたら、migrationでtable doesn't existが出たの巻
fuelphpのmigrationでtable doesn't existが出る
scafoldを試そうとして、下記を実行したらエラーになった。
oil refine migrate
エラーは↓な感じ
Uncaught exception Fuel\Core\Database_Exception: Table 'hoge.migration' doesn't exist
結局、原因はわからなかったが、手動でmigrationテーブルを作成したらうまくいった。
他の環境では新規のときに自動で作成してくれたのに・・・
CREATE TABLE IF NOT EXISTS `migration` (
`type` varchar(25) NOT NULL,
`name` varchar(50) NOT NULL,
`migration` varchar(100) NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
scafold自体はすげー便利。CMSなんかはこれで作ると捗りそう。
テンプレートも↓に入ってるので、カスタマイズするとさらに捗るはず。
\fuelphp\fuel\packages\oil\views\scaffolding
整数型はLongです。(MiniJson)
整数型はLongです。(MiniJson)
intにキャストしようとして、半日ハマってた・・・
http://neareal.net/index.php?ComputerGraphics%2FUnity%2FTips%2FJSON%2FMiniJSON
int型はlong型としてあつかわれる
int型はlong型としてあつかわれる
int型はlong型としてあつかわれる
みんなマニュアル/記事はよく読もうな!!!
ansible-playbookでエラー
ansibleでエラーが出た
yumでansible本体を入れた後、
ansible-playbookを叩いたら下記エラーが出た。
Traceback (most recent call last):
File "/usr/bin/ansible-playbook", line 22, in <module>
import pkg_resources
ImportError: No module named pkg_resources
解決法は下記を参照しつつ、
http://ameblo.jp/g-pinchan-new/entry-11813410448.html
で解決
はて、なんでansible本体と一緒に入れてくれんかったのか???
前はこんなエラー出なかったような・・・