懒得说废话了,简单来说就是保护写在程序中的APIKEY之类的敏感变量,提高反编译后的分析难度,同时避免直接push到远程仓库。

一、安装依赖

在项目根目录下的pubspec.yaml文件中添加envied库。

dependencies:
  envied: ^1.1.1

然后运行下面的命令下载依赖。

flutter pub get

二、使用方式

1.准备相关文件

在项目根目录下新建一个名为 .env的文件。
请添加图片描述

然后在里面写入自己的敏感数据,书写格式:KEY=VALUE。比如:

DOUBAO_APIKEY=xxxxxxxxxxxx

然后再在lib目录下的任意位置新建一个dart文件,可以命名为env.dart,之后在文件中写入以下内容(这里依然拿上面的DOUBAO_APIKEY举例):

import 'package:envied/envied.dart';

part 'env.g.dart'; //一开始这里会报错,不用管,后面这个文件会自动生成

(path: '.env') //这里指定之前的.env文件
abstract class Env {
    (varName: 'DOUBAO_APIKEY', obfuscate: true) //名称和.env文件中的保持一致,同时打开混淆
    static final String doubaoApiKey = _Env.doubaoApiKey; //报错先不管
}

2.安装生成器

我们要利用envied_generator生成相关文件,并完成混淆,运行下面的命令安装:

dart pub add envied dev:envied_generator dev:build_runner

3.运行生成脚本

dart run build_runner build

运行成功后会有这样的提示
请添加图片描述

并且你能看到在env.dart旁边生成了一个env.g.dart文件,然后之前的报错就没有了。
请添加图片描述

4.使用密钥

当我们完成了密钥的混淆后,想在其他地方使用密钥的时候只需要这么写:

import '../utilis/env.dart'; //引入之前写的env.dart文件,这里的路径按照你自己的写


final apiKey = Env.doubaoApiKey;

三、非常重要!!!

一定别忘了写.gitignore,否则你就白干了,将.env文件和自动生成的env.g.dart文件添加进去。

*.env
env.g.dart
Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐