ここでは、Google から API キーを取得する方法とその簡潔な概要を説明します。
コンパイル済み Android アプリケーションで Google マップを使用するには、Google から API キーを取得する必要があります。そうしないと、
Maps コントロールタイプまたは
Geolocation ドメインを使用したときにマップが表示されません。
注:
Knowledge Base Navigator を使用してアプリケーションのプロトタイプを行う場合は、Knowledge Base Navigator に独自の Maps API Key があるため、Google から API キーを取得する必要はありません。
既定では、生成されたアプリケーションは、コンパイル時に既定の Android デバッグ証明書を使用して
アプリケーションに署名します。
そのため、
*.apk ファイルを使用してアプリケーションをデバイスに直接インストールすることはできますが、カスタム証明書を作成しない限り
Google Play からインストールすることはできません (
GeneXus 15 Upgrade 2 以降)。
ただし、Google マップサービスを使用するには、
Map API キーと呼ばれる
特別な証明書が必要です。この証明書は以前のものとは異なります。アクセスを制限するため、このキーは特定の
パッケージ名と前述の証明書にリンクされています。
ここでは、アプリケーション用にキーを取得する方法を説明します。
まず、アプリケーションに署名する証明書のフィンガープリントを取得する必要があります (GeneXus から提供されるデバッグ証明書を使用してプロトタイプを行う場合は不要です)。
このフィンガープリントを確認するには、Android が提供するキーストアを使用して、次のコマンドを実行します。
keytool -list -v -keystore <リリースキーのキーストア> -alias <エイリアス名> -storepass <ストアのパス> -keypass <キーのパス>
入力値の説明:
|
値 |
説明 |
既定 (Android アプリケーション署名) |
|
<リリースキーのキーストア> |
*.keystore ファイルのパスで、値は [ Key Store File ] プロパティで設定します。 |
C:\Users\<ユーザー>\.android\debug.keystore |
|
<エイリアス名> |
*.keystore ファイルのエイリアスで、値は [ Key Alias ] プロパティで設定します。 |
androiddebugkey |
|
<ストアのパス> |
*.keystore ファイルにアクセスするためのキー ストア パスワードで、値は [ Store Password ] プロパティで設定します。 |
android |
|
<キーのパス> |
特定のキーペアの秘密鍵にアクセスするためのキーパスワードです。 |
android |
このコマンドツールでは、次のような出力が表示されます:
Alias name: androiddebugkey
Creation date: Dec 01, 2016
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate [ 1 ] :
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: ********
Valid from: Mon Jan 01 08:04:04 UTC 2013 until: Mon Jan 01 18:04:04 PST 2033
Certificate fingerprints:
MD5: AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6A:AC:F9
SHA1: 5F:BD:E1:6B:93:D6:5A:01:D2:C2:43:04:DD:2D:3D:93:A9:AD:C8:E8
Signature algorithm name: SHA1withRSA
Version: 3
SHA1 の値はフィンガープリントに対応します。
注: keytool プログラムは、Java JDK の /bin ディレクトリーにインストールされます。
Google API コンソールに移動し、アプリケーション用の新しい API キーを作成します。
このキーを取得するには、次の場所に移動します:
[
API Manager ] > [
認証情報 ] > [
認証情報を作成 ] > [
API キー ]
手順 1 のフィンガープリントを使用して、アプリケーションへの排他的アクセスを追加できます。次に、その方法を示します。
3.1 API キーを選択
手順 2 で作成した API キーの名前をリストでクリックします。
3.2 Android アプリを選択
[
キーの制限 ] セクションで、 [ Android アプリ ] オプションを選択します。
3.3 パッケージ/フィンガープリントを追加
[
パッケージ名とフィンガープリントを追加 ] ボタンをクリックし、フィールドに
パッケージ名と
フィンガープリント (手順 1 で確認したもの) を入力します。
3.4変更を保存
場合によっては、Google Apikey に、次のようないくつかの API を有効にする必要があります: Geolocation API、Directions API、Maps Static API など。
最後に、
[ Android Maps API Key ] プロパティに Google API コンソールの値を設定します (警告アイコンが表示されなくなったことを確認してください)。
注:
以前の既定の設定を使用した本番運用のアプリケーション (Artech 資格情報で署名された
*.apk ファイル) がある場合は、レガシーの値を使用してフィンガープリントを生成する必要があります。
Google マップ: クイックスタート
Google マップ: API キーの取得