2012-01-03 7 views
0

私はAndroidアプリケーションを開発するために2つの異なる環境で作業しますが、SDKごとに異なるMaps APIキーがあります。私は別の場所に1つのdebug.keystoreファイルをコピーしようとしていませんが、開発環境に基づいてファイル内のキーを選択的に置き換える方法があれば好きです。キーはXMLファイルで使用されます(ただし、プログラムで設定する方法が必要です)。開発環境に基づいてMaps APIキーを変更する

答えて

1

antでプロパティ置換えを使用することも、そこにmavenを使用することもできます。ここで

0

MapView constructorにAPIキーを渡して、プログラムで設定することができます。

+0

重要なポイントは設定するのではなく、開発環境に基づいて設定することでした。 – gsingh2011

+0

right @gsingh。マティアスの答えがあなたを助けてくれることを願っています。 – Karthik

2

は、私たちが何をすべきかです:

私たちは、資産/ environment.propertiesという名前のファイルにマップのキーを保持します。デフォルトでは、開発キーが含まれています。アプリケーションの起動時に実行時に、そのファイルからハッシュ値をすべて取得し、そのファイルのキーからマップビューを手動で構築します(APIキーをMapViewコンストラクタに渡すことができます)。

新しいバージョンをリリースするたびに、ビルドシステムは、プロダクションキーを含むenvironment.propertiesに異なるテンプレートファイルをコピーします。このステップは、バージョン管理システム(Gitを使用)を使用して変更を破棄してアプリケーションをビルドすると元に戻されます。それはすべて自動です。

これまでのところ非常にうまくいきました。

+0

これは最善のアプローチのようです - 記事や例はありますか?このような設定をして、既存のIDEで動作させることは、かなり文書化されていないように思えます。私はAntに慣れていません。 –

+0

私は実際には、ビルドセットアップに関するブログ記事を書くことを考えていました。なぜなら、これはかなり複雑になっていて、他の多くの問題も解決しているからです(上流プロジェクト、JAR、 Androidライブラリープロジェクト、解析用のバイトコードインジェクション、バイトコード最適化用のProGuard、公開用などの構成固有のAPKに自動的に分割するなど)。私はMavenを使っていますが、ある時点ですべてをGradleに移植しようとしています(現時点ではあまりにも不安定です)。 – Matthias

+0

私は実際にはMavenに多くの経験はありません。私たちがやっていることのいくつかはMaven-ishではないと思います。たとえば、GMavenを使用してGroovyベースのビルドヘルパーに手を差し伸べると、より複雑なMaven-resources-pluginを扱う代わりにファイルを作成してコピーします。 – Matthias

2

マップキーで複数の証明書を登録して、複数のキーを使用する必要がなくなりました。 https://stackoverflow.com/a/13881624/1433372

"例:45:B5:E4:6F:36:AD:0A:98:94:B4:02:66:2Bを1つのSHA1証明書のフィンガープリントとパッケージ名(セミコロンで区切ってください) :12:17:F2:56:26:A0:E0; com.example 45:B6:E4:6F:36:AD:1A:98:94:B4:02:66:2B:12:17:F1: 56:26:A0:E0; com.example "

関連する問題