私はfacebookとtwitterと他の多くのサービスに数十のapiキーを持っていますが、開発ビルドとステージングビルドのどちらをプロダクションビルドにするかによって、キーの値が異なる標準的な方法は何ですか?アンドロイドのための異なるビルド環境を持つ方法は?
11
A
答えて
5
スイッチブロックで静的フラグを使用してキーを定義することができます。これは、2つまたは3つの代替キーを持つ単純なプロジェクトで機能します。
本当にたくさんある場合、いくつかのプロジェクトで使用するには、それらをヘルパークラスに追加することをお勧めします。これにより、クラス内のコードの変更が最小限に抑えられます。
public class BuildHelper {
public static final int DEBUG=0;
public static final int STAGING=1;
public static final int PRODUCTION=2;
public static int BUILD;
public static String getFbKey() {
switch(BUILD) {
case DEBUG: return "xxx";
case STAGING: return "yyy";
case PRODUCTION: return "zzz";
}
return null;
}
public static String getTwitterKey() {
switch(BUILD) {
case DEBUG: return "xxx";
case STAGING: return "yyy";
case PRODUCTION: return "zzz";
}
return null;
}
}
としてそれを使用します:ような何か
public class YourClass extends Activity {
public static String FB_KEY;
public static String TWITTER_KEY;
//etc.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
BuildHelper.BUILD=BuildHelper.DEBUG; // or STAGING or PRODUCTION
FB_KEY = BuildHelper.getFbKey();
TWITTER_KEY = BuildHelper.getTwitterKey();
//etc.
}
}
0
私は別のプロパティファイルでそれらを維持し、あなたがしているものに応じてビルドスクリプト/日食クラスパスに該当するプロパティファイルを参照しますやって
関連する問題
- 1. 異なるターゲット環境のクロスコンパイルのためのビルド環境を構築することは可能ですか?
- 2. 製品のライフサイクル中にビルド環境を維持する方法
- 3. webpack - 生産環境と開発環境に異なる変数を持たせる方法
- 4. 異なる環境のためにandroid gradle.propertiesファイルを扱う方法
- 5. 2つの異なる環境からファイルを保存するためのベストプラクティス
- 6. 異なる環境
- 7. 異なるanaconda環境に2つのpythonパッケージをインストールする方法は?
- 8. 異なる環境のAspx
- 9. 異なる開発者のための異なる「開発」環境
- 10. 異なる環境のテストシナリオをスキップする方法
- 11. CakePHPの異なる環境は?
- 12. CSSと異なる環境
- 13. Spring + Hibernate + C3P0環境でConnectionProviderをビルド/取得する方法は?
- 14. docker-compose.yml環境変数でコンテナをビルドする方法は?
- 15. 異なる環境用の開発方法
- 16. 2つの環境を持つクロスドメインクッキー
- 17. - (ダッシュ)オプションを持つ環境変数を設定する方法
- 18. 環境ごとに異なる「settings.job」を使用する方法
- 19. TFSいくつかのビルドで環境変数を作成する方法
- 20. Facebookのアンドロイドのためのキーハッシュ異なるシステムで同じプロジェクトを持つ
- 21. 異なる環境(異なるURL)で同じテストで2つのサイトをテストする方法
- 22. 環境に基づいてsbtを使用して異なるビルドを作成する方法は?
- 23. 異なる環境の単一のデータセット
- 24. NAntでパッケージ化、異なる環境を扱う方法
- 25. アンドロイドの環境設定で '%'をエスケープする方法
- 26. 解析シェフ環境は、私は次の属性を持つシェフ環境で
- 27. 異なる環境でLaravel5.1のストレージパスを変更する方法は?
- 28. 異なる環境のReact Webpackアプリで変数をパラメータ化する方法は?
- 29. コントロールIDのレンダリング環境が異なる
- 30. TESTとDEVELOPMENT環境の異なるデータソース
私はこれに似た文字列varのランタイムチェックを終了しました – hunterp