LinMinquan's Blog

Experience technology to change life

Flutter Dio https certificate verificate

环境:Flutter 1.17.4, Dio 3.0.9 需要去接入某服务商的API,给的接口是 ip 地址,而不是域名,对方给了个文件(root certificate file) trusted-ca-certs.pem 用来验证 https 连接。看来他们是用的自签名的证书。 根据 参考链接1 去尝试会报错,OS Error: No such file or directory, errno = 2 原因是我忘记把 trusted-ca-certs.pem 写在 pubspec.yaml 里。 最终的代码如下: Dio dio = new Dio(); ByteData bytes = await rootBundle.load('assets/trusted-ca-certs.pem'); (dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (client) { SecurityContext sc = new SecurityContext(); sc.setTrustedCertificatesBytes(bytes.buffer.asUint8List()); HttpClient httpClient = new HttpClient(context: sc); return httpClient; }; 参考链接: Dio https certificate verification Add Certificate in Flutter Read more →

欧盟版的 Windows 10 N 怎样录屏?

Windows 10 有个欧盟版,叫 Windows N,它没有带 Windows 录屏功能。解决办法见参考链接。但有同事表示,即便装了也还是不行。-_- 参考链接: 1. Troubleshoot Xbox Game Bar on Windows 10 Read more →

Flutter Xcode 报错:Module ‘flutter_blue’ not found

Flutter 项目打包成 Xcode 后,会报 Module ‘flutter_blue’ not found 解决办法是:双击 Runner.xcworkspace 来打开 Xcode 而不是双击 Runner.xcodeproj 那么接下来就会问,.xcodeproj 和 .xcworkspace 有什么区别? A workspace is a collection of projects. It’s useful to organize your projects when there’s correlation between them (e.g.: Project A includes a library, that is provided as a project itself as project B. When you build the workspace project B is compiled and linked in project A). It’s common to use a workspace in the popular CocoaPods. Read more →

怎样清理 discourse 服务器的空间

环境:Ubuntu 18.04 Discourse 是用 Docker 部署的,会有些 image 和 container 没有在使用,但占用着空间,这时可以把它们清掉 cd /var/discourse ./launcher cleanup 下图是跑 ./launcher cleanup 时的提示, it will purge all images not in use. 删除完后就只剩下一个 image 和一个 container 了,那个 image 跟那个 container 是关联的 参考链接: 1. Stuck in a loop of freeing up space and filling it up again when rebuilding Read more →

Mac OS Catalina 下怎样安装 .ipa 文件

在 Catalina, iTunes 被集成到了 Finder。安装方法是在 Finder 左侧,选中 iPhone,然后把 ipa 文件拖进去即可。 当然你这设备的 UDID 得先加到苹果开发的后台才行。 参考链接: 1. How to load .ipa onto iPhone within Catalina? Read more →

win10 如何删除和恢复 Recovery Partition

同事电脑的 SSD 被弄成两成分区,我想合并成一个分区,但两个分区之间隔着一个 Recovery Partition,就没法合并。因为合并的条件是这两个分区必须是相邻的。 解决办法那就先把 Recovery Partition 删了吧,按参考链接1的方法,没删成功,Cannot delete a protected partition without the force protected parameter set. 按 GPT 的方式去删的话,提示说这个分区不是 GPT 的。 后来按照参考链接2的命令搞定了。delete partition override. 搞定后,合并了分区,又想把那个 Recovery Partition 搞回来。试了下 reset windows 10,提示因为 Recovery Partition 没了,无法用重置功能了。网上有个说法是做个外置的恢复盘,然后它最后会提示你要不要把 Recovery Partition 删掉,但我做了,最后是没有这个提示的。最后下载个 ISO 镜像,重装系统解决了。 参考链接: 1. Can I Delete Recovery Partition in Windows 7/8/10 for Further Use How to Delete a Windows Recovery Partition Read more →

Shopify Analytics 和 Google Analytics 数据不一样

Shopify 后台配置好了 Google Analytics,并在 Shopify 后台和 Google Analytics 后台都开启了 Enhanced Ecommerce 时,两边的订单数(Transactions)和总销售额(Revenue)是不一样,当然 Conversion Rate 也会不一样。 看下面两个参考链接,就会知道为什么会不一样。以及有哪些可以使得数据更接近一些办法。 参考链接: Discrepancies between Shopify and other software Discrepancy between GA and Shopify sales Read more →

升级 Nginx 编译时 OpenSSL 版本的问题

环境: Ubuntu: 18.04.4 Nginx: 1.16.1 当 Ubuntu 版本是 16.04 时,同事把 Nginx 版本升到 1.16.1,然后再把 Ubuntu 升到 18.04.4 照理说 Nginx 的 1.16.1 版本,是应该有 TLS 1.3 的,但不知道为什么就是开启不了 TLS 1.3,一直是 TLS 1.2。 升级后的 Ubuntu 18.04.4 里的 OpenSSL 版本倒是对的,见下图。 后来才发现用 nginx -V 可以看出来 Nginx build 时的 OpenSSL 的版本,注意 V 是大写的。 然后就是 Nginx built with 的 OpenSSL 版本还是低版本的。 我们的目标是开启 TLS 1.3,现在一直是 TLS 1.2。 想要通过其它的办法来弄,都没弄成功。最后解决办法是从另一台 Ubuntu 18.04 服务器上拷了 nginx 过来用,这台 Ubuntu 刚开的时候就是 18.04。nginx 的文件在 /usr/sbin/nginx 拷过来时,nginx 文件的权限要重新设置一下。最后要重启下 nginx 的 server,sudo service nginx restart。 Read more →