shwenzhang / AndResGuard

proguard resource for Android by wechat team
Apache License 2.0
8.54k stars 1.54k forks source link

应用混淆后的自动化测试小问题 #230

Closed smilevchy closed 6 years ago

smilevchy commented 6 years ago

Hello!

请问下,如果应用资源混淆功能后,由于自动化测试脚本里有类似 findViewById(R.id.xxx) 形式的代码存在,此时由于 Id 被混淆了,因此这部分查找是会不成功的。

目前想到的对这个问题的大概方案是:

  1. 每次打完包后动态修改自动化测试脚本里的原始 Id,替换成混淆 Id;
  2. 修改源码,使之不混淆 Id

能否请教下你们是怎么高效处理这个问题的呢?

weinierfei commented 6 years ago

给测试脚本一个没有经过AndResGuard处理的apk不就可以了么

smilevchy commented 6 years ago

@weinierfei

直接测试没有混淆过的 APK ,测试效果不一定等同于测试混淆过的 APK。

smilevchy commented 6 years ago

最终采用了第三个方案:

  1. 在白名单中添加规则:R.id.*

最终经过比对,不混淆 Id 后的 APK 体积大小增长并不多。

simpleton commented 6 years ago

Good touch! 我其实没有想过这个问题。Mapping 文件应该可以帮助你,不过需要你读Mapping 然后使用混淆后的名字

On Thu, Feb 8, 2018, 12:27 AM smilevchy notifications@github.com wrote:

最终采用了第三个方案:

  1. 在白名单中添加规则:R.id.*

最终经过比对,不混淆 Id 后的 APK 体积大小增长并不多。

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/shwenzhang/AndResGuard/issues/230#issuecomment-364037434, or mute the thread https://github.com/notifications/unsubscribe-auth/AAbvYnkePveMyu5IwUgvveaViI67TYE0ks5tSrAJgaJpZM4R94vc .