Kindle Fire端末向けにPushを組み込もうとしてADMを実装していましたが、Amazonのマニュアルに従いassetsフォルダにapi_key.txtを作り、いざ実機で動作確認しようとしたところ、
E/ADM: ADM Error INVALID_SENDER – Unable to parse API Key for package [package_name]. Did you forget to embed it?
(お前、api_keyファイル埋め込んでなくね?)
って言われて、登録IDすらろくに取得できずに数時間無駄にしました。
ちなみに環境はWindows10上でAndroidStudio2.xを使っての開発です。
以下、原因と修正内容です。
原因:SecurityProfileのSignatureに入力するMD5が、本番リリース用のKeyStoreFileから取得したMD5だった
そもそもですね、恥ずかしながらKeyStoreファイルなんて自分が用意したものしか知らなかったので、それのMD5が必要なんだとばかり思っていたら、USBデバッグとかでは自動的に用意されたKeyStoreファイルが使われてるんですね。知りませんでした。
修正:debug.keystoreからMD5を取得する
ちなみにうちの環境では「C:\Users\[ユーザー]\.android\debug.keystore」に存在していました。これをkeytoolにかけてMD5を取得し、SecurityProfileに登録してAPI keyを取得するとうまくいきました!
keytoolで指定するaliasは「androiddebugkey」。なのでコマンドラインはこんな感じです。
keytool -list -v -alias androiddebugkey -keystore C:\Users\[ユーザー]\.android\debug.keystore