2

私のproject.propertiesファイルにはプロパティproguard.configがあり、antを実行するとproguardが実行されます。次のすべてにより、プロガードが実行されます

 proguard.config
 proguard.config=
 proguard.config=proguard.cfg

プロパティファイル内にプロガードのオン/オフを切り替える方法はありますか?

それ以外の場合は、これを制御するためにproguard.configプロパティを追加/削除または名前変更するスクリプトを作成する必要があります。プロパティを取得/設定したいだけです。これに最適なソリューションが必要です。現在、replaceregexprをコーディングして、proguard.configの名前を別の名前に変更してオフにします。より良い解決策を探していて、他の人がこれをどのように制御しているか知りたいですか?

4

3 に答える 3

7

はるかに簡単な方法は、行を持つことです

#proguard.config=proguard.cfg

または、完全に除外することをお勧めします。そうすれば、プロガードはまったく実行されません。

于 2012-05-18T19:16:19.510 に答える
1

その方法は次のとおりです。

project.properties ファイルで proguard.config=proguard.cfg を設定しないでください。

build.properties ファイル セットで

 proguarded=on    # or whatever variable you chose

デバッグが常にオフになるように Android をビルドする場合は、次のマクロを定義します。

  <macrodef name="set-app-debuggable">
    <sequential>
        <echo>Updating AndroidManifest.xml with debuggable set to true</echo>           
       <replaceregexp file="./AndroidManifest.xml"
                            match='android:debuggable="(.*)"'
                            replace='android:debuggable="true"'
                            byline="false">         
        </replaceregexp>
    </sequential>
</macrodef>
<macrodef name="set-app-not-debuggable">
    <sequential>
        <echo>Updating AndroidManifest.xml with debuggable set to false</echo>          
        <replaceregexp file="./AndroidManifest.xml"
                            match='android:debuggable="(.*)"'
                            replace='android:debuggable="false"'
                            byline="false">         
        </replaceregexp>
    </sequential>
</macrodef>

次に、proguard ビルドの外でデバッグを保持するかどうかに応じて、これらの条件または同様の条件を設定します。

<target name="-set-mode-check">
    <echo> set mode checking properties ... </echo>
    <echo> Proguard Property  value is '${proguard.config}' </echo>
    <echo> Proguard Property  value is '${proguarded}' </echo>
    <condition property="proguard.config" value="proguard.cfg">
       <isset property="proguarded"/>
   </condition>
    <echo> Proguard Property  value after condition set is '${proguard.config}' </echo>
     <if condition="${proguarded}">
        <then>
            <echo>****  This build is proguarded so setting debuggable off  ****</echo>
            <set-app-not-debuggable />
        </then>
        <else>
            <echo>****  This build is not proguarded so setting debuggable on ****</echo>
            <set-app-debuggable />
        </else>
    </if>

</target>

project.properties ファイルに proguard.config を設定する必要はまったくありません。

于 2012-05-18T00:33:55.823 に答える
0

このプロパティを設定します

minifyEnabled false

あなたのアプリでbuild.gradle

デバッグとリリースでも無効にするには、次のようにします。

 buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            minifyEnabled false 
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

    }
于 2016-08-20T06:47:18.643 に答える