当前位置: 首页 > wzjs >正文

网站可视化后台世界杯积分榜排名

网站可视化后台,世界杯积分榜排名,网站开发大致需要哪些步骤,自学做网站的鸿蒙项目构建配置 参考文档 深入鸿蒙开发之后,一般会遇到以下几个问题。 每次编译的时候需要手动配置不同的 versionCode 和 versionName;在使用 git 管理代码的时候,不同的人或者不在同一台电脑上,dev eco 这个编译器需要经常…

鸿蒙项目构建配置

参考文档

深入鸿蒙开发之后,一般会遇到以下几个问题。

  1. 每次编译的时候需要手动配置不同的 versionCode 和 versionName;
  2. 在使用 git 管理代码的时候,不同的人或者不在同一台电脑上,dev eco 这个编译器需要经常的给开发版本签名,在发布版本的时候还需要手动配置相应的签名;
  3. 每次编译的产物都叫做 default.app,只能通过文件更新时间来判断是否编译完成了;
  4. 华为后台推出了崩溃分析之后,sourceMap 变的十分重要了,重新编译会导致老的 sourceMap 被删除掉;

为了解决上述问题,研究了一下 hvigor 编译环境,然后就有了这篇的解决方案。基本上能解决以上遇到的问题。

如何做

为了避免看的比较凌乱,遗漏掉某一个步骤,就直接写怎么做了。看到有用的就参考一下吧。
以下文件都是在根目录中创建。

  1. 创建 debug-signing-config.json 文件,目的是开发时候使用到的自动签名;
  2. 创建 release-signing-config.json 文件,目的是发布时候使用到的自动签名;
  3. 创建 versionName.json,目的是写一个 versionName,单独存放存储,方便修改;
  4. 创建 sourceMaps 文件夹,存放 sourceMaps 文件,方便后续管理编译的 sourceMap;

一定要把 debug-signing-config.json 跟 release-signing-config.json 配置好,要不然跑不起来,ide 会检测配置的文件是否存在。可以先都用 debug-signing-config.json 的配置,等弄好了再切换成 release 版本。

debug-signing-config.json

这个是首先先自动签名一次开发版本的签名文件,然后把 build-profile.json5 中的内容拷贝到这个里边。然后在 .gitignore 中忽略掉这个文件,这样每台电脑上的这个文件都不需要提交了,也就不会频繁的签名了。

{"material": {"certpath": "xxx/.ohos/config/default_hmplayer_bEe7B3h4YHxQuFjHuAHAyeb8iqKwiRH18uy4B2GvE2Yc=.cer","keyAlias": "debugKey","keyPassword": "0000001B01A5432AA50AB7DAD5B8027838C12E3783A6D359BE407801ds714C1E5055FF424DF8A63A4B0FE4D4","profile": "xxx/.ohos/config/default_hmplayer_bEe7B3h4YHxQuFjHuAHsAyb8iqKwiRH18uy4B2GvE2Yc=.p7b","signAlg": "SHA256withECDSA","storeFile": "xxx/.ohos/config/default_hmplayer_bEe7B3h4YHxQuFjHuAHAyfb8iqKwiRH18uy4B2GvE2Yc=.p12","storePassword": "0000001B63267DFD40B6449627CE6220F414AB3A3647558ef3D3A9E5766490A610B7ADFD0875AA1540E4B0C5"}
}

release-signing-config.json

发布版本的签名配置文件。

{"material": {"certpath": "xxx/.ohos/config/default_hmplayer_bEe7B3h4YHxQuFjHuAHAyeb8iqKwiRH18uy4B2GvE2Yc=.cer","keyAlias": "debugKey","keyPassword": "0000001B01A5432AA50AB7DAD5B8027838C12E3783A6D359BE407801ds714C1E5055FF424DF8A63A4B0FE4D4","profile": "xxx/.ohos/config/default_hmplayer_bEe7B3h4YHxQuFjHuAHsAyb8iqKwiRH18uy4B2GvE2Yc=.p7b","signAlg": "SHA256withECDSA","storeFile": "xxx/.ohos/config/default_hmplayer_bEe7B3h4YHxQuFjHuAHAyfb8iqKwiRH18uy4B2GvE2Yc=.p12","storePassword": "0000001B63267DFD40B6449627CE6220F414AB3A3647558ef3D3A9E5766490A610B7ADFD0875AA1540E4B0C5"}
}

versionName.json

版本号配置文件;

{"versionName": "1.0.1"
}

最重要的修改 hvigorfile.ts

整体修改代码如下:

genVersionCode 自动生成 versionCode,格式为:yyMM+(ddhhmm),因为 versionCode 的数字不能太大。

output.artifactName 为 ${versionName}.${versionCode} 能够看到每次编译的版本号。

最后把当次编译的结果都放到了 sourceMaps 的文件夹中,有需要可以直接上传了。

官方文档 API 介绍

示例工程

import { appTasks, OhosAppContext, OhosPluginId } from '@ohos/hvigor-ohos-plugin';
import * as debugMaterial from './debug-signing-config.json'; // 引入外部配置
import * as releaseMaterial from './release-signing-config.json'; // release配置
import * as versionData from './versionName.json'; // 引入外部配置
import { hvigor, FileUtil, getNode } from '@ohos/hvigor'function genVersionCode() {const d = new Date();const year = d.getFullYear().toString().slice(-2);const month = (d.getMonth() + 1).toString().padStart(2, '0');const day = d.getDate();const hour = d.getHours();const minute = d.getMinutes();const end = (day * hour * minute).toString()return parseInt(year + month + end);
}const versionName = versionData.versionName
const versionCode = genVersionCode()hvigor.getRootNode().afterNodeEvaluate(rootNode => {const appContext = rootNode.getContext(OhosPluginId.OHOS_APP_PLUGIN) as OhosAppContext;// 获取编译mode,不同的mode使用不同的配置const buildMode = appContext.getBuildMode();const appJsonOpt = appContext.getAppJsonOpt();const time = new Date()let year = time.getFullYear() % 100let month = time.getMonth() + 1appJsonOpt['app']['versionCode'] = versionCode;appJsonOpt['app']['versionName'] = versionName;appContext.setAppJsonOpt(appJsonOpt);const buildProfileOpt = appContext.getBuildProfileOpt();buildProfileOpt['app']['signingConfigs'] = [{"name": "default","type": "HarmonyOS","material": buildMode == 'debug' ? debugMaterial.material : releaseMaterial.material}];buildProfileOpt['app']['products'] = [{"name": "default","signingConfig": "default","targetSdkVersion": "5.1.0(18)","compatibleSdkVersion": "5.0.1(13)","runtimeOS": "HarmonyOS","output": {"artifactName": `${versionName}.${versionCode}`},"buildOption": {"strictMode": {"caseSensitiveCheck": true,"useNormalizedOHMUrl": true}}}];appContext.setBuildProfileOpt(buildProfileOpt);
})const currentNode = getNode(__filename);
hvigor.buildFinished(buildResult => {if (buildResult.getError()) {console.log(buildResult.getError().stack);} else {const context = currentNode.getContext(OhosPluginId.OHOS_APP_PLUGIN) as OhosAppContext;const base = context.getProjectPath()const sourceMaps = FileUtil.pathResolve(base, 'entry/build/default/outputs/default/symbol/release/entry-sourceMaps.map');const targetSourceMaps = FileUtil.pathResolve(base, `sourceMaps/${versionCode}.map`);FileUtil.copyFileSync(sourceMaps, targetSourceMaps);}
})export default {system: appTasks,  /* Built-in plugin of Hvigor. It cannot be modified. */plugins:[],         /* Custom plugin to extend the functionality of Hvigor. */
}
http://www.dtcms.com/wzjs/184624.html

相关文章:

  • 小学做试卷的网站百度联盟项目看广告挣钱
  • 住房城乡建设委官方网站湖南seo优化哪家好
  • 乡镇网站个人做可以不开网站流程
  • 渭南市建网站北京seo顾问
  • 做抖音seo用哪些软件win7最好的优化软件
  • 湘潭网站推广今日军事头条
  • 江都建设银行网站哪些平台可以发广告
  • 江苏城乡与住房建设部网站软件开发培训学校
  • 济南新站seo外包拼多多seo搜索优化
  • 太原网站建设加王道下拉网络营销的现状及问题
  • 网站开发流程分为哪几个阶段seo网络推广优化教程
  • 网站做微信支付接口网站seo推广优化
  • 株洲市网站建设网络营销的概念和特征
  • web前端基础知识汇总seo一键优化
  • 哈尔滨城乡建设委员会的网站爱站长工具综合查询
  • 网站域名能改吗百度首页关键词优化
  • 广州企业宣传片制作公司seo是什么东西
  • 上城区建设局网站什么软件推广效果好
  • 如何用rp做网站步骤免费网站安全检测
  • 进一步加大网站集约化建设力度长沙seo排名收费
  • 网站开发留学沧州网站seo公司
  • 帮别人做非法网站自首百度推广关键词怎么优化
  • 做网站推广的技巧企业培训课程价格
  • 建筑行业数据开放平台官网seo千享科技
  • wordpress post-formatsseo优化诊断工具
  • 网站上想放个苹果地图怎么做北京疫情消息1小时前
  • 上海做网站优化推广关键词
  • 怎么做网站编辑廊坊seo
  • 手机网站弹窗武汉新一轮疫情
  • 济南市建设信用网站淘宝搜索关键词技巧