androidflutterobfuscationagora.io

How to disable code obfuscation in Flutter release apk?


I have built out a video conferencing app in Flutter by leveraging the agora-rtc-engine (https://pub.dev/packages/agora_rtc_engine)

My app is working perfectly find on the debug version, but it crashes whenever I try to join a room/video conference in the release version of the app. The pub-dev page of the library mentions that it is due to code obfusciation by Flutter. The method they have shown to prevent the crash is outdated (proguard.rules). So, how do I go about fixing it now?

Here is the complete source code : https://github.com/CodeSarthak/Vartalap

Any help is appreciated. Thanks a lot!


Solution

  • It Normally Happens you just need to add a file with little settings :D

    proguard screenshot

    Code: Create a File: 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.**
    

    settings in gradle

    Code:

    Inside build.gradle

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

    Hope this Helps you :D