2016-06-23 35 views
7

dex2jarやjdgui2などのツールを使用すると、APKの内容を簡単に調べることができます。Cordova android 5.1.1 proguard confusionを使用した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のサポートが不足している」が見つかりました:「OK、あなたはコルドバでProGuardのを使用してはならない、あるいは少なくとも、それを使用することは良い理由はありません。https://issues.apache.org/jira/browse/CB-9269

ここでジョー・クッパは、次のことを主張実際にProGuardを正しく動作させるためにminifyEnabledで使用することはできません.CordovaはReflectionを使用しているため、proguard-rules.proファイルを使用せずにCordovaを爆破するのに適しています。

私たちは、すべてのクラスがcom.smartmobilesoftware中のものを除いてそのままにしなければならないProGuardの(-keepクラスを伝えることでその問題を回避しようとしたcom.smartmobilesoftware **(*;!。})

を私はプラグイン、またはProGuardの自体、これは我々のコードwitih問題である(ただし、コードがProGuardのなしで正常に動作します)かどうかわからない。

私たちはどんな意味のエラーが表示されません。

コルドバで構築された前に、私たちは、アプリケーションをリリース2.2.0、これはANTとproguardを使用し、別のプラグインはうまくいきましたので、Cordoveがプロガード。

誰でもこの問題を少しでも解明できますか?

答えて

3

パッケージcom.smartmobilesoftwareのコードがCordovaプラグインを実装しているようです。この場合、あなたはそれ以外のコルドバが適切に(最近のコルドバのリリースのために)実行時にそれらを見つけることができません、少なくともいくつかの複数のクラスを維持する必要があります。

-keep class * extends org.apache.cordova.CordovaPlugin 
+0

ありがとうございます。私はまだ確認することができませんでしたが、恩恵は期限が切れていたので、私はあなたにそれを与えました。 :-)あなたの提案がうまくいくなら、私はここで答えてくれるでしょう。 –

2

コルドバのアプリケーションが原因で主な活動の難読化後にクラッシュすると、コードバのクラスは難読化されます。したがって、実行時にwebviewを作成できず、アプリケーションがクラッシュします。あなたはProGuardのルールの下に試してみて、それがあまりにも実行しようとすることができので、ここで難読化からあなたが可能なファイルフィルタとして以下のように安全に必要になることがあり、この問題について

To resolve this you have to add : 

-keep class org.apache.cordova.** { 
    *; 
} 

-keep public class * extends org.apache.cordova.CordovaPlugin 
0

@Erwinモラー。幸運

-keep class org.apache.cordova.engine.** { *; } 
-keep public class * extends org.apache.cordova.CordovaPlugin 
関連する問題