【问题标题】:How to disable code obfuscation in Flutter release apk?如何在 Flutter 发布 apk 中禁用代码混淆?
【发布时间】:2020-07-10 22:40:17
【问题描述】:

我利用 agora-rtc-engine (https://pub.dev/packages/agora_rtc_engine) 在 Flutter 中构建了一个视频会议应用程序

我的应用在调试版本上运行良好,但每当我尝试在应用的发布版本中加入会议室/视频会议时,它就会崩溃。该库的 pub-dev 页面提到这是由于 Flutter 对代码进行了混淆。他们展示的防止崩溃的方法已经过时(proguard.rules)。那么,我现在该如何解决呢?

这里是完整的源代码:https://github.com/CodeSarthak/Vartalap

感谢任何帮助。非常感谢!

【问题讨论】:

    标签: android flutter obfuscation agora.io


    【解决方案1】:

    通常情况下,您只需要添加一个设置很少的文件:D

    • 创建一个 proguard 规则来定义要防止的内容 这是对我有用的内容,根据您的应用程序,您可能需要添加更多特定于您的解决方案的内容。 :D
    • 创建 ProGuard 文件

    代码: 创建文件:proguard-rules.pro

    ## Flutter wrapper
    -keepattributes Signature
    -keep class io.flutter.app.** { *; }
    -keep class io.flutter.plugin.**  { *; }
    -keep class io.flutter.util.**  { *; }
    -keep class io.flutter.view.**  { *; }
    -keep class io.flutter.**  { *; }
    -keep class io.flutter.plugins.**  { *; }
    -keep class com.google.firebase.** { *; }
    -keepattributes JavascriptInterface
    -keepattributes Annotation
    -dontwarn com.razorpay.**
    -keep class com.razorpay.** { *; }
    -optimizations !method/inlining/
    -keepclasseswithmembers class * {public void onPayment*(...);}
    -keepclassmembers class * {@android.webkit.JavascriptInterface ;}
    -keepclassmembers class com.yourpackagehere.models.** { *; }
    -dontwarn io.flutter.embedding.**
    
    • 并将其添加到应用级 gradle 文件中

    代码:

    在 build.gradle 中

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

    希望对你有帮助:D

    【讨论】:

    • -keepclassmembers class * {@android.webkit.JavascriptInterface ;} 这一行打破了构建...删除它可以构建 appbundle
    猜你喜欢
    • 2022-01-16
    • 2023-02-14
    • 1970-01-01
    • 2019-11-23
    • 2014-05-09
    • 2021-04-22
    • 1970-01-01
    • 2013-09-03
    • 2023-04-08
    相关资源
    最近更新 更多