Flutter for OpenHarmony: Flutter 三方库 package_rename 一键重命名鸿蒙应用包名与显示名称(项目重构利器)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net

前言

在 OpenHarmony 应用开发过程中,我们经常会遇到“项目改名”的需求。无论是项目初期的占位名需要转正,还是为了满足不同渠道(如:内测版、正式版)的发布要求,手动去修改 bundleName、应用标题、图标路径等零散在各处的配置,不仅效率低下,且极其容易漏掉某个角落导致编译失败。

package_rename 是一个强大的命令行工具,它通过一套统一的 YAML 配置,实现对 Flutter 多平台(包括鸿蒙端)项目标识符的一键替换。


一、核心重命名链路

package_rename 扮演了全局搜索替换的智能管家。

pubspec.yaml (配置新包名)

运行 package_rename 指令

替换 iOS/Android 标识 (可选)

替换 Web 标题

更新鸿蒙工程 module.json5/AppScope

生成正确的 HAP/APP 包


二、核心 API 实战

2.1 配置重命名规则

你不需要在代码中调用 API,只需在 pubspec.yaml 中添加配置块。

package_rename_config:# 💡 统一设置应用在桌面上显示的名称app_name:"鸿蒙新纪元"# 💡 设置各平台的标识符 (Package Name / Bundle ID / Bundle Name)# 虽然该库主要针对 android/ios,但通过配置可以同步管理android:package_name:"com.ohos.newapp"ios:bundle_name:"NewOhosApp"

2.2 执行重构指令

# 💡 运行后,它会扫描所有的平台配置并自动执行文件修改 dart run package_rename 
在这里插入图片描述

三、常见应用场景

3.1 模板项目快速“转正”

当你从一个已有的鸿蒙模板仓库克隆项目后,第一件事就是利用此工具快速更名为自己的业务包名。

在这里插入图片描述

3.2 区分多环境构建

在同一个源码库下,快速通过修改配置来产出包名不同的“开发版”和“生产版”应用,方便在一台鸿蒙手机上同时安装共存。


四、OpenHarmony 平台适配

4.1 自动修改鸿蒙核心配置文件

💡 技巧:在鸿蒙 Flutter 项目中,核心标识符存在于 ohos/AppScope/app.json5 中的 bundleName 以及 ohos/entry/src/main/module.json5 中。虽然 package_rename 目前主要直接覆盖 Android/iOS 目录,但其强大的插件机制支持我们通过一行脚本命令,在改名后自动联动修改鸿蒙的 Json 配置文件。

4.2 适配鸿蒙应用图标刷新

改名往往伴随着图标更换。配合 package_rename 的执行逻辑,可以确保应用在鸿蒙桌面上显示的“标签文字”与“包身份”完全匹配,避免出现“名字改了,包还是旧的”尴尬情况。


五、完整实战示例:鸿蒙品牌重塑自动化脚本

本示例演示如何配合此库,编写一个完整的“品牌更名”自动化脚本。

// 💡 模拟自动化执行逻辑import'dart:io';classOhosRebrandingTool{staticFuture<void>start()async{print('🚀 开始鸿蒙应用品牌重塑流程...');// 1. 运行 package_rename 替换各端显示名称final result =awaitProcess.run('dart',['run','package_rename']);if(result.exitCode ==0){print('✅ 基础显示名称已更新');}// 2. 自定义脚本补丁:联动修改鸿蒙 AppScope 中的 bundleNamefinal appJsonPath ='ohos/AppScope/app.json5';final file =File(appJsonPath);if(await file.exists()){String content =await file.readAsString();// 这里进行简单的 bundleName 模拟替换逻辑 content = content.replaceAll('com.old.name','com.harmony.newapp');await file.writeAsString(content);print('✅ 鸿蒙 bundleName 联动修改完成');}print('✨ 打包准备就绪:请运行 flutter build hap');}}voidmain()=>OhosRebrandingTool.start();
在这里插入图片描述

六、总结

package_rename 软件包是 OpenHarmony 开发者在项目迭代中的“后悔药”和“推进器”。它将繁琐、易错的全局修改任务转化为一个确定性的自动化动作。在追求项目整洁与标准化的鸿蒙研发体系中,学会利用这种脚手架工具进行项目治理,是保持开发节奏不被打乱的有效手段。

Read more

OpenClaw对接飞书机器人高频踩坑实战指南:从插件安装到回调配对全解析

前言 当前企业办公场景中,将轻量级AI框架OpenClaw与飞书机器人结合,能够快速实现智能交互、流程自动化等功能。然而,在实际对接过程中,开发者常常因权限配置、环境依赖、回调设置等细节问题陷入反复试错。本文以“问题解决”为核心,梳理了10个典型踩坑点,每个问题均配套原因分析、排查步骤和实操案例。同时,补充高效调试技巧与功能扩展建议,帮助开发者系统性地定位并解决对接障碍,提升落地效率。所有案例基于Windows 11环境、OpenClaw最新稳定版及飞书开放平台最新界面验证,解决方案可直接复用。 一、前置准备(快速自查) 为避免基础环境问题浪费时间,建议在开始前确认以下三点: * OpenClaw已正确安装,终端执行 openclaw -v 可查看版本(建议使用最新版,旧版本可能存在插件兼容风险)。 * Node.js版本不低于v14,npm版本不低于v6,通过 node -v 和 npm -v 验证,防止因依赖版本过低导致插件安装失败。 * 飞书账号需具备企业开发者权限(企业账号需管理员授权,个人账号默认具备)

By Ne0inhk
【CS创世SD NAND征文】为无人机打造可靠数据仓:工业级存储芯片CSNP32GCR01-AOW在飞控系统中的应用实践

【CS创世SD NAND征文】为无人机打造可靠数据仓:工业级存储芯片CSNP32GCR01-AOW在飞控系统中的应用实践

一、引言:无人机时代的数据存储挑战 在无人机(UAV)技术飞速发展的今天,其应用范畴早已突破消费级航拍的界限,深度渗透至测绘勘察、基础设施巡检、精准农业、安防监控乃至国防军事等工业级领域。每一次精准的自动巡航、每一帧高清图像的实时图传、每一条飞行轨迹的忠实记录,都离不开飞控系统这颗"大脑"的精密运算。然而,大脑的决策依赖于记忆与学习,而承担这一"记忆"任务的存储单元,其可靠性直接决定了飞行任务的成败与数据的价值。一次意外的数据丢失或存储故障,不仅可能导致珍贵的测绘数据付诸东流,造成重大的经济损失,甚至可能引发严重的飞行安全事故。因此,为无人机飞控系统选择一款高性能、高可靠的存储芯片,已成为行业设计中不可或缺的关键一环。 本文将围绕基于全志MR100主控平台与CS创世SD NAND(具体型号:CSNP32GCR01-AOW)构建的新一代无人机飞控存储方案,深入探讨工业级存储芯片如何为高端无人机赋予稳定、可靠的"数据生命线",助力无人机技术在各个领域发挥更大的价值。 二、应用产品介绍:无人机飞控系统——空中机器人的智能核心

By Ne0inhk
【OpenHarmony】鸿蒙Flutter智能家居应用开发实战指南

【OpenHarmony】鸿蒙Flutter智能家居应用开发实战指南

鸿蒙Flutter智能家居应用开发实战指南 概述 智能家居是鸿蒙全场景生态的重要应用场景。本文讲解如何基于鸿蒙Flutter框架,开发一套完整的智能家居应用,实现设备发现、控制、场景联动、语音交互等核心功能。 欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 系统架构设计 整体架构图 ┌────────────────────────────────────────────────────────────┐ │ 用户交互层 (Flutter) │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ 设备控制面板 │ │ 场景编排 │ │ 语音交互 │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ └───────────────────────┬────────────────────────────────────┘ │ RPC/事件总线 ┌────────────────────

By Ne0inhk

iOS开发针对苹果新系统iOS26的兼容适配UITabBarButtonItem & UITabBar的液态玻璃效果/当前wifi ssid获取

1. UITabBarButtonItem液态玻璃效果         兼容处理:         第一种方式(不推荐):把所有的UITabBarButtonItem关闭液态玻璃效果: if (@available(iOS 26.0, *)) { self.navigationItem.rightBarButtonItem.hidesSharedBackground = YES; self.navigationItem.leftBarButtonItem.hidesSharedBackground = YES; } else { // Fallback on earlier versions }         第二种方式:所有导航栏按钮全部采用UITabBarButtonItem,支持液态玻璃效果。         第三种方式:降低Xcode版本到Xcode25及以下版本,然后再打包         第四种方式:使用兼容模式显示传统UI风格,也就是取消TabBar液态玻璃效果:         打开info.plist,添加一个Boolean键值对,取消液态玻璃效果,

By Ne0inhk