Как отключить обфускацию кода в apk релиза Flutter? - PullRequest
0 голосов
/ 10 июля 2020

Я создал приложение для видеоконференцсвязи на Flutter, используя agora-rt c -engine (https://pub.dev/packages/agora_rtc_engine)

Мое приложение отлично работает найти при отладке версия, но он вылетает всякий раз, когда я пытаюсь присоединиться к конференц-залу / видеоконференции в окончательной версии приложения. На странице библиотеки pub-dev упоминается, что это произошло из-за обфускации кода Flutter. Показанный ими метод предотвращения cra sh устарел (proguard.rules). Итак, как мне go исправить это сейчас?

Вот полный исходный код: https://github.com/CodeSarthak/Vartalap

Любая помощь приветствуется. Большое спасибо!

1 Ответ

0 голосов
/ 10 июля 2020

Обычно бывает, что вам просто нужно добавить файл с небольшими настройками: D

  • Создайте правило proguard, чтобы определить, что следует предотвращать. Вот что работает для меня, на основе вашего приложения, которое может вам понадобиться чтобы добавить к вашему решению другие особенности c. : D
  • Создать файл ProGuard

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.**
  • And to Add it to app level gradle file

настройки в Gradle

Код:

Внутри build.gradle

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

Надеюсь, это вам поможет: D

...