始めに
Facebook SDKを使ったアプリを作って、いざAndroid marketにリリースしたらなぜかFacebook周辺が全くうごかなくなった・・・・
ということがあって解決にかなりの時間を使ったのでメモります。
状況
自分の手元のEmulator, 実機では普通に動く。
但し、Google MarketからDLしたものは全く動かない。
デバックのときは普通に動くのでエラーの原因を探すのが凄い大変でした。
大量のLogを加えて、もう一回Marketにリリースした後にDLして、その実機をEclipseに繋いだ状態で起動・・・・的なことをしました。
その結果得たエラーコードは
UnknownError: ApiException:Key hash BGyx5d0rMOuY9aQqZK4B9q04+no does not match any stored key hashes
です。
まあエラーコード分かったのであとは調べるだけ
解決法
原因としてはDebug用のKey HashesをFacebook Developperに書いていたってことです。
そもそもDebug用のHash keyとRelease用のHash keyは違うんですね。Release用のHash KeyはApplication毎に個別に設定しなくてはならないんです。
Release用のHash KeyはApplication毎に個別に設定しなくてはならないんです。
大事なことなので2度書きました。
Key Hashに必要なのは
ターミナルでこのコマンドを叩いてください
# Macの人
$ keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64
# Windowsの人
$ keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64
コレを叩くとALIAS Keyのpasswordを聞かれるんで答えてください。
すると表示されます。
手に入れたKeyをFacebook Developprの自分のKeyのところに追加してください。これでちゃんと動くはずです。
感想
Doucumentには普通に書いてあることです。
反省しました。
参考
本家該当ページ
https://developers.facebook.com/docs/android/getting-started/
Stack over flow
http://stackoverflow.com/questions/11615825/hash-key-facebook-api-android-for-release-mode-not-debug-mac-os