Flutter安卓混淆的相关问题

这篇具有很好参考价值的文章主要介绍了Flutter安卓混淆的相关问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

当你执行 build apk 后,flutter会默认进行混淆,若你的应用中引用了第三方的sdk,在debug模式下没问题,但在release下可能就会出现各种各样的问题,找不到某个类,或者某个功能无法使用,甚至直接崩溃等,此时,就需要你去处理混淆的相关问题。

1.禁用混淆:

flutter build apk --no-shrink

在使用flutter命令进行打包时,后面可以加上支持的cup架构,如:

flutter build apk --no-shrink --target-platform android-arm,android-arm64

就只会打’armeabi-v7a’, ‘arm64-v8a’,若想支持x84_64,可以添加上android-x64。

如果想把各种架构分开打包,可以添加上--split-per-abi,最终打包结果会是这样:

  • [project]/build/app/outputs/apk/release/app-armeabi-v7a-release.apk
  • [project]/build/app/outputs/apk/release/app-arm64-v8a-release.apk
  • [project]/build/app/outputs/apk/release/app-x86_64-release.apk

2.配置混淆规则:

1).在android主工程app下添加 proguard-rules.pro 文件,并配置混淆规则:

-keep class io.flutter.plugin.** { *; }
......

2).在app的build.gradle中引用proguard-rules.pro:

 signingConfigs {
        release {
            storeFile file('test.jks')
            storePassword '123456'
            keyAlias 'test'
            keyPassword '123456'
        }
    }

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

以上两种方法,基本上可以解决打release后出现的各种问题。

但还有一种情况,可能以上两种方法都无法解决,即第三方sdk引用了drawable中的一个图片资源进行安全验证,例如阿里百川的安全图片yw_1222_baichuan.jpg。这种情况,即便你禁用混淆,在打完release包后,可能仍然会报安全验证失败(找不到安全图片资源)。

本人在最初的测试中,将release包解压后看到资源文件列表如下:

flutter应用程序混淆、优化与保护,Flutter,flutter,android,混淆

资源文件是被混淆了的(禁用混淆没用),但使用反编译工具查看,图片资源基本都正常:

flutter应用程序混淆、优化与保护,Flutter,flutter,android,混淆

这里我就黑人问号了???图片资源路径没有任何问题,但安装后为什么仍然报找不到资源?猜测,可能是打包过程中对资源进行了压缩或其它操作导致图片属性发生变化,以至于sdk无法识别!

最后的终极解决办法:通过以上两种方式打release包后,解压apk,找到混淆后的jpg格式文件(nQ.jpg,需要确认这个就是安全图片),删除之,创建drawable文件夹,将正常的yw_1222_baichuan.jpg复制进去,重新修改为apk格式。

flutter应用程序混淆、优化与保护,Flutter,flutter,android,混淆

若此时直接安装,会提示无签名文件,需要你手动再次签名一下,然后再安装,会发现,已可以成功运行,并验证通过!文章来源地址https://www.toymoban.com/news/detail-830167.html

到了这里,关于Flutter安卓混淆的相关问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • flutter编译和构建鸿蒙应用程序(windows环境)

    针对 OpenHarmony 的 Flutter 版本已经开源,参考 https://gitee.com/openharmony-sig/flutter_flutter。 本文为实践该流程,实现flutter打包鸿蒙hap包的流程。目前流程已经走完,不过最后打包hap包依赖于flutter engine构建,目前还没构建完成。下次持续更新。 构建环境: flutter tools指令支持Linux、

    2024年02月04日
    浏览(46)
  • xcode 设置 ios苹果图标,为Flutter应用程序配置iOS图标

    工具网址:https://icon.wuruihong.com/ 下载之后文件目录如下 拷贝到项目的iosRunnerAssets.xcassetsAppIcon.appiconset目录下,如下图

    2024年01月23日
    浏览(71)
  • Flutter:引领移动开发新潮流,跨平台应用程序的终极解决方案

    Flutter是由Google开发的一款开源移动应用开发框架,它可以帮助开发者快速高效地构建跨平台的移动应用程序。Flutter基于Dart编程语言,具有简单易学、高效灵活的特点,并且可以与现有的Android和iOS应用进行集成。本文将介绍Flutter的基本概念、开发环境搭建、基础组件、生命

    2024年02月04日
    浏览(86)
  • 使用 Codemagic 将 Flutter Windows 应用程序发布到 Microsoft 合作伙伴中心

    https://medium.com/flutter-community/publishing-flutter-windows-apps-to-microsoft-partner-center-with-codemagic-b1962575510c 这篇文章最初发表在 Codemagic 博客上,由 Souvik Biswas 撰写 Flutter 允许您使用单个代码库为移动设备、网络、桌面和嵌入式设备构建应用程序。2.0 的引入使得试用桌面应用程序变得更

    2024年02月04日
    浏览(96)
  • flutter项目启动安卓模拟器不好使的问题

    在flutter项目中,ios模拟器好使,安卓模拟器不好使. 分为2种情况: 但是在android studo中新建安卓项目,却可以用安卓模拟器运行启动. 解决方法: 1.首先启动vpn,让项目可以提示错误. 2.然后再android studo中运行,如果报错,可能会显示一个版本号,例如:30.0.3 那么就设置 android studo的Android

    2024年02月11日
    浏览(39)
  • flutter 代码混淆

    Flutter 应用混淆: Flutter 应用的混淆非常简单,只需要在构建 release 版应用时结合使用 --obfuscate 和 --split-debug-info 这两个参数即可。 –obfuscate --split-debug-info 用来指定输出调试文件的位置,该命令会生成一个符号映射表。目前支持 apk,appbundle,ios 和 ios-framework 等目标平台(

    2024年02月04日
    浏览(31)
  • ​flutter 代码混淆

    Flutter 应用混淆:Flutter 应用的混淆非常简单,只需要在构建 release 版应用时结合使用 --obfuscate 和 --split-debug-info 这两个参数即可。–obfuscate --split-debug-info 用来指定输出调试文件的位置,该命令会生成一个符号映射表。目前支持 apk,appbundle,ios 和 ios-framework 等目标平台(m

    2024年02月04日
    浏览(30)
  • 如何使用代码混淆技术保护移动应用程序安全

    在移动应用开发过程中,代码保护一直是一个重要的议题。为了保护应用程序免受黑客攻击和逆向工程师的破解,开发人员使用各种方法来加强应用程序的安全性。其中,代码混淆是一种常用的技术,可以通过对代码进行混淆、压缩和重命名等操作,使得应用程序的代码难以

    2024年01月17日
    浏览(70)
  • VIVO手机调试Flutter应用卡在启动页面 黑屏 白屏问题

    vivo系统android13发现调试flutter应用卡在启动页 并且没有任何报错,问题如下 https://github.com/flutter/flutter/issues/117019 我猜这跟vivo瞎几把隐藏系统log有关。 需要你提供imei1给vivo开发授权才能正常调试。 步骤如下 1 拨号盘输入 *#06# 长按复制imei1备用 2.添加企业人员联系 3002261823 3

    2024年02月13日
    浏览(45)
  • 如何处理Flutter应用在iOS平台上的兼容性问题

    大家好,我是咕噜铁蛋!今天我想和大家聊聊一个常见但令人头疼的问题——Flutter应用在iOS平台上的兼容性问题。在开发跨平台应用时,尤其是在Android和iOS两大平台上,兼容性问题总是难以避免。而Flutter,作为一个旨在解决跨平台开发难题的框架,虽然大大简化了这一过程

    2024年04月14日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包