OpenHarmony-SIG/flutter_flutter
1.1 配置
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.
解决方法: