-
ThinkPad无法启动系统问题解决办法
最近几天一台Windows电脑(ThinkPad)无法启动进入系统,开机有个错误提示界面,然后就自动关机,错误界面如下图:上面的文字内容如下:Verifying shlm SBAT data failed: Security Policy ViolationSomething has gone seriously wrong: SBAT self-check failed: Security Policy Violation 开始怀疑是系统硬件问题,使用系统自带的自检工具查了一下没有发现有...…
-
hvigor插件开发实战
hvigor 构建工具是一款基于 TypeScript 实现的构建任务编排工具,主要提供任务管理机制,包括任务注册编排、工程模型管理、配置管理等关键能力,提供专用于构建和测试应用的流程和可配置设置。DevEco Studio 使用构建工具 hvigor 来自动执行和管理构建流程,实现应用/服务构建任务流的执行,完成 HAP/APP 的构建打包。hvigor 允许开发者实现自己的插件,开发者可以定义自己的构建逻辑。目前主要提供了两种方式来实现插件:基于hvigorfile脚本开发插件 和 基...…
-
自定义GitHub Actions
GitHub Actions 是 GitHub 官方推出的持续集成和持续交付(CI/CD)平台,可以让用户便捷实现自动化构建、测试和部署流程。关于 GitHub ActionsGitHub Actions 有几个概念(workflow、event、job、action、step、runner),下面会简单介绍常用的workflow、job、step的使用。workflow (工作流程)workflow 是可配置的自动化流程,可以运行一个或多个job。workflow 由仓库 .github...…
-
iOS推送设置个性化消息提示音
更新到 iOS 17 后,不少用户反馈默认的通知声音不一样了,觉得新的提示音太安静了,以至于错过某些关键的通知。很可惜的是我们无法指导用户通过设置更改 App 默认的通知铃声,只能更改系统自带APP相关的提示音(如:电话、短信、提醒、收到新邮件声等)。部分用户表示微信可以修改推送的铃声,而且是修改完立即就生效了。设置界面效果:首先想到的是 APNs 推送可以指定 sound 字段,用于设置用户的铃声,大多数APP使用的跟随系统默认就是 default。示例数据:{ "aps" : {...…
-
使用 InjectionIII 提高开发效率
iOS 原生代码的修改编译调试,都是一遍遍的 Command + R 重新编译重启 App 来进行的。一般来说,随着项目的复杂性增加,代码量越大,编译的耗时就越久。大多数项目都采用二进制集成的方式(将部分代码/组件库先编译成二进制的库集成到工程里面),来避免每次都全量编译来提升编译的速度,但即使这样也没有解决每次修改代码(比如对UI的进行还原度调整)还是需要重新编译的情况。一直很羡慕前端开发或者是Flutter开发的同学,修改完代码就能直接看到效果。官方的效果动画如下:如果对于 iOS 原...…
-
搭建内部技术文档搜索服务
近几年团队一直在坚持在内部的 Confluence 平台上写技术文档,使用过程中发现文档的利用率较低,主要表现在如下方面: (1)目录层级深,找到文档入口需要花费一番功夫 (2)搜索范围大,精细化的搜索使用成本较高 (3)各类技术文档缺乏分类,散落在各处为了解决这些痛点,设计了一个仅用于团队内部的技术文档管理方案。主要是实现一个数据采集器将组内的全部技术文档采集到 Elasticsearch 里面,然后利用 Elasticsearch 开箱即用的能力实现一个简易的搜索服务。整个架构如...…
-
搭建Dart Pub镜像服务
和其他的语言一样 Dart 也有自己的包管理工具,Pub 是 Dart 官方的包管理器。pub 默认从 https://pub.dartlang.org/ 下载依赖包,如果需要修改可以通过设置环境变量 PUB_HOSTED_URL。如修改为清华的镜像源可以使用如下命令进行修改:export PUB_HOSTED_URL="https://mirrors.tuna.tsinghua.edu.cn/dart-pub"PUB_HOSTED_URL 设置的地址其实是需要能访问互联网的,那么对于在内...…
-
Xcode15和iOS17相关的问题解决
近期在做一些适配相关的工作,在适配过程中踩到了一些坑。这是一篇水文,主要是记录 iOS 17 和 Xcode 15 适配过程中遇到的一些问题和解决方法。1、Xcode 14 在 iOS 17 的真机上运行一般来说Xcode和iOS系统匹配才能运行,但是有些时候不想升级Xcode但是想要在高版本的iOS真机上面调试项目。首先从别人升级过Xcode的电脑上面拷贝 DeviceSupport 目录下对应版本的镜像文件过来就行了,目录如下:/Applications/Xcode.app/Conte...…
-
Jenkins Pipeline 插件自定义环境变量丢失问题
最近将一些构建任务由 Freestyle 迁移为 Pipeline 的实现 (主要是考虑后续可以通过任务模板的方式动态创建和维护),整体的实现过程较为简单,基本上就是把原来的执行步骤拆分成一个个的 Stage,将里面用到的一些配置抽取成环境变量的方式,统一设置到一起。最终的配置脚本如下(伪代码):node("mac01") { stage('Environment Setting') { env.ENV_BUILD_SCRIPT_URL = "http://127.0....…
-
macOS SSH 登录账号过期问题解决
近期对构建环境的几台 Mac Mini 做了一些“标准化”处理,处理完成后发现通过ssh访问输入密码无法正常连接了(按回车会立即提示连接结束)。通过查看控制台日志发现有如下的记录:错误信息:error: PAM: user account has expired for xxxx from 127.0.0.1各种查找资料没有找到能讲清楚这个问题原因的,经过一番测试发现一种解决办法:(1) 查看是否打开共享的远程登录 旧版的系统(<= macOS 12) 新版的系统(>= m...…