Skip to content

Commit

Permalink
add proguard config in chinese
Browse files Browse the repository at this point in the history
  • Loading branch information
sbingo authored May 7, 2019
1 parent ec5ab35 commit 78fd706
Showing 1 changed file with 49 additions and 3 deletions.
52 changes: 49 additions & 3 deletions android-release-build.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,6 @@ keywords: 发布Flutter应用
* `uses-permission`: 如果您的应用程序代码不需要Internet访问,请删除`android.permission.INTERNET`权限。标准模板包含此标记是为了启用Flutter工具和正在运行的应用程序之间的通信。

## 查看构建配置

Review the default [Gradle build file][gradlebuild] file `build.gradle`
located in `<app dir>/android/app/` and verify the values are correct, especially:
查看默认[Gradle 构建文件][gradlebuild]"build.gradle",它位于`<app dir>/android/app/`,验证这些值是否正确,尤其是:

* `defaultConfig`:
Expand Down Expand Up @@ -118,6 +115,55 @@ storeFile=<location of the key store file, e.g. /Users/<user name>/key.jks>
```
现在,您的应用的release版本将自动进行签名。

## 开启混淆

默认情况下 flutter 不会开启 Android 的混淆。

如果使用了第三方 Java 或 Android 库,也许你想减小 apk 文件的大小或者防止代码被逆向破解。

### 配置混淆

创建 `/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)需要添加与之对应的规则。

### 开启混淆/压缩

打开 `/android/app/build.gradle` 文件,定位到 `buildTypes` 块。

`release ` 配置中将 `minifyEnabled ``useProguard ` 设为 `true`,再将混淆文件指向上一步创建的文件。

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

## 构建一个发布版(release)APK

本节介绍如何构建发布版(release)APK。如果您完成了前一节中的签名步骤,则会对APK进行签名。
Expand Down

0 comments on commit 78fd706

Please sign in to comment.