使用 Cordova Android 4 的 Proguard?

Posted

技术标签:

【中文标题】使用 Cordova Android 4 的 Proguard?【英文标题】:Proguard with Cordova Android 4? 【发布时间】:2015-09-04 15:54:16 【问题描述】:

在使用 Ant 构建 Cordova 时,我让 ProGuard 为发布构建运行,但现在使用 Gradle,我的项目的发布构建没有被混淆(我的“cordova build --release android”输出显示了一个步骤:CordovaLib:mergeReleaseProguardFiles ,但没有其他 proguard/minification/obfuscation 条目)。

使用 Ant,我的 project.properties 文件使用 proguard.config 参数引用了我的 proguard-project.txt 文件。

既然 Cordova 使用 Gradle,我该如何配置它才能工作?

【问题讨论】:

你可以使用cordova-plugin-proguard alfilatov.com/posts/… 【参考方案1】:

查看更新后的Proguard Documentation,您现在必须更改build.gradle 文件。

将 buildType 发布部分更改为类似这样的内容

android 
...

  buildTypes 
    release 
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'),
        'proguard-rules.pro'
    
  

【讨论】:

谢谢,但是 Cordova-Android 的 build.gradle 文件有这样的注释:// GENERATED FILE!不要编辑!我正在寻找与 Cordova 兼容的解决方案 这只是正常的行为。仅当您重新初始化项目时,此获取才会被覆盖。它是一个特定于 android 的,与 cordova 无关 - 如果你想安全的话,你也可以分配一个钩子,在你添加 android 平台后自动重新启用它。 文件proguard-rules.pro 是Android Studio 的神器;改用 proguard-project.txt 就可以了——这就是在早期的 Cordova 版本中的名称。正如另一条评论所建议的那样,我将这些属性添加到 after_platform_add 挂钩中。 你可以使用cordova-plugin-proguard alfilatov.com/posts/…

以上是关于使用 Cordova Android 4 的 Proguard?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Cordova Android 4 的 Proguard?

Cordova 4.0 上的 Android 片段内的 Cordova webview

将 Cordova 6.1.1 项目添加到 Android 4.4.2 版本

Cordova 4.0 config.xml 中的 Android 权限

在MAC上搭建cordova3.4.0的IOS和android开发环境

JavaScript 在 Android 4.4+ 上的 Cordova 应用程序中不起作用