Flutter 环境变量入坑指南

363 阅读2分钟

鸿蒙突击队/flutter

OpenHarmony-SIG/flutter_flutter

1.1 配置

iterm 配置:

配置 iTerm

zshrc 配置


# 适配安卓开发环境
export ANDROID_SDK_ROOT=/Users/用户名/Library/Android/sdk
export PATH=$ANDROID_SDK_ROOT/emulator:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/tools/bin:$ANDROID_SDK_ROOT/platform-tools:$PATH

# Flutter 快捷命令
alias cleanFlutterLockFile="rm -rf /Users/用户名/fvm/default/bin/cache/lockfile"
alias killFlutter="killall -9 dart"

# OpenJDK 配置
export PATH="/opt/homebrew/opt/openjdk/bin:$PATH"

# 国内镜像
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

# 根据当前使用的 Flutter 版本设置 PUB_CACHE 目录和 Flutter 路径
function set_flutter_version() {
  local version=$1
  export PUB_CACHE=$HOME/.pub-cache-$version
  export PATH="$PUB_CACHE/bin:$HOME/fvm/versions/$version/bin:$PATH"
}

# 使用Flutter官方稳定版本的flutter和dart版本
alias use_flutter_release="set_flutter_version 3.24.5 && export PATH=$HOME/fvm/versions/3.24.5/bin:$PATH"

# 使用鸿蒙突击版本的flutter和dart版本
alias use_ohos_dev="set_flutter_version ohos_dev && export PATH=$HOME/fvm/versions/ohos_dev/bin:$PATH"

# 使用鸿蒙稳定版本的flutter和dart版本
alias use_ohos_release="set_flutter_version ohos_release && export PATH=$HOME/fvm/versions/ohos_release/bin:$PATH"

# 默认使用Flutter官方稳定版本的flutter和dart版本
alias use_flutter_default="set_flutter_version 3.24.5 && export PATH=$HOME/fvm/versions/3.24.5/bin:$PATH"

# HamonyOS SDK
export TOOL_HOME=/Applications/DevEco-Studio.app/Contents # mac环境
export DEVECO_SDK_HOME=$TOOL_HOME/sdk # command-line-tools/sdk
export PATH=$TOOL_HOME/tools/ohpm/bin:$PATH # command-line-tools/ohpm/bin
export PATH=$TOOL_HOME/tools/hvigor/bin:$PATH # command-line-tools/hvigor/bin
export PATH=$TOOL_HOME/tools/node/bin:$PATH # command-line-tools/tool/node/bin

# Java 配置
export JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

#配置自定义命令
alias run_ios_mini_sdk='/Users/用户名/bashShell/update_ios_deployment_target.sh'
alias run_android_mini_sdk='/Users/用户名/bashShell/update_android_deployment_target.sh'

使用的时候 根据命令去切换脚本

使用fvm 去管理版本

版本配置脚本

ios:

#!/bin/bash

# 设置最低支持的 iOS 版本
MIN_IOS_VERSION="13.0"

# 更新 Podfile
echo "Updating Podfile..."
sed -i '' "s/platform :ios, '[0-9.]*'/platform :ios, '$MIN_IOS_VERSION'/" ios/Podfile

# 更新 Xcode 项目文件
echo "Updating Xcode project files..."
plutil -replace MinimumOSVersion -string $MIN_IOS_VERSION ios/Runner/Info.plist

# 更新所有 Pod 项目的 deployment target
echo "Updating Pod deployment targets..."
cd ios
pod install

# 使用 xcodeproj 工具更新所有 target 的 deployment target
if ! command -v xcodeproj &> /dev/null
then
    echo "xcodeproj could not be found, installing..."
    gem install xcodeproj
fi

ruby -e "
require 'xcodeproj'
project_path = 'Runner.xcodeproj'
project = Xcodeproj::Project.open(project_path)
project.targets.each do |target|
  target.build_configurations.each do |config|
    config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '$MIN_IOS_VERSION'
  end
end
project.save
"

echo "Done! Minimum iOS deployment target set to $MIN_IOS_VERSION."

安卓:

#!/bin/bash

# 检查是否在 Flutter 项目根目录中
if [ ! -f "pubspec.yaml" ]; then
  echo "Error: This script must be run from the root of a Flutter project."
  exit 1
fi

# 设置 Android 项目的 minSdkVersion
MIN_SDK_VERSION=23

# 更新 android/app/build.gradle 文件
echo "Forcing minSdkVersion to $MIN_SDK_VERSION in android/app/build.gradle..."

# 强制设置 minSdkVersion 为 23
sed -i '' "s/minSdkVersion [0-9]+/minSdkVersion $MIN_SDK_VERSION/" android/app/build.gradle

# 如果不存在 minSdkVersion 配置项,则添加
if ! grep -q "minSdkVersion" android/app/build.gradle; then
  sed -i '' "/defaultConfig {/a\
        minSdkVersion $MIN_SDK_VERSION
  " android/app/build.gradle
fi

# 确保 minSdkVersion 设置为 23
sed -i '' "/defaultConfig {/!b;n;c\
        minSdkVersion $MIN_SDK_VERSION
" android/app/build.gradle

echo "Done! Android minSdkVersion set to $MIN_SDK_VERSION."

1.2. FVM 管理 Flutter 版本

可以使用 FVM 管理本地 Flutter 的版本。

github地址:github.com/leoafarias/…

你可以使用 Homebrew package manager 在 Mac OS X 中安装 FVM。

安装 FVM:

brew tap leoafarias/fvm
brew install fvm

卸载 FVM:

brew uninstall fvm
brew untap leoafarias/fvm

1.2. 安装和切换 Flutter 版本

在海外V5.5.0+版本中,可以安装 Flutter 2.2.0 版本

安装 Flutter:

fvm install 3.3.7
fvm global 3.3.7 # 可以用 global
flutter doctor -v  # 按照提示安装各种插件,直到没有提示错误

如果需要切换本地已安装的 Flutter 版本,用 fvm use命令(或 fvm global 命令),例如 切换至 Flutter 2.0.4:

fvm global 2.0.4 # 如果提示 use 用不了,可以用 global

在hw_flutter目录下,安装第三方库,执行如下命令:

flutter pub get

3, 问题和解决方案:

问题:

 cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.

解决方法:

image.png