我不是专家,也不是很精通操作系统和 shell 命令,所以我来寻求帮助。我成功地将 Flutter 项目的 API 密钥存储为环境变量,直到我遇到问题(与环境无关)并且不得不重新安装 Flutter SDK。Flutter SDK 现在位于不同的文件夹中,我已将 PATH 更改为包含它,因此创建和运行项目没有问题。
如果我调用$**printenv**
任何终端会话,它会按应有的方式打印此内容(排除一些对,但所有默认值都在那里):
BEAR_TOKEN=*********
SDKMAN_CURRENT_API=https://api.sdkman.io/2
USER=<user>
SDKMAN_LEGACY_API=https://api.sdkman.io/1
PATH=/Users/<user>/.sdkman/candidates/kotlin/current/bin:/Users/<user>/Dev/Flutter/flutter/bin:/Users/<user>/.pub-cache/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/<user>/Desktop/android:
PWD=/Users/<user>
LANG=en_US.UTF-8
SDKMAN_VERSION=5.6.1+290
XPC_FLAGS=0x0
HOME=/Users/<user>
SDKMAN_DIR=/Users/<user>/.sdkman
SDKMAN_CANDIDATES_DIR=/Users/<user>/.sdkman/candidates
RAPID_API_KEY=***************
但是,现在当我通过应用程序中的源代码打印我的环境时,它会打印:
PATH:/sbin:/system/sbin:/product/bin:/apex/com.android.runtime/bin:/system/bin:/system/xbin:/odm/bin:/vendor/bin:/vendor/xbin,
ANDROID_BOOTLOGO: 1,
ANDROID_ROOT: /system,
ANDROID_ASSETS: /system/app,
ANDROID_DATA: /data,
ANDROID_STORAGE: /storage,
ANDROID_RUNTIME_ROOT: /apex/com.android.runtime,
ANDROID_TZDATA_ROOT: /apex/com.android.tzdata,
EXTERNAL_STORAGE: /sdcard,
ASEC_MOUNTPOINT: /mnt/asec,
BOOTCLASSPATH: /apex/com.android.runtime/javalib/core-oj.jar:/apex/com.android.runtime/javalib/core-libart.jar:/apex/com.android.runtime/javalib/okhttp.jar:/apex/com.android.runtime/javalib/bouncycastle.jar:/apex/com.android.runtime/javalib/apache-xml.jar:/system/framework/framework.jar:/system/framework/ext.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/system/framework/android.test.base.jar:/apex/com.android.conscrypt/javalib/conscrypt.jar:/apex/com.android.media/javalib/updatable-media.jar,
DEX2OATBOOTCLASSPATH: /apex/com.android.runtime/javalib/cor
因此,这些显然是非常不同的环境,因此我什至无法在 Flutter 应用程序中访问我的 API 密钥。它似乎只影响 Flutter 项目。任何人都可以帮助我“重定向”或纠正我的环境吗?我不知道这是怎么发生的,但据我所知,我已经用尽了所有选择。我正在运行 MacOS High Sierra 10.13.6。
编辑:我正在通过终端(IDE 终端窗口和终端应用程序)运行我的项目。
谢谢你!