【问题标题】:How to make works cordova-based app with ProGuard如何使用 ProGuard 制作基于 Cordova 的应用程序
【发布时间】:2020-11-24 06:09:27
【问题描述】:

我正在尝试构建启用了混淆的基于 Cordova 的应用程序。
IBM MobileFirst Platform Foundation 版本为 7.1.0.00.20151227-1730。

我的步骤:
- 创建新的经典mfp 项目(用作环境运行时)
- 使用 Android Env 创建新的mfp cordova 项目(用作客户端应用程序)
- push 环境的新客户端应用程序
- 在project.properties 中取消注释proguard.config 选项
- 在project.properties 中添加正确的密钥库配置 - 为发布配置应用程序
- 像往常一样运行ant release

输出: 我收到大量警告
[proguard] Note: duplicate definition of program class ...

然后构建失败
[proguard] Warning: there were 1 unresolved references to program class members. [proguard] Your input classes appear to be inconsistent. [proguard] You may need to recompile them and try again. [proguard] Alternatively, you may have to specify the option [proguard] '-dontskipnonpubliclibraryclassmembers'. BUILD FAILED

这是在新创建的项目上。没有改变。刚刚添加了密钥库。

我应该如何正确配置 ProGuard?

【问题讨论】:

  • 当您使用 MFP 生成 Cordova 项目时,您构建了一个 Cordova 项目(与混合应用程序不同)。这个问题是针对科尔多瓦的。您应该提供您的项目。
  • 使用cordova-plugin-proguard,参见我的帖子alfilatov.com/posts/…中的描述

标签: cordova proguard cordova-plugin-proguard


【解决方案1】:

您的问题与在字段或方法上具有 package private 访问修饰符的类有关。这些默认情况下会被混淆。因此警告“警告:对程序类成员有 1 个未解决的引用。”

按照建议,您可以在 proguard-project.txt 中使用 -dontskipnonpubliclibraryclassmembers(见下文)。 有关此配置参数和其他配置参数的详细信息,请查看http://proguard.sourceforge.net/manual/usage.html

在 proguard-project.txt 中更改 android/proguard 配置(参见http://tools.android.com/recent/proguardimprovements

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多