在我的project.properties文件中有一个属性proguard.config,当我运行ant时,它将运行proguard。以下所有内容都会导致proguard运行
proguard.config
proguard.config=
proguard.config=proguard.cfg
在属性文件中是否有办法打开/关闭proguard?
否则我将需要编写一个脚本来添加/删除或重命名proguard.config属性来控制它。我宁愿得到/设置属性。我想要最好的解决方案。现在我正在编写replaceregexpr来将proguard.config重命名为其他关闭的东西。寻找更好的解决方案,并想知道别人如何控制这个?
答案 0 :(得分:7)
更简单的方法就是拥有行
#proguard.config=proguard.cfg
甚至更好还是完全放弃了!就这样,proguard根本不会运行。
答案 1 :(得分: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。
答案 2 :(得分: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'
}
}