-
iOS推送支持显示用户头像
从 iOS 15.0 开始新增了 Communication Notifications 的支持,可以让通知消息更加人性化。Communication Notifications 包含发送消息的联系人的头像,并且可以与 SiriKit 集成,以便 Siri 可以智能地根据常用联系人提供操作的快捷方式和建议。当前在 iOS 上很多Apple自带的应用或一些第三方应用(如钉钉、飞书、微博等)都使用了这个特性。代码实现整体的实现流程: (1) 在APNs的Payload里面开启mutable-...…
-
iOS动态切换APP图标
有些时候需要App能在一些特殊的日子更换桌面图标,或者是出于一些个性化的需求需要能让用户自己选择自己喜欢的图标(比如VIP用户可以显示会员专属的图标)。如“微博和百度云盘的VIP个性化设置就提供了切换图标相关的功能。技术实现从 iOS 10.3 开始系统提供了动态切换图标相关的实现,要求提前将支持切换的可选图标提前预埋到APP并添加相关的配置,然后根据业务需要在合适的时机进行切换即可。配置相关以百度云盘的配置为例:<key>CFBundleIcons</key>&l...…
-
Jenkins多节点同步CocoaPods索引
CocoaPods的索引库更新一直以来是一件很痛苦的事情,为了提升效率在项目中引入了镜像索引库的方案,将项目用到的第三方库的podspec配置自动抽取到一个镜像索引库里面。这个方案确实降低了大家在同步索引库的耗时,但是在构建环境下存在较多的问题。现在是要去多台 Macos 节点 需要定期同步 CocoaPods 的索引。同步索引库直接通过命令 ` pod repo update xxx ` 就能解决,如果要多个节点同步那么使用 Pipeline 的任务每个节点执行脚本就可以了,具体的代码如...…
-
搭建Flutter引擎源码调试环境
最近在排查问题的时候总会遇到一些和 Flutter 引擎相关的问题,需要直接能在Xcode里面挂在引擎的源码能进行断点Debug,这里记录一下搭建Flutter引擎源码调试环境过程:环境准备1、开发工具(1)下载depot_tools工具包depot_tools 是 chromium 使用的源码库管理工具,可以方便的管理源码以及对应依赖,通过gclinet可以获取所有的编译需要的源码和依赖git clone https://chromium.googlesource.com/chromiu...…
-
如何将自己的Node.js包发布到npm上面
早前写过一篇《使用Verdaccio搭建npm仓库》介绍如何搭建私有的npm包托管的环境的文章,比较适合将私有的Node.js包发布上去。本文主要记录一下发布一个公开的package到npm的过程。1、注册账号前往https://www.npmjs.com注册账号,并按照要求验证邮箱。2、Node.js包创建package.json文件,如下:{ "name": "gitlab-systemhook-handler", "version": "0.1.0", "description...…
-
在Docker上搭建WebDAV文件共享服务
近期由于一些不可抗力因素导致AirDrop被禁用了,平时对文档或者是一些安装包的共享还是有比较多的需求,在此记录一下使用Docker快速搭建WebDAV环境的过程。直接在命令行输入下面的命令即可快速完成安装:docker run -d -v /Users/zengjing/docker/webdav:/var/webdav -e USERNAME=test -e PASSWORD=test -p 8888:80 morrisjobke/webdav安装完成后通过浏览器:http://ip:...…
-
在Docker上搭建在线表格服务
工作中总少不了需要填写表格的情况,特别是对于一些需要收集信息(比如住址和号码)的表格,最近发现了一个很好用的工具ethercalc, 可以很方便的搭建出多人协作的在线表格服务,而且用法和Excel一致。下面记录一下如何快速搭建的过程:(1) 安装redisdocker run --name redis -d -v /Users/zengjing/docker/redis:/data redis:latest redis-server --appendonly yes(2) 安装etherc...…
-
Docker安装MySQL数据库
近期经常需要安装MySQL数据库,在此记录一下:1、初始化创建文件夹mkdir -p ~/docker/mysql/conf/mkdir -p ~/docker/mysql/data2、在conf目录下创建配置文件my.cnf[mysqld]character-set-server=utf8[client]default-character-set=utf8[mysql]default-character-set=utf83、安装docker run -d -p 3306:3306 \ ...…
-
Flutter开发初探
Flutter是由谷歌创建的一个框架,用于构建“现代移动应用”。目前它还处于beta阶段,不过它的文档和相关工具十分齐全,有些移动应用已经在使用Flutter。开发环境搭建由于在国内访问Flutter有时可能会受到限制,可以通过如下的配置使用国内的镜像(可以在一定程度上加快下载的速度):export PUB_HOSTED_URL=https://pub.flutter-io.cnexport FLUTTER_STORAGE_BASE_URL=https://storage.flutter-...…
-
iOS中使用cryptopp进行加解密
Crypto++是一个免费开源的加解密库,支持一些非常丰富的加解密算法(如AES/RSA等)。如果要考虑到实现一套跨平台多端加解密效果一致可以考虑使用该库,当然使用各自平台提供的api也能实现。目前只提供了源码的方式,如果要集成到iOS的项目里面需要先编译成静态库,下面就5.6.2这个版本进行介绍:1.编译静态库(1) 下载源码git clone https://github.com/weidai11/cryptopp.gitgit checkout CRYPTOPP_5_6_2(2) 准...…