2013-06-19 11 views
38

私はGoogle MapsのAPIで働いているように、私は、Eclipseでカスタムデバッグキーで動作するように使用されている(それは実際に私の生産キーです)AndroidスタジオのEclipse「カスタムデバッグキーストア」に相当するものは何ですか?

この操作は、私はマップの同じAPIキーを使用することを許可し、デバッグとリリースのビルドのGoogle Playサービスの大半(アプリ請求内)。

マニフェストのキーを変更する必要がないため、これは本当に便利でした。

enter image description here

残念なことに、Androidのメーカーへの移行で、私はこの機能が不足しています。

私はこのオプションをどこで見つけることができますか?

ありがとうございました。

答えて

64

build.gradleファイルにキーストアを定義します。ここに署名設定のセクションを参照してください:あなたのケースでhttps://developer.android.com/studio/build/index.html

を、あなたはデバッグバリアントのためのキーストアを再定義したい:

android { 
    signingConfigs { 
     debug { 
      storeFile file("your.keystore") 
     } 
    } 
} 

しかし、あなたが本当にデバッグとリリース構成するために、2つの異なるキーストアを使用する必要があります。

+7

ありがとう、私はそれを試みます。なぜ私は別のキーを使うべきですか?結果と私が得た時間は膨大です... –

+0

デバッグキーストアのパスワードに関する制約はありますか? –

+0

デバッグ時に各フレーバに1つの特定のキーストアが必要な場合はどうすればよいですか? –

5

あなたはdebug.keystoreためのプロジェクト独立を指定することができます。以下の画像で
2つのステップ:(アンドロイドメーカーv0.5.2
ステップ1project structureのボタンをクリックします。 Step 1

ステップ2:次のようdebug.keystoreを追加します。 enter image description here

+1

Android Studio v0.8でこの画面を利用できません。唯一の方法はbuild.gradleかもしれません。 – arvindwill

24

Androidのメーカーは、あなたが道より良い場所でこれを見つける0.8.9最近で:

File->Project Structure 
  1. 「署名」タブ
  2. でキーストアを追加するには、デバッグ/リリースのためにそれを選択します"ビルドタイプ"。
  3. はエイリアス名をキーストアにmatchsていることを確認し、自動的に「適用」を

それは、Gradleのものを作成しsyncrhonizes(のkeytool -list -vは、あなたの別名を示し)と魔法のようにすぐに働きました。

+2

すべてのフィールドを指定する必要はありません。デバッグ・キーの場合、省略時値(別名 'androidebugkey'とキーストア/キー・パスワードは 'android'に設定されます)を省略することができます。リリースキーの場合は、パスワードをbuild.gradleにクリアに保存するため、パスワードを入力したくない場合があります。これはDVCS上で終了します。 – ralfoide

17

こんにちはあなたは以下の簡単な手順

->Your project 
    ->Your Module 
    ->Right click on your module 
    ->go to open module settings 
     ->Go to Signing section 
     ->Specify all the attribute here and browse your Custom debug key in Store File 

のために行く、その後、ハードコードのためにこのようなもののすべてを行きたくないなら、あなたはアンドロイドのスタジオで、自動作成されるコードの下にありますビルド。Gradleの

signingConfigs { 
    debug { 
     storeFile file('custom_debug_keystore') 
     keyAlias 'androiddebugkey' 
     keyPassword 'android' 
     storePassword 'android' 
    } 
} 

注:

1)ここで

8

がある

2)正しいエイリアスとパスワードを指定してください手動で手動設定のために行くの.keystoreのコードでは使用しないでください私がキーの両方をgradle.buildファイルから任意のビルドまたはリポジトリコミットに含まれないファイルに移動するのに必要なステップバイステップを完了してください。

1)gradle.propertiesをまだ作成していない場合は、作成します。

このファイルの場所はOSによって異なります。

/home/<username>/.gradle/ (Linux) 
    /Users/<username>/.gradle/ (Mac) 
    C:\Users\<username>\.gradle (Windows) 

2)yourprojectname.propertiesファイルを指すエントリを追加します。 次の情報と、ステップ2で指定した場所にyourprojectname.propertiesファイルを作成します

yourprojectname.properties=c:\\Users\\<username>\\signing\\yourprojectname.properties 

3)(Windowsの場合の例):

keystore=C:\\path\\to\\keystore\\yourapps.keystore 
keystore.password=your_secret_password 

4)を指すようにgradle.buildファイルを変更変数を使用するにはyourprojectname.propertiesファイルに変更してください。

if(project.hasProperty("yourprojectname.properties") 
     && new File(project.property("yourprojectname.properties")).exists()) { 

    Properties props = new Properties() 
    props.load(new FileInputStream(file(project.property("yourprojectname.properties")))) 

    android { 
     signingConfigs { 
      release { 
       keyAlias 'release' 
       keyPassword props['keystore.password'] 
       storeFile file(props['keystore']) 
       storePassword props['keystore.password'] 
      } 
      debug { 
       keyAlias 'debug' 
       keyPassword props['keystore.password'] 
       storeFile file(props['keystore']) 
       storePassword props['keystore.password'] 
      } 
     } 
     compileSdkVersion 19 
     buildToolsVersion "20.0.0" 
     defaultConfig { 
      applicationId "your.project.app" 
      minSdkVersion 16 
      targetSdkVersion 17 
     } 
     buildTypes { 
      release { 
      } 
     } 
    } 

} 

dependencies { 
    ... 
} 

5)お楽しみください!これで、すべてのキーがディレクトリのルートの外にありますが、ビルドごとに自動化の楽しみがあります。

props変数が割り当てられている最初のif条件の中で "android {}"ブロックを実行していないので、 "props"変数に関するgradle.buildファイルにエラーが発生した場合は、全体のandroid {...}セクションを、props変数が割り当てられた状態に変更してから、もう一度やり直してください。

herehereの情報からこれらのステップをまとめました。

+0

これは完全な正解でなければなりません – Plugie

4

キーストアがbuild.gradleにする必要があり、例を以下に示します。

android{ 
    signingConfigs { 
     release { 
      storeFile file('/path/platform.keystore') 
      storePassword 'android' 
      keyAlias 'androiddebugkey' 
      keyPassword 'android' 
     } 
    } 
    ... 
    buildTypes { 
     release { 
      signingConfig signingConfigs.release 
     } 
    } 

Eclipseが本当にパスワードまたは別名を要求しなかったが、Gradleのはありません。私はEclipseがパスワード:とandroidと別名:androiddebugkeyと仮定したと思います。これはあなたのキーストアでは当てはまらないかもしれませんが、私はそれをgradle上で試してみます。

パスワードを知っているが、エイリアスあなたもエイリアスを取得するには、次のコマンドを実行することができますがわからない場合は、次のように指摘し keytool -list -keystore /path/platform.keystorelink

0

、あなたはにGradleのファイルを使用することができますそれを指定します。 また、パスの一部としてホームフォルダを使用するのが非常に便利だとわかりました。それは、チーム内で作業するときに簡単になります。ここに私の提案があります:

android { 
    signingConfigs { 
     debug { 
      storeFile file(System.properties['user.home']+"/.android/custom.debug.keystore") 
     } 
    } 
} 
関連する問題