2016-01-27 14 views
14

2番目のビルドタイプを作成して、すでに存在するデバッグタイプと同じにする必要があります。現在、私は2つのビルドタイプを持っています:デバッグとリリース。デバッグは、ワンクリックで実行でき、デバッグキーストアで自動的に署名されます。 Build -> Generate signed APKウィザードを使用してリリースビルドを手動でコンパイルします。Androidスタジオ:2番目のデバッグビルドタイプを作成する方法

だからデバッグビルドタイプのクローンを作成するために、私は最初のアプリのbuild.graddleファイルに「ローカル」という名前の第二のビルドタイプを追加しました:

buildTypes { 
    ... 
    debug { 
     debuggable true 
     minifyEnabled false 
    } 
    local { 
     debuggable true 
     minifyEnabled false 
    } 
} 

は、その後、私はapp/src/local/resを作成し、いくつかのファイルを追加しました。

それから私は、Gradleの再同期を行うと、左のタブに新しいビルドの種類を選択します。 build type tab

最後に、私は、実行ボタンをクリックして、私はそれだけで動作するように期待。このIntelliJ help articleはデバッグ署名の設定がデフォルトであると言う:

このことは、あなたが手動でアーティファクトを設定していない場合 実行/デバッグ構成で展開デフォルトAPKオプション選択: Androidのアプリケーションのダイアログボックスを、

:IntelliJ IDEAがその代わりに、このダイアログが表示され、生成

用の証明書で事前に定義された 値を使用しますrun dialog

修正ボタンをクリックすると、アプリケーションモジュール全体の署名設定ダイアログが開きます。しかし、私はリリースのためにこのAPKに署名したくない、私はそれがデバッグ証明書で署名する必要があります。また、私は新しいassembleLocal gradleタスクが作成されていることに気付きましたが、整列していないapkを生成します。このフォルダでは、正規のデバッグAPKが、アラインされていない最終バージョンで正しく生成されていることがわかります。

どのように地球上でデバッグビルドタイプを複製できますか?

+0

あなたは正しい答えを受け入れる必要があります、私のために* ivan.panasiuk *答え – TacB0sS

答えて

21

あなたはsigningConfigbuildTypeして使用する必要がありますbuild.gradleファイルで指定することができます。

buildTypes { 
    local { 
     signingConfig signingConfigs.debug 
    } 

    /* NOTE: the debug block is not required because it is a default 
    * buildType configuration; all of its settings are defined implicitly 
    * by Android Studio behind the scenes. 
    */ 
} 

あなたのローカルシステム上にあるカスタムキーストアを使用することを好む場合は、代わりに以下を使用します:

を、デフォルトのデバッグ buildTypeと同じ signingConfigを使用して署名し、以下を使用するには

signingConfigs { 
    local { 
     storeFile file("/path/to/custom.keystore") 
     storePassword "password" 
     keyAlias "MyLocalKey" 
     keyPassword "password" 
    } 
} 

buildTypes { 
    local { 
     signingConfig signingConfigs.local 
    } 
} 
+0

申し訳ありませんが、私たちは署名の設定をbuild.grに含めませんそれぞれのチームメンバーが異なるOSとキーストアのパスを持っていて、VCS同期が他のdevsワークスペースを壊してしまうからです。しかし、最も重要なことに、私はリリースのためにサインしたくありません。デバッグ設定が使用しているのと同じデバッグ証明書で署名する必要があります。 –

+0

@MisterSmith各ビルドタイプはキーストアで署名されています。もちろん、デバッグキーストアを使用して、答えの最初の部分を確認することもできます。答えの重要な部分は、ローカルビルドタイプがカスタムビルドタイプであり、デフォルトがないため、build.gradleで署名設定を定義する必要があることです。 –

+0

私はそれを理解しています。しかし、デフォルトのデバッグキーストアを使用するように、 "local" signingConfigに何を書き込むべきですか? –

1

他の方法ではフレーバーを使用することができます。

例:

producFlavors{ 

app1{} 

app2{} 

} 
+0

はい、おそらく最も簡単な方法です。 –

+0

これは良い解決策ですが、私がbuildTypeとflavorsの組み合わせを持つfalvioursの私の問題です。私はちょうど異なるデバッグ環境間で切り替えたい場合はどうすればいいですか? – Karoly

+0

タブ上にビルドバリアントがあります。そこで、ビルドバリアントを選択することができます。 – Azrael94

17

また、あなたが使用してデバッグするビルドタイプが似て作ることができます:ここでは

initWith(buildTypes.debug) 

は一例です:

... 
buildTypes { 

    release { 
     minifyEnabled true 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     buildConfigField 'String', 'URL_API_BASE_SERVICE', '"http://theidasworld.com"' 
    } 
    debug { 
     versionName 'APP BETA' 
     buildConfigField "Integer", "PIN", "0000" 
     buildConfigField 'String', 'URL_API_BASE_SERVICE', '"http://debug.theidasworld.com"' 
    } 
    inspection { 
     initWith(buildTypes.debug) // keep versionName and PIN from 'debug' 
     buildConfigField 'String', 'URL_API_BASE_SERVICE', '"http://inspection.theidasworld.com"' 
    } 
} 
... 
+0

ありがとう、私はsigningConfig signingConfigs.debugを設定しようとしましたが、動作すると思っていましたが、そうしませんでした。ありがとう – TacB0sS

関連する問題