命令行tips:打开配置文件:open ~/.bash_profile
保存配置文件:source .bash_profile
一:升级DexEco Studio自带的ohpm
1-1:下载的地址:https://developer.huawei.com/consumer/cn/download/
选择:
1-2:解压,然后粘贴到资源库(用户 - 用户名 - 隐藏的资源库)内 (需要显示隐藏文件,快捷键:Command + Shift + .)
1-3:配置环境变量:
用户 - 用户名 - .bash_profile (需要显示隐藏文件,快捷键:Command + Shift + .)
1-4:配置环境变量(替换自己本地的ohpm配置,改为自己本地路径):
export OHPM_HOME=/Users/gumenghao/Library/command-line-tools/ohpm
export PATH=
O
H
P
M
H
O
M
E
/
b
i
n
:
{OHPM_HOME}/bin:
OHPMHOME/bin:{PATH}
1-5:命令:ohpm -v , 检查下自己电脑的ohpm的版本号 ,正常就结束升级ohpm工作
二.升级nodejs
1-1:更新地址:https://nodejs.org/download/release/latest-v18.x/
选择:
1-2:打开配置文件,添加或者修改nodejs的配置路径,例:
实例代码:
export NODE_HOME=/Users/gumenghao/node-v18.20.4-darwin-arm64
export PATH=${NODE_HOME}/bin:${PATH}
1-3:执行下保存命令:source .bash_profile
查看下nodejs的版本号:node - v
三.配置仓库地址
1-1:创建自己的仓库账号,通过:https://repo-harmonyos.tuwan.com,注册自己的账号(最好保存下来,不然会忘记的)
1-2:获取三方库的文档地址:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-ohpm-repo-quickstart-V5#zh-cn_topic_0000001792256157_%E4%BB%8Eohpm-repo%E8%8E%B7%E5%8F%96%E4%B8%89%E6%96%B9%E5%BA%93
1-3:配置自己刚才创建仓库的信息:
1-3-1:打开:user - 用户名 - ‘.ohpm’ - ‘.ohpmrc’ (需要显示隐藏文件,快捷键:Command + Shift + .)
1-3-2:修改仓库配置,追加私仓地址(https://repo-harmonyos.tuwan.com/repos/ohpm):
registry=https://ohpm.openharmony.cn/ohpm/,https://repo-harmonyos.tuwan.com/repos/ohpm
strict_ssl=true
publish_registry=https://repo-harmonyos.tuwan.com/repos/ohpm
1-4:本地自己生成公钥和私钥:ssh-keygen -m PEM -t RSA -b 4096 -f <your_key_path>
your_key_path:公钥和私钥两个文件存放的路径 + 文件名 /Users/gumenghao/Desktop/key_har/keyhar
key_har:文件夹
keyhar:即将生成的公钥和私钥文件名,公钥生成文件会是(keyhar.pub),私钥生成文件会是(keyhar)
1-5:添加公钥文件(keyhar.pub)的内容添加到私仓:
1-5-1:私仓地址:https://repo-harmonyos.tuwan.com/#/cn/personalCenter/sshkeys
1-5-2:截图:
1-6:命令设置私钥路径:ohpm config set key_path <your_key_path>
your_key_path:私钥文件路径,例 /Users/gumenghao/Desktop/key_har/keyhar
1-7:使用命令将‘发布码’布置到 .ohpmrc 文件中:ohpm config set publish_id <your_publish_id>
发布码(your_publish_id):私仓内生成的码
截图:
四.“功能模块”发布HSP流程
1-1:创建项目,然后New - Module - Shared Library,创建功能模:module_im
1-2:entry依赖刚才创建module_im:
1-3:工程下的build-profile.json5添加:
截图内的源码:
"buildOption": {
"strictMode": {
"useNormalizedOHMUrl": true
}
}
1-4:模块下的build-profile.json5添加:
截图内的源码:
"apiType": "stageMode",
"buildOption": {
"arkOptions": {
"integratedHsp": true
}
},
1-5:升级版本号的地方:
1-6:配置release模式:
1-7:选中需要发布module,例如需要发布module_im,点击一下module_im就行:
1-8:点击Build - Make Module '*',截图:
1-9:生成*.tgz文件,选中- 右键 - Cope Path/Reference - Absolute Path (复制文件的绝对路径)
1-10:通过命令,上传发布该*.tgz文件:ohpm publish <刚才复制的*.tgz的绝对路径>
发布后,中途需要输入一次私有仓库的密码,密码正确后完成发布;
五.依赖HSP流程
1-0:工程下的build-profile.json5添加:
截图内的源码:
“buildOption”: {
“strictMode”: {
“useNormalizedOHMUrl”: true
}
}
1-1:添加默认签名(只有添加默认签名才可以依赖HSP包,才支持本地安装运行):
操作:顶部File - Project Structure - 选中顶部Signing Configs - 点击OK(使用默认信息就行)
1-2:通过Terminal,进到需要依赖的module(例如:cd module_im),进行1-3的依赖
1-3:通过复制私仓命令 , 进行依赖私仓内的HSP: ohpm i basecommon
复制私仓命令:
依赖私仓命令:在Terminal内执行复制的内容 ohpm i basecommon
1-4:clear项目、完成依赖
六、配置本地数据 local-config.json (解决每个人都生成的 签名文件不一样)
- 创建 local-config.json 把签名信息放到文件里面
- 在 hvigorfile.ts 中
import { appTasks } from ‘@ohos/hvigor-ohos-plugin’;
import * as localConfig from “./local-config.json”
export default {
system: appTasks, /* Built-in plugin of Hvigor. It cannot be modified. /
plugins: [], / Custom plugin to extend the functionality of Hvigor. */
config: {
ohos: {
overrides: {
signingConfig: getSigningConfig(), //签名配置对象
}
}
}
}
function getSigningConfig() {
return {
type: “HarmonyOS”,
material: {
certpath: localConfig.certpath,
storePassword: localConfig.storePassword,
keyAlias: localConfig.keyAlias,
keyPassword: localConfig.keyPassword,
profile: localConfig.profile,
signAlg: localConfig.signAlg,
storeFile: localConfig.storeFile
}
}
}
- 删除 原来签名信息
- 添加 local-config.json 到 .gitignore 文件
七 其他人上传hsp给私仓时报错
提示只能由同一作者进行上传发布
正常的操作应该是先创建组织然后再去创建仓库及名称
- 此时先查看当前hsp模块 的 oh-package.json5 包名是否包含组织名
在 ohpm 中包的命名格式为@/<package_name>或者<package_name>。
其中 group 是组织,package_name 是包名。当想要上传一个含有组织(例如@ohos/axios)的包时,在ohpm-repo中需要先创建出该组织(例如ohos)才能进行上传。
同时在ohpm-repo中,只有组织成员才能上传该组织的包,如果一个包没有组织,那么后续版本更新只能由该包的第一任上传者上传。组织管理用于管理组织信息。
2 在私仓中 用管理员账号登录 查看组织管理页面 是否有自己的用户名
这里可以进行增删成员
八 主项目配置增加地址
registry = “https://ohpm.openharmony.cn/ohpm/,https://repo-harmonyos.tuwan.com/repos/ohpm”
publish_registry=https://repo-harmonyos.tuwan.com/repos/ohpm
key_path=/Users/tuwan/Documents/key/key
publish_id=FD6BD70101
@mpaas:registry=https://mpaas-ohpm.oss-cn-hangzhou.aliyuncs.com/meta
人脸识别及其他库导入时需要地址配置在 .ohmp文件下的 .ohmprc 文件中
九 HSP项目 对外暴露类似单例的类使用时不提示问题
例如 : 需要暴露
export class PlatformUtil{
static reqAppInfo() {
}
}
在模块外的index.ets文件中需要 以下操作暴露
import {PlatformUtil} from ‘./src/main/ets/utils/PlatformUtil’
export { PlatformUtil }
十 下架hsp库鸿蒙ohpm私仓中上传的包 手动下架了 但是重新上传同一包名却失败了提示包名重复
1.检查包名重复: 确认包名重复是由于ohpm-repo私仓中已经存在相同包名的版本。
2.清除旧包: 在ohpm-repo私仓中手动删除旧的包。可以使用ohpm客户端的Unpublish API来下架旧包。
3.重新上传包: 在确认旧包已删除后,使用ohpm客户端的Publish API重新上传新的包。确保包的元数据和内容与之前的版本有所不同,以避免包名重复的问题。
4.验证操作: 上传新包后,检查ohpm-repo私仓中是否存在新的包版本。如果仍然存在包名重复的问题,可能需要进一步检查包的元数据和内容是否正确。