12

アプリでアプリ内課金をテストしようとしています。Playストアで請求と製品IDをすべて設定していますが、トランザクションをテストするには、リリースキーストアでアプリに署名する必要があります。そうしないと失敗します。

IntelliJ Idea(Ver。11 CE)を使用していますが、デバイスにデプロイする前に、デバッグセットを使用してビルドし、リリースキーストアで署名するようにプロジェクトを構成する方法を完全に理解できません。

構成にantターゲットを設定できるようですが、それがその方法だと思いますが、build.xmlはAndroid SDK /tools/ant/build.xmlをインポートするため、選択するターゲットはありません。

デバッグするには、マニフェストでset android:debuggable = "true"を有効にする必要がありますか?誰かが私が必要なことをするアリのターゲットについての提案がありますか?build.xmlに追加できるものはありますか?

4

6 に答える 6

2

Ixxから正しい方向へのポインターを使用して、android:debuggable = "true"を設定し、コマンドラインを使用してビルドとデプロイを行うことになりました。次に、実行中のプロセスにアタッチしてデバッグします。

私のアプリケーションは、androidSDK / tools / ant/build.xmlをインポートするantbuild.xmlファイルとサポートするbuild.propertiesファイルを使用してコマンドラインでビルドするように設定されています。android:debuggable = "true"を設定してから「antrelease」を実行すると、ビルドプロセスでデバッグ可能なapkが作成され、リリースキーで署名されることがわかりました。

この場合に設定できるset-debuggableというターゲットをbuild.xmlファイルに作成しました

<target name="set-debuggable" description="sets internal named property">
    <echo>Setting internal named property...</echo>
    <property name="set.debuggable" value="true" />
</target>

次に、ビルド前のターゲットに追加しました

    <if>
        <condition>
            <isset property="set.debuggable"/>
        </condition>
        <then>
            <replaceregexp
                    file="AndroidManifest.xml"
                    match="(android:debuggable=&#34;).*(&#34;)"
                    replace="\1true\2"/>

        </then>
        <else>
            <replaceregexp
                    file="AndroidManifest.xml"
                    match="(android:debuggable=&#34;).*(&#34;)"
                    replace="\1false\2"/>

        </else>
    </if>

これにより、「antset-debuggablerelease」を使用したときにリリースキーで署名されたデバッグ可能なapkが作成されます。次に、「adb install -r myApp-release.apk」を使用して、新しいビルドを再インストールします。次に、実行中のアプリケーションを起動して接続し、アプリ内購入を通じてデバッグできます。

IntelliJ IdeaとEclipseの両方が、システムのどこかで自己署名されたデバッグキーを使用して、IDEからデバッグapkをビルドおよびデプロイしているように見えます。

後から考えると、IDEが作成したデバッグキーをリリースキーに置き換えて、ビルドにそのキーで署名させようとした(そしてキーを使用するためのパスワードを見つけようとした)可能性がありますが、上記のビルドプロセスにはほとんど時間がかかりませんでしたセットアップして使用を開始する時間。誰かがこの方向に進んでそれが機能するようになったら、私の答えにコメントを追加してください。

于 2012-09-06T15:22:49.393 に答える
1

IntelliJ IDEA 12(以前のバージョンについてはわかりません)の時点で、トップレベルモジュールのAndroidファセットに「カスタムデバッグキーストア」を設定できます。このようにして、APKの署名方法を制御し、実際にリリースキーを使用してIDEからデバッグすることができます。

于 2013-01-02T23:55:04.820 に答える
0

デバッグ可能な属性を設定するために、build.xmlにこれがあります。

<condition property="build.env" value="${build.env}" else="local">
    <isset property="build.env" />
</condition>

<!-- set debuggable=false for release and true for debug and others -->
<condition property="isDebuggable" value="false" else="true">
        <equals arg1="${build.env}" arg2="release" />
    </condition>
    <replaceregexp 
        file="AndroidManifest.xml"
        match="(android:debuggable=&#34;).*(&#34;)" 
        replace="\1${isDebuggable}\2"
        >
    </replaceregexp>

build.envが次のようにantプログラムに渡される場合(「リリース」の場合):

ant <targets> -Dbuild.env=release

署名するには、これをプロパティファイルに追加します。

key.store=C:/path/to/keystore/mykeystore.keystore

デバッグアプリにはデバッグキーストアがあります(ただし、現在、このキーストアが必要な理由を正確に覚えていません)->詳細についてはこちらをご覧ください。おそらく、代わりにリリースキーストアを使用する必要があります。

于 2012-08-22T17:13:15.597 に答える
0

IntelliJは、アプリケーションのデバッグバージョンに署名するためにdefultによって.android/debug.keystoreファイルを使用しています。このファイルをリリースキーストアで変更するか、リリース証明書をdebug.keystoreファイルにインポートできます。これについては、 http://www.denizoguz.com/2013/01/12/failure-install_parse_failed_inconsistent_certificates/で段階的な手順を準備しました。

于 2013-01-12T01:20:57.087 に答える
0

LintがAndroidManifest.xmlでの「android:debuggable」フラグのハードコーディングに反対するようにアドバイスしていることを考えると、(少なくとも私の場合は)より良い解決策があります。custom_rules.xmlで新しいantターゲットを定義するだけで、Androidデバッグターゲットとまったく同じようにすべてを実行しますが、リリースキーを使用してapkに署名します。

<target name="build-debug" depends="-set-debug-files, -do-debug, -release-sign, -post-build" />

追加する必要がある唯一のサブタスクは、「-post-build」の前に「-release-sign」を付けてから、androidの「debug」ターゲットの代わりに「bulid-debug」を実行することです。

または、「-release-sign」を実行して、次のように依存関係をデバッグできます。

<target name="build-debug" depends="debug, -release-sign" />

しかし、これは私にはうまくいきません。「-post-build」でいくつかの追加の作業を行い、「-post-build」の前にパッケージに署名する必要があるためです。

于 2013-05-29T14:17:24.613 に答える
-1

Androidマニフェストでデバッグ可能フラグをtrueに設定してみてください。

 <application
        android:debuggable="true"

デバッグ可能なフラグ

于 2012-08-30T03:28:25.327 に答える