当前位置 : 主页 > 手机开发 > cordova >

Cordova android 5.1.1 APK与proguard混淆的混淆

来源:互联网 收集:自由互联 发布时间:2021-06-10
使用dex2jar和jdgui2等工具,可以非常轻松地检查APK的内容. 我们正在尝试在我们的Cordova项目中使用Proguard来“保护”包含我们想要保密的信息的几个类(主要是解密我们试图为我们的客户保
使用dex2jar和jdgui2等工具,可以非常轻松地检查APK的内容.

我们正在尝试在我们的Cordova项目中使用Proguard来“保护”包含我们想要保密的信息的几个类(主要是解密我们试图为我们的客户保护的一些内容的密钥).

我们做不到.应用程序崩溃,或者没有混淆.

我们添加到build.gradle:

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

我们的proguard.pro包含:

-keep class !com.smartmobilesoftware.** ( *; }

smartmobilesoftware是一个inAppPurchases插件.

在那个包中我们修改了几个类,没有proguard就可以很好地工作.

我发现以下“Proguard支持丢失”:https://issues.apache.org/jira/browse/CB-9269

在这里,Joe Bowser声称如下:“好吧,你不应该将ProGuard与Cordova一起使用,或者至少没有充分的理由使用它,因为你不能将它与minifyEnabled一起使用,这实际上使ProGuard正常工作.由于Cordova在整个地方都使用了Reflection,这是一个在没有proguard-rules.pro文件的情况下炸毁Cordova的好方法.“

我们试图通过告诉proguard除了com.smartmobilesoftware中的所有类(-keep class!com.smartmobilesoftware.**(*;})之外的所有类都应保持完整,以避免这个问题.

我不确定这是否是我们的代码(但代码在没有proguard的情况下工作正常),插件或proguard本身的问题.

我们没有看到任何有意义的错误.

我们在使用Cordova 2.2.0构建之前发布了应用程序,它使用了ANT和proguard以及另一个插件,它运行良好.所以我们想知道Cordove是否在proguard方面有所改变.

任何人都可以对这个问题有所了解吗?

看起来com.smartmobilesoftware包中的代码实现了Cordova插件.在这种情况下,您需要至少保留几个类,否则Cordova将无法在运行时正确找到它们(对于最近的Cordova版本):

-keep class * extends org.apache.cordova.CordovaPlugin
网友评论