国产精品主播叶子闺蜜_三级高清精品国产_99久久精品国产麻豆_国产精品无码免费专区午夜

歡迎您光臨深圳塔燈網絡科技有限公司!
電話圖標 余先生:13699882642

網站百科

為您解碼網站建設的點點滴滴

Flutter中的代碼混淆

發表日期:2018-08 文章編輯:小燈 瀏覽次數:2986

??原文鏈接:https://github.com/flutter/flutter/wiki/Obfuscating-Dart-Code

??以下內容均來自Flutter Github官方Wiki。

??代碼混淆可以隱藏你的Dart代碼中的函數和類名,讓反編譯App變得困難。
??注:Dart的混淆還沒有經過完全的測試,如果發現問題請到GitHub上提 issue 。關于混淆的問題,還可以參考 Stack Overflow 上的這個問題。
??Flutter中的混淆配置其實是在Android和iOS端分別配置的。

Android

??在<ProjectRoot>/android/gradle.properties文件中添加如下代碼:

extra-gen-snapshot-options=--obfuscate 

??默認情況下,Flutter不會混淆或者縮減Android host,如果你使用了第三方的Java或者Android庫,那么你可能需要減小APK體積,或者防止你的App被反編譯。

  • Step 1:配置Proguard文件
    新建/android/app/proguard-rules.pro文件,然后添加如下配置:
#Flutter Wrapper -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.**{ *; } 

上面的配置只保護Flutter庫,其他額外的庫(比如Firebase)需要你自己添加配置。

  • Step 2:
    打開/android/app/build.gradle文件,定位到buildTypes處,在release配置中將minifiyEnableduseProguard標志設為true,同時還需要指向Step1中創建的ProGuard文件:
android {...buildTypes {release {signingConfig signingConfigs.debugminifyEnabled true useProguard trueproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'} } } 

注意混淆和縮減無用代碼會加長App的編譯時間。

iOS

  • Step 1:修改 "build aot"
    <ProjectRoot>/packages/flutter_tools/bin/xcode_backend.sh文件中添加build aotflag:
${extra_gen_snapshot_options_or_none} 

然后定義這個flag:

local extra_gen_snapshot_options_or_none="" if [[ -n "$EXTRA_GEN_SNAPSHOT_OPTIONS" ]]; then extra_gen_snapshot_options_or_none="--extra-gen-snapshot-options=$EXTRA_GEN_SNAPSHOT_OPTIONS" fi 
  • Step 2:應用你的修改
    在你的App的根目錄下運行以下兩條命令:
git commit -am "Enable obfuscation on iOS" flutter 
  • Step 3:更改release配置
    <ProjectRoot>/ios/Flutter/Release.xcconfig中添加下面這行:
EXTRA_GEN_SNAPSHOT_OPTIONS=--obfuscate 

本頁內容由塔燈網絡科技有限公司通過網絡收集編輯所得,所有資料僅供用戶學習參考,本站不擁有所有權,如您認為本網頁中由涉嫌抄襲的內容,請及時與我們聯系,并提供相關證據,工作人員會在5工作日內聯系您,一經查實,本站立刻刪除侵權內容。本文鏈接:http://www.juherenli.com/17671.html
相關APP開發