前言
欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net
在使用apple_product_name 库之前,需要正确搭建OpenHarmony 开发环境并配置相关依赖。环境搭建是所有开发工作的基础,一个正确且完整的开发环境能够避免后续开发过程中出现各种问题。本文将详细介绍从零开始的环境搭建流程,涵盖开发工具安装 、SDK配置 、项目依赖管理 、插件注册等各个环节,确保开发者能够顺利搭建起完整的开发环境并成功运行该库。
本文是apple_product_name OpenHarmony适配系列的第2篇,共30篇,从环境搭建到依赖配置全面覆盖开发准备工作。
一、开发环境总览
1.1 环境版本要求
在开始搭建环境之前,首先需要了解该库对开发环境的具体要求。以下是从项目pubspec.yaml中提取的真实版本约束:
yaml
environment:
sdk: ">=3.5.0 <4.0.0"
flutter: ">=3.22.0"
该库要求Dart SDK 版本在3.5.0及以上且低于4.0.0,Flutter版本在3.22.0及以上。这些版本约束确保了库能够使用最新的Dart语言特性(如增强的模式匹配、sealed class等),同时保持向前兼容性。
1.2 完整环境要求表
| 环境项 | 最低版本 | 推荐版本 | 说明 |
|---|---|---|---|
| Dart SDK | 3.5.0 | 3.5.0+ | 支持最新语言特性 |
| Flutter SDK | 3.22.0 | 3.22.0+ | 官方稳定版 |
| Flutter OHOS | 3.35.7-dev | 3.35.7-dev | 鸿蒙适配分支 |
| DevEco Studio | 6.0.2 Release | 6.0.2.640 | 华为官方IDE |
| OpenHarmony SDK | API 20 | API 20 | 系统能力支持 |
| ROM版本 | 6.0.0.130 SP8 | 6.0.0.130 SP8+ | 设备系统版本 |
重要提示 :Flutter OHOS是由开源鸿蒙社区维护的Flutter适配分支,与官方Flutter SDK不同,需要单独克隆和配置。
1.3 环境依赖关系
各环境组件之间存在依赖关系,安装顺序很重要:
- 首先安装DevEco Studio(提供OpenHarmony SDK和hdc工具)
- 然后克隆Flutter OHOS仓库并配置环境变量
- 接着创建项目并配置pubspec.yaml依赖
- 最后执行flutter pub get安装所有依赖包
二、Flutter OHOS环境配置
2.1 克隆Flutter OHOS仓库
bash
# 克隆Flutter OHOS仓库
git clone https://gitee.com/openharmony-sig/flutter_flutter.git
# 切换到稳定分支
git checkout ohos-3.35.7-dev
# 配置环境变量(写入.zshrc永久生效)
echo 'export PATH="$PATH:/path/to/flutter_flutter/bin"' >> ~/.zshrc
source ~/.zshrc
Flutter OHOS是专门为OpenHarmony平台适配的Flutter版本,它在官方Flutter SDK的基础上增加了对OpenHarmony平台的编译 、构建 和运行 支持。需要特别注意的是,环境变量的配置必须将Flutter OHOS的bin目录添加到系统的PATH中,建议写入到shell配置文件中永久生效。
2.2 验证Flutter环境
bash
# 验证Flutter环境
flutter doctor
# 预期输出示例:
# Doctor summary (to see all details, run flutter doctor -v):
# [✓] Flutter (Channel ohos, 3.35.7-dev)
# [✓] OpenHarmony toolchain - develop for OpenHarmony devices
# [✓] DevEco Studio (version 6.0.2)
# [✓] Connected device (1 available)
运行flutter doctor可以检查所有必要工具和SDK是否正确安装。如果某一项显示[✗],需要根据提示信息逐一解决后再继续。

上图展示了flutter doctor命令的预期输出结果,所有检查项都应显示绿色对勾。
提示 :如果
flutter doctor报告DevEco Studio未找到,请检查DevEco Studio的安装路径是否正确,并确保已在DevEco Studio中安装了OpenHarmony SDK。
三、项目pubspec.yaml配置
3.1 库的pubspec.yaml分析
以下是apple_product_name 库自身的pubspec.yaml完整配置(来自项目根目录):
yaml
name: apple_product_name
description: Library for translating Apple machine identifiers into Apple product names (e.g. 'iPhone17,1' to 'iPhone 16 Pro')
version: 3.7.0
homepage: https://github.com/kyle-seongwoo-jun/flutter_apple_product_name
environment:
sdk: ">=3.5.0 <4.0.0"
flutter: ">=3.22.0"
dependencies:
flutter:
sdk: flutter
device_info_plus: ">=10.0.0 <12.0.0"
库名虽然包含"Apple",但OpenHarmony适配版本 已全面扩展到华为和荣耀设备。当前版本3.7.0 ,依赖device_info_plus获取Apple设备信息,鸿蒙平台则通过自己的MethodChannel实现。
3.2 鸿蒙平台插件声明
yaml
flutter:
plugin:
platforms:
ohos:
pluginClass: AppleProductNamePlugin
pubspec.yaml中通过flutter.plugin.platforms.ohos声明了鸿蒙平台的插件入口类为AppleProductNamePlugin 。Flutter框架在应用启动时会根据这个配置自动加载并注册原生插件。这是Flutter插件机制的标准做法,每个平台都有对应的pluginClass声明。
3.3 在应用项目中引入依赖
在你自己的应用项目中,需要通过Git方式引入该库:
yaml
# 你的应用项目 pubspec.yaml
dependencies:
flutter:
sdk: flutter
apple_product_name:
git:
url: https://gitcode.com/oh-flutter/flutter_apple_product_name.git
ref: main
由于OpenHarmony适配版本尚未发布到pub.dev官方仓库,需要通过Git依赖 引入。ref: main指定主分支最新代码,确保获取最新的设备映射数据。
| 依赖方式 | 语法 | 适用场景 |
|---|---|---|
| pub.dev | apple_product_name: ^3.7.0 |
官方版本(仅iOS/macOS) |
| Git主分支 | ref: main |
开发阶段,获取最新代码 |
| Git标签 | ref: v3.7.0 |
生产环境,锁定版本 |
| Git提交 | ref: abc1234 |
精确锁定某次提交 |
| 本地路径 | path: ../apple_product_name |
本地开发调试 |
生产建议 :在正式项目中,建议将
ref指向具体的tag或commit hash,避免因上游代码更新引入不可预期的变化。
四、执行依赖安装
4.1 安装依赖包
bash
# 获取依赖包
flutter pub get
# 查看依赖树
flutter pub deps
# 查看过期依赖
flutter pub outdated
执行flutter pub get命令后,Flutter会根据pubspec.yaml中的配置自动从Git仓库拉取代码并完成依赖解析。这个过程中,Flutter会分析所有直接依赖和传递依赖之间的版本约束关系,找到一组满足所有约束的版本组合,并将解析结果记录在pubspec.lock文件中。
4.2 示例工程的依赖配置
以下是项目中example应用 的pubspec.yaml真实配置:
yaml
name: apple_product_name_example
description: Demonstrates how to use the apple_product_name plugin.
publish_to: "none"
environment:
sdk: ">=3.5.0 <4.0.0"
dependencies:
flutter:
sdk: flutter
apple_product_name:
path: ../
cupertino_icons: ^1.0.2
device_info_plus: ^11.0.0
示例工程使用path: ../引用父目录的库源码,这是Flutter插件开发中的标准做法。同时依赖了cupertino_icons提供iOS风格图标,以及device_info_plus ^11.0.0用于获取Apple设备信息。
4.3 依赖安装常见问题
如果网络环境受限导致下载缓慢,可以配置国内镜像源:
bash
# 配置Flutter中国镜像
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
# 重新获取依赖
flutter pub get
常见问题及解决方案:
- 网络超时:配置上述镜像源后重试
- 版本冲突 :运行
flutter pub deps查看依赖树,找到冲突点 - 缓存损坏 :执行
flutter pub cache repair修复缓存
五、OpenHarmony模块配置
5.1 oh-package.json5配置
以下是项目中ohos/oh-package.json5的真实内容:
json5
{
"name": "apple_product_name",
"version": "1.0.0",
"description": "Library for translating Apple machine identifiers into Apple product names for OpenHarmony.",
"main": "index.ets",
"author": "",
"license": "MIT",
"dependencies": {
"@ohos/flutter_ohos": "file:./har/flutter.har"
}
}
oh-package.json5是OpenHarmony模块的核心配置文件,其作用类似于Node.js生态中的package.json。各字段含义如下:
| 字段 | 值 | 说明 |
|---|---|---|
| name | apple_product_name | 模块名称,其他模块引用时使用 |
| version | 1.0.0 | 模块版本号 |
| main | index.ets | 模块入口文件 |
| license | MIT | 开源许可证 |
| dependencies | @ohos/flutter_ohos | Flutter鸿蒙运行时依赖 |
@ohos/flutter_ohos通过file:./har/flutter.har引用本地的Flutter HAR包,这是Flutter OHOS插件开发中的标准做法,确保插件能够正确链接Flutter运行时库。
5.2 插件入口文件
ohos/index.ets是插件的导出入口,内容非常简洁:
typescript
import AppleProductNamePlugin from './src/main/ets/components/plugin/AppleProductNamePlugin';
export default AppleProductNamePlugin;
export { AppleProductNamePlugin };
这个文件的职责是将AppleProductNamePlugin 类从内部路径导出为模块的公开接口。export default提供默认导出,export { AppleProductNamePlugin }提供命名导出,两种方式都可以在其他模块中使用。
六、模块构建配置
6.1 build-profile.json5
以下是ohos/build-profile.json5的真实内容:
json5
{
"apiType": "stageMode",
"buildOption": {
},
"targets": [
{
"name": "default"
}
]
}
apiType设置为stageMode表示使用Stage模型 ,这是OpenHarmony从API 9开始推荐的应用开发模型。相比早期的FA模型,Stage模型提供了更加灵活的组件化开发能力和更完善的生命周期管理机制。targets数组定义了构建目标,default是标准构建目标。
6.2 模块描述文件
ohos/src/main/module.json5定义了模块的基本属性:
json5
{
"module": {
"name": "apple_product_name",
"type": "har",
"deviceTypes": [
"default",
"tablet"
]
}
}
各字段说明:
- name :模块名称,需与
oh-package.json5中的名称一致 - type :
har表示这是一个HAR(Harmony Archive)共享包,类似Android的AAR - deviceTypes :支持的设备类型,
default表示手机,tablet表示平板
扩展提示 :如果未来需要支持智慧屏、手表等设备,只需在
deviceTypes数组中添加对应的设备类型标识(如tv、wearable)即可。
6.3 hvigor构建脚本
ohos/hvigorfile.ts是hvigor构建系统的配置文件:
typescript
export { harTasks } from '@ohos/hvigor-ohos-plugin';
hvigor是OpenHarmony官方提供的构建工具,类似于Android生态中的Gradle 。通过导出harTasks,该模块将按照HAR模块的标准构建流程进行编译和打包。这一行代码包含了HAR模块构建所需的所有任务定义,包括代码编译、资源处理、模块打包等步骤。
七、示例工程配置
7.1 应用级配置
以下是example/ohos/AppScope/app.json5的真实内容:
json5
{
"app": {
"bundleName": "com.example.apple_product_name_example",
"vendor": "example",
"versionCode": 1000000,
"versionName": "1.0.0",
"icon": "$media:app_icon",
"label": "$string:app_name"
}
}
app.json5定义了应用的全局信息。bundleName是应用的唯一标识符,类似Android的applicationId。versionCode使用整数表示版本号(1000000对应1.0.0),icon和label通过资源引用的方式指定应用图标和名称。
7.2 构建产品配置
以下是example/ohos/build-profile.json5的真实内容:
json5
{
"app": {
"signingConfigs": [],
"products": [
{
"name": "default",
"signingConfig": "default",
"compatibleSdkVersion": "5.0.5(17)",
"runtimeOS": "HarmonyOS"
}
],
"buildModeSet": [
{ "name": "debug" },
{ "name": "profile" },
{ "name": "release" }
]
},
"modules": [
{
"name": "entry",
"srcPath": "./entry",
"targets": [
{
"name": "default",
"applyToProducts": ["default"]
}
]
}
]
}
这个配置文件定义了应用的构建产品和模块结构:
| 配置项 | 值 | 说明 |
|---|---|---|
| compatibleSdkVersion | 5.0.5(17) | 兼容的最低SDK版本 |
| runtimeOS | HarmonyOS | 目标运行系统 |
| buildModeSet | debug/profile/release | 三种构建模式 |
| modules.entry | ./entry | 主入口模块路径 |
八、插件注册配置
8.1 GeneratedPluginRegistrant
以下是example/ohos/entry/src/main/ets/plugins/GeneratedPluginRegistrant.ets的真实源码:
typescript
import { FlutterEngine, Log } from '@ohos/flutter_ohos';
import AppleProductNamePlugin from 'apple_product_name';
const TAG = "GeneratedPluginRegistrant";
export class GeneratedPluginRegistrant {
static registerWith(flutterEngine: FlutterEngine) {
try {
flutterEngine.getPlugins()?.add(new AppleProductNamePlugin());
} catch (e) {
Log.e(
TAG,
"Tried to register plugins with FlutterEngine ("
+ flutterEngine
+ ") failed.");
Log.e(TAG, "Received exception while registering", e);
}
}
}
插件注册是Flutter插件在OpenHarmony平台上正常工作的关键步骤。这段代码的核心逻辑:
- 通过
import AppleProductNamePlugin from 'apple_product_name'导入插件类 - 调用
flutterEngine.getPlugins()?.add()将插件实例注册到引擎 - 使用
try-catch包裹注册逻辑,注册失败时通过Log.e输出错误日志
注意 :如果忘记了这一步注册操作,在Dart侧调用插件方法时会抛出
MissingPluginException异常,这是开发过程中最常见的错误之一。
8.2 EntryAbility入口配置
以下是example/ohos/entry/src/main/ets/entryability/EntryAbility.ets的真实源码:
typescript
import { FlutterAbility, FlutterEngine } from '@ohos/flutter_ohos';
import { GeneratedPluginRegistrant } from '../plugins/GeneratedPluginRegistrant';
export default class EntryAbility extends FlutterAbility {
configureFlutterEngine(flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
GeneratedPluginRegistrant.registerWith(flutterEngine)
}
}
EntryAbility 是应用的入口Ability,继承自FlutterAbility基类。在OpenHarmony的Stage模型中,Ability是应用的基本组成单元。configureFlutterEngine方法会在Flutter引擎创建完成后、Dart代码开始执行前被调用,确保所有插件在应用逻辑运行之前就已经准备就绪。
8.3 插件注册流程
完整的插件注册流程如下:
应用启动
→ EntryAbility.configureFlutterEngine() 被调用
→ super.configureFlutterEngine() 初始化Flutter引擎
→ GeneratedPluginRegistrant.registerWith() 注册插件
→ flutterEngine.getPlugins()?.add(new AppleProductNamePlugin())
→ AppleProductNamePlugin.onAttachedToEngine() 被触发
→ MethodChannel("apple_product_name") 创建完成
→ Dart侧可以通过MethodChannel与原生层通信
这个流程保证了Dart侧在任何时候调用插件方法都能得到正确的响应。
九、Dart层API入口
9.1 OhosProductName类
以下是lib/apple_product_name_ohos.dart的真实源码(完整文件):
dart
/// HarmonyOS platform support for apple_product_name.
library apple_product_name_ohos;
import 'package:flutter/services.dart';
/// 鸿蒙平台设备名称获取工具类
class OhosProductName {
static const MethodChannel _channel = MethodChannel('apple_product_name');
static final _instance = OhosProductName._();
OhosProductName._();
/// Returns the singleton instance of [OhosProductName].
factory OhosProductName() => _instance;
/// 获取设备型号标识符,例如: "ALN-AL00"
Future<String> getMachineId() async {
final String? machineId = await _channel.invokeMethod('getMachineId');
return machineId ?? 'Unknown';
}
/// 获取设备产品名称,例如: "HUAWEI Mate 60 Pro"
Future<String> getProductName() async {
final String? productName = await _channel.invokeMethod('getProductName');
return productName ?? 'Unknown';
}
/// 根据型号标识符查找产品名称
Future<String> lookup(String machineId) async {
final String? productName = await _channel.invokeMethod('lookup', {
'machineId': machineId,
});
return productName ?? machineId;
}
/// 返回产品名称,如果未找到则返回 null
Future<String?> lookupOrNull(String machineId) async {
final String? productName = await _channel.invokeMethod('lookup', {
'machineId': machineId,
});
return productName;
}
}
这是鸿蒙平台的完整Dart API入口 ,采用单例模式 设计。通过MethodChannel('apple_product_name')与原生层通信,提供了四个核心方法。所有方法都是异步的,返回值都做了null安全处理 (??兜底)。
9.2 API方法对比
| 方法 | 返回类型 | 未找到时返回 | 典型场景 |
|---|---|---|---|
getMachineId() |
Future<String> |
"Unknown" | 获取型号标识符 |
getProductName() |
Future<String> |
"Unknown" | 获取友好名称 |
lookup(id) |
Future<String> |
原始id | 查询任意型号 |
lookupOrNull(id) |
Future<String?> |
null | 区分已知/未知设备 |
十、原生层插件核心结构
10.1 AppleProductNamePlugin类声明
以下是ohos/src/main/ets/components/plugin/AppleProductNamePlugin.ets中的插件类声明部分:
typescript
import {
FlutterPlugin,
FlutterPluginBinding,
MethodCall,
MethodCallHandler,
MethodChannel,
MethodResult,
} from '@ohos/flutter_ohos';
import { deviceInfo } from '@kit.BasicServicesKit';
const TAG = "AppleProductNamePlugin";
export default class AppleProductNamePlugin implements FlutterPlugin, MethodCallHandler {
private channel: MethodChannel | null = null;
constructor() {
}
getUniqueClassName(): string {
return TAG;
}
onAttachedToEngine(binding: FlutterPluginBinding): void {
this.channel = new MethodChannel(binding.getBinaryMessenger(), "apple_product_name");
this.channel.setMethodCallHandler(this);
}
onDetachedFromEngine(binding: FlutterPluginBinding): void {
if (this.channel != null) {
this.channel.setMethodCallHandler(null);
this.channel = null;
}
}
}
插件类实现了两个关键接口:
- FlutterPlugin :管理插件的生命周期(
onAttachedToEngine/onDetachedFromEngine) - MethodCallHandler :处理来自Dart层的方法调用(
onMethodCall)
onAttachedToEngine中创建了名为"apple_product_name"的MethodChannel ,这个通道名称必须与Dart层的MethodChannel('apple_product_name')完全一致。
10.2 方法路由
typescript
onMethodCall(call: MethodCall, result: MethodResult): void {
switch (call.method) {
case "getMachineId":
this.getMachineId(result);
break;
case "getProductName":
this.getProductName(result);
break;
case "lookup":
this.lookup(call, result);
break;
default:
result.notImplemented();
break;
}
}
onMethodCall方法通过switch语句将Dart层的方法调用路由到对应的原生实现。未识别的方法名会调用result.notImplemented()返回"方法未实现"错误。
十一、构建与运行
11.1 构建OpenHarmony应用
bash
# 构建debug版本HAP包
flutter build hap --debug
# 构建release版本HAP包
flutter build hap --release
# 查看详细构建日志
flutter build hap --debug --verbose
flutter build hap命令会执行完整的编译和打包流程,生成可安装的HAP文件(Harmony Ability Package)。构建过程包括:
- Dart代码编译为字节码
- ArkTS原生代码编译
- 资源文件打包
- 签名和生成最终HAP文件
11.2 安装到设备
bash
# 查看已连接的设备
hdc list targets
# 安装HAP包到设备
hdc install ./build/outputs/default/entry-default-signed.hap
# 启动应用
hdc shell aa start -a EntryAbility -b com.example.apple_product_name_example
hdc是OpenHarmony提供的设备连接工具,类似于Android的adb工具。主要功能对比:
| 功能 | hdc命令 | adb命令 |
|---|---|---|
| 查看设备 | hdc list targets |
adb devices |
| 安装应用 | hdc install xxx.hap |
adb install xxx.apk |
| 查看日志 | hdc hilog |
adb logcat |
| 文件传输 | hdc file send |
adb push |
| 远程Shell | hdc shell |
adb shell |
11.3 查看运行日志
bash
# 查看所有日志
hdc hilog
# 过滤插件相关日志
hdc hilog | grep "AppleProductNamePlugin"
# 过滤Flutter相关日志
hdc hilog | grep "flutter"
通过hdc hilog可以查看设备的实时日志输出,使用grep过滤关键词可以快速定位插件相关的日志信息,这在调试阶段非常有用。
十二、快速验证安装
12.1 验证代码
安装完成后,可以用以下代码快速验证库是否正常工作:
dart
import 'package:apple_product_name/apple_product_name_ohos.dart';
void main() async {
final ohos = OhosProductName();
// 验证三个核心方法
final productName = await ohos.getProductName();
print('设备名称: $productName'); // 例如: "HUAWEI Mate 60 Pro"
final machineId = await ohos.getMachineId();
print('型号标识: $machineId'); // 例如: "ALN-AL00"
final lookupResult = await ohos.lookup('ALN-AL00');
print('查询测试: $lookupResult'); // "HUAWEI Mate 60 Pro"
}
如果三个方法都能正常返回结果,说明库已经正确集成,环境搭建完成。
12.2 验证结果判断
| 验证项 | 预期结果 | 失败原因 |
|---|---|---|
| getProductName() | 返回设备友好名称 | 插件未注册或MethodChannel不匹配 |
| getMachineId() | 返回型号标识符 | deviceInfo API权限问题 |
| lookup("ALN-AL00") | 返回"HUAWEI Mate 60 Pro" | 映射表数据缺失 |
十三、常见配置问题排查
13.1 问题汇总与解决方案
bash
# 问题1:找不到@ohos/flutter_ohos模块
ohpm install
# 问题2:清理并重新获取依赖
flutter clean
flutter pub get
# 问题3:MissingPluginException异常
# 检查GeneratedPluginRegistrant.ets是否正确注册了插件
# 检查EntryAbility是否调用了registerWith方法
开发过程中最常见的三类问题:
- 模块依赖找不到 :执行
ohpm install安装OpenHarmony模块依赖 - MissingPluginException:检查插件注册链路是否完整
- 构建失败 :先
flutter clean清理缓存,再重新构建
13.2 环境配置检查清单
在开始开发前,逐项确认以下配置:
- Flutter OHOS已克隆并配置环境变量
-
flutter doctor所有检查项通过 -
pubspec.yaml中已添加apple_product_name依赖 -
flutter pub get执行成功 -
oh-package.json5配置正确 -
GeneratedPluginRegistrant.ets已注册插件 -
EntryAbility.ets已调用registerWith -
flutter build hap --debug构建成功
经验分享:大多数配置问题都与依赖安装不完整或版本不匹配有关,耐心地按照错误提示逐一排查通常都能顺利解决。
十四、项目文件结构总览
14.1 完整目录结构
apple_product_name/
├── lib/
│ ├── apple_product_name.dart # Apple设备查询API
│ ├── apple_product_name.g.dart # 自动生成的Apple设备映射表
│ └── apple_product_name_ohos.dart # 鸿蒙平台API(OhosProductName类)
├── ohos/
│ ├── oh-package.json5 # 鸿蒙包配置
│ ├── build-profile.json5 # 构建配置
│ ├── hvigorfile.ts # 构建脚本
│ ├── index.ets # 插件导出入口
│ └── src/main/
│ ├── module.json5 # 模块描述文件
│ └── ets/components/plugin/
│ └── AppleProductNamePlugin.ets # 原生插件实现
├── example/
│ ├── pubspec.yaml # 示例工程依赖
│ ├── lib/main.dart # 示例应用代码
│ └── ohos/
│ ├── AppScope/app.json5 # 应用级配置
│ ├── build-profile.json5 # 构建产品配置
│ └── entry/src/main/ets/
│ ├── entryability/EntryAbility.ets # 应用入口
│ └── plugins/GeneratedPluginRegistrant.ets # 插件注册
├── pubspec.yaml # 库的包配置
├── gen/ # Apple映射表生成脚本
└── test/ # 单元测试
开发者日常使用只需关注以下核心文件:
lib/apple_product_name_ohos.dart:Dart层API入口ohos/.../AppleProductNamePlugin.ets:原生层插件实现ohos/oh-package.json5:鸿蒙包配置example/:示例工程参考
总结
本文详细介绍了apple_product_name 库在OpenHarmony平台的完整环境搭建和依赖配置流程。从Flutter OHOS环境准备 、pubspec.yaml依赖配置 、oh-package.json5模块配置 、插件注册 到最终的构建运行验证,每个步骤都提供了项目中的真实代码和配置文件。正确的环境配置是后续所有开发工作的基础,只有在环境搭建完成且验证通过之后,才能开始进行功能开发和调试工作。
下一篇文章将介绍5分钟快速上手指南,通过简单的几个步骤即可在应用中获取设备的友好产品名称。
如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!
相关资源:
- OpenHarmony适配仓库:https://gitcode.com/oh-flutter/flutter_apple_product_name
- 开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net
- 原始GitHub仓库:https://github.com/kyle-seongwoo-jun/flutter_apple_product_name
- Flutter OHOS仓库:https://gitee.com/openharmony-sig/flutter_flutter
- device_info_plus:https://pub.dev/packages/device_info_plus
- DevEco Studio下载:https://developer.huawei.com/consumer/cn/deveco-studio
- OpenHarmony官方文档:https://www.openharmony.cn
- Flutter官方文档:https://flutter.dev