使用 MobileFirst 8.0 IF201804051553 进行 android 发布构建时出现 Proguard 警告

Proguard warnings when doing android release build with MobileFirst 8.0 IF201804051553

我最近将我的混合 MobileFirst 应用程序的 mfp 插件升级到 8.0.20180408,并将我的 cordova-android 插件升级到 7.0.0。当我对应用程序进行调试构建时,构建成功了,但是当我进行发布构建(已签名的 apk)时,该过程生成了很多 proguard 警告。当我将 cordova-android 版本降级到 6.4.0 时,发布构建成功。

根据 iFix release notes,mobilefirst cordova 插件应该支持 cordova-android v7 自 MobileFirst iFix 8.0.0.0-MPFF-IF201804051553 以来,但似乎存在问题在这个 ifix 中使用它。

我对 proguard 配置文件做了一些调查,因为 gradle 构建过程在寻找正确的 proguard 配置文件时似乎有问题。

mfp cordova 插件包含一个名为 proguard-project-mfp.txt 的 proguard 配置文件,它被添加到混合项目的 android 平台。该插件还包含一个 gradle 文件

dev-build-extras.gradle

指定proguard配置文件的位置。配置中指定的 proguard 文件没有附加路径:

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project-mfp.txt'

似乎在cordova-android 7.x中,生成android平台时,将proguard-project-mfp.txt文件复制到目录

platforms/android/app/src/main/
而 dev-build-extras.gradle 文件位于目录
platforms/android/cordova-plugin-mfp/

这意味着gradle找不到proguard配置文件。更新 gradle 文件中相对于 gradle 文件的混淆器配置文件位置似乎可以解决问题并允许构建已签名的 apk。

综上所述,更新文件

platforms/android/cordova-plugin-mfp/dev-build-extras.gradle

与以下

// proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project-mfp.txt'
proguardFiles getDefaultProguardFile('proguard-android.txt'), '../app/src/main/proguard-project-mfp.txt'

您的 dev-build-extras.gradle 文件现在应该如下所示:

android {
    buildTypes {
        release {
            minifyEnabled true
            // proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project-mfp.txt'
            proguardFiles getDefaultProguardFile('proguard-android.txt'), '../app/src/main/proguard-project-mfp.txt'
        }
    }
    .
    .
    .
}