在 Flutter 中设置 ENVIED 包以隐藏 API 密钥时出现问题

Kdo*_*don 4 obfuscation environment-variables api-key flutter

我想在我的 flutter 应用程序中使用 API 密钥,并且已经了解到enenved包是隐藏 API 密钥的好工具。

\n

问题是我无法让它工作。这就是我所做的:

\n
    \n
  1. 安装了3个包:
  2. \n
\n
$ flutter pub add envied\n$ flutter pub add --dev envied_generator\n$ flutter pub add --dev build_runner\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. 在根文件夹中创建一个名为 .env 的文件来存储密钥
  2. \n
\n
API_KEY=1234567890\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. 在 lib/env/env.dart 中创建了一个类
  2. \n
\n
import \'package:envied/envied.dart\';\n\npart \'env.g.dart\';\n\n@Envied(path: \'.env\')\nabstract class Env {\n  @EnviedField(varName: \'API_KEY\')\n  static final apiKey = _Env.apiKey;\n}\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. 然后运行:
  2. \n
\n
flutter pub run build_runner build\n
Run Code Online (Sandbox Code Playgroud)\n

然后我得到这个错误:

\n
[SEVERE] envied_generator:envied on lib/env/env.dart:\n\nEnvied can only handle types such as `int`, `double`, `num`, `bool` and `String`. Type `InvalidType` is not one of them.\n  \xe2\x95\xb7\n9 \xe2\x94\x82   static final apiKey = _Env.apiKey;\n\n
Run Code Online (Sandbox Code Playgroud)\n

并且不会生成 env.g.dart 文件。

\n

我已经尝试了几次,据我所知,我完全遵循 pub.dev 上的设置,所以不确定如何修复它。

\n

Mic*_*ele 13

为了使混淆器工作,您需要指定变量类型。例子:

static final String apiKey = _Env.apiKey;
Run Code Online (Sandbox Code Playgroud)