2015-12-02 75 views
1

有没有办法阻止AndroidManifest.xml被DexGuard混淆?看起来MobileIron在我们的Android应用程序的混淆清单中遇到了一些麻烦。它处理一个“普通”应用程序就好了,但在混淆应用程序的清单中引发错误。从混淆中排除清单文件

编辑:

我只注意到了xmlstrings表混淆的应用程序的丢失一串字符串:

aapt d xmlstrings c:\dev\app_obf.apk AndroidManifest.xml 

String pool of 119 unique UTF-16 non-sorted strings, 119 entries and 0 styles using 5112 bytes: 
String #0: 
String #1: 
String #2: 
String #3: 
String #4: name 
String #5: 
. 
. 
String #18: versionCode 
. 
. 
(up to String #25, then it is the same as in plain app) 

而普通应用程序的信息是以下几点:

aapt d xmlstrings c:\dev\app.apk AndroidManifest.xml 

String pool of 119 unique UTF-16 non-sorted strings, 119 entries and 0 styles using 6744 bytes: 
String #0: versionCode 
String #1: versionName 
String #2: minSdkVersion 
String #3: targetSdkVersion 
String #4: name 
String #5: required 
String #6: hardwareAccelerated 
String #7: icon 
String #8: label 
String #9: debuggable 
String #10: value 
... 

这可能会起到一个作用,还是它是一种正常行为?

应用程序的简单和混淆版本在设备上运行得很好。

回答

0

将以下内容添加到您的DexGuard配置--keepresourcefiles AndroidManifest.xml但是AFAIK这是默认的DexGuard配置。

也许是MobileIron不喜欢的其他东西?可能值得发布您的DexGuard配置或者用MobileIron提出支持问题。

+0

不幸的是,DexGuard 6.1会抛出一个错误,说 'Unknown option'-keepresourcefiles'' – kibitzerCZ

+0

对不起,我正在使用DexGuard 7 - 当然资源混淆是新功能。 – scottyab

+0

今天用'-keepresourcefiles AndroidManifest.xml'和'-keepresourcexmlattributenames manifest/*'选项试用了DexGuard Enterprise 7.0.32,结果与6输出相同。012og另一方面,Proguard保持“xmlstrings”表不变。奇怪的。可能我们将不得不与DexGuard支持联系。 – kibitzerCZ