Flutter macOS 应用构建:GitHub Actions + 自动管理签名 (Automatically Manage Signing)
在 GitHub Actions 中构建并自动签名 macOS Flutter 应用, 使用 App Store Connect API 和 Developer ID Certificate 实现自动化发布流程。
在 GitHub Actions 中构建并自动签名 macOS Flutter 应用, 使用 App Store Connect API 和 Developer ID Certificate 实现自动化发布流程。
近期需要为应用的 Windows 版本创建 MSIX 安装包,这里简单记录一下打包流程和遇到的一些问题。
记录一下升级项目后踩到的坑, 涉及 Gradle, JDK 以及打包时的 Shrink 等, 日后再遇到同样问题可以按图索骥直接处理掉, 节省节省自己宝贵的时间与绳命.
作为 flutter 官方推荐的状态管理工具 (详见这里), Provider 相比于一些状态管理框架 BloC 更加轻量, 可以在 app 开发中提供更高的灵活性. 下面将先简单介绍一下 Provider, 然后将给出一些简单的使用示例.
在刚开始写 Flutter 应用没多久的时候,相信大家(包括我自己)都会有这样一个疑问: 为什么 Flutter 官方教程推荐将子组件包装为一个StatelessWidget, 如果为了解决 Widget 嵌套过深的问题,明明可以使用一个或者多个 Helper 函数来将 build 中的 Widget进行拆分。 ...
最近在 F-Droid 上架了自己的第一款开源应用 Table Habit, 在这里记录一下上架的大概流程和 遇到的一些问题, 一方面方便自己以后上架其他应用, 另一边放也希望大家遇到类似问题的时候能够有一个 可行的 workflow, 如果想查看具体细节可以看 这里 的讨论.
包含 B-树 (B-Tree) 的一些概念, 以及二叉 B-树 (Binary B-Tree) 与对称二叉 B-树 (Symmetric Binary B-tree) 的介绍, 性质和操作等. 可以通过这些 “古老” 的结构更深刻的理解红黑树的由来及其设计与算法中蕴含的思想.
包含 2-3-4 树相关操作的简要描述, 并将其扩展到 n 路平衡树中.
提供了个人对于 2-3 树的一些入门学习笔记, 以及对其与多叉树相关概念的理解. 里面包含了 2-3 树插入与删除操作的详细说明与个人理解写出的渣渣伪码.
在学习《算法导论》第12章中二叉搜索树 (Binary Search Tree) 后随便码了些字, 同时提供一个简陋代码实现 (Python) 与部分中练习题的答案.
包含 B-树 (B-Tree) 的一些概念, 以及二叉 B-树 (Binary B-Tree) 与对称二叉 B-树 (Symmetric Binary B-tree) 的介绍, 性质和操作等. 可以通过这些 “古老” 的结构更深刻的理解红黑树的由来及其设计与算法中蕴含的思想.
包含 2-3-4 树相关操作的简要描述, 并将其扩展到 n 路平衡树中.
提供了个人对于 2-3 树的一些入门学习笔记, 以及对其与多叉树相关概念的理解. 里面包含了 2-3 树插入与删除操作的详细说明与个人理解写出的渣渣伪码.
在学习《算法导论》第12章中二叉搜索树 (Binary Search Tree) 后随便码了些字, 同时提供一个简陋代码实现 (Python) 与部分中练习题的答案.
最近在尝试为博客进行缓存预热时, 发现脚本请求明明已经显示 “HIT”, 同时服务器也设置了正确的 “proxy_cache_key”, 但是使用浏览器或其他设备访问还是可能无法命中缓存. 本文将尝试分析产生这类问题的原因 (Vary: Accept-Encoding), 并给出对应的解决方案.
由于国内访问 Github Pages 的不稳定性以及 Github 对百度爬虫的屏蔽, 导致博客访问体验不佳. 本文介绍如何使用 Nginx 反向代理 Github Pages, 并配置 Let’s Encrypt 证书, 以解决上述问题.
为什么要写这一篇 Blog
记录一下升级项目后踩到的坑, 涉及 Gradle, JDK 以及打包时的 Shrink 等, 日后再遇到同样问题可以按图索骥直接处理掉, 节省节省自己宝贵的时间与绳命.
最近在 F-Droid 上架了自己的第一款开源应用 Table Habit, 在这里记录一下上架的大概流程和 遇到的一些问题, 一方面方便自己以后上架其他应用, 另一边放也希望大家遇到类似问题的时候能够有一个 可行的 workflow, 如果想查看具体细节可以看 这里 的讨论.
最近在尝试为博客进行缓存预热时, 发现脚本请求明明已经显示 “HIT”, 同时服务器也设置了正确的 “proxy_cache_key”, 但是使用浏览器或其他设备访问还是可能无法命中缓存. 本文将尝试分析产生这类问题的原因 (Vary: Accept-Encoding), 并给出对应的解决方案.
最近优化了一波博客的反代配置, 这里总结了一下. 主要为三个部分: 首先是更细致的 Nginx 缓存配置; 中间主要为如何构建带有第三方 Module 的 Docker 镜像并进行配置; 最后简要说明了一下 ngx_cache_purge 的使用方法.
由于国内访问 Github Pages 的不稳定性以及 Github 对百度爬虫的屏蔽, 导致博客访问体验不佳. 本文介绍如何使用 Nginx 反向代理 Github Pages, 并配置 Let’s Encrypt 证书, 以解决上述问题.
最近优化了一波博客的反代配置, 这里总结了一下. 主要为三个部分: 首先是更细致的 Nginx 缓存配置; 中间主要为如何构建带有第三方 Module 的 Docker 镜像并进行配置; 最后简要说明了一下 ngx_cache_purge 的使用方法.
为什么要写这一篇 Blog
在 Dart Package 开发中, 管理并使用特定 Dart-SDK 版本很有必要. 常规方法如使用 fvm 不适合纯 Dart Package 开发, 因此需要手动或通过工具 (asdf) 获取 Dart-SDK. 本文主要分为两部分: 如何获取特定版本的 Dart-SDK 与如何在 VSCode 中进行配置.
在刚开始写 Flutter 应用没多久的时候,相信大家(包括我自己)都会有这样一个疑问: 为什么 Flutter 官方教程推荐将子组件包装为一个StatelessWidget, 如果为了解决 Widget 嵌套过深的问题,明明可以使用一个或者多个 Helper 函数来将 build 中的 Widget进行拆分。 ...
在 GitHub Actions 中构建并自动签名 macOS Flutter 应用, 使用 App Store Connect API 和 Developer ID Certificate 实现自动化发布流程。
sudo 在 terminal.app 下已经有很多方法可以让 touchID 生效, 但是如果在 iterm2 或者 tmux 环境下又需要输入烦人的密码 (尤其在你的密码很长时 _(:з」∠)_ ). 那么有放在可以让 touchID 这类生物识别可以在上述环境中生效么, 当然是有的, 请使用 pam_rea...
最近在尝试为博客进行缓存预热时, 发现脚本请求明明已经显示 “HIT”, 同时服务器也设置了正确的 “proxy_cache_key”, 但是使用浏览器或其他设备访问还是可能无法命中缓存. 本文将尝试分析产生这类问题的原因 (Vary: Accept-Encoding), 并给出对应的解决方案.
由于国内访问 Github Pages 的不稳定性以及 Github 对百度爬虫的屏蔽, 导致博客访问体验不佳. 本文介绍如何使用 Nginx 反向代理 Github Pages, 并配置 Let’s Encrypt 证书, 以解决上述问题.
提供了个人对于 2-3 树的一些入门学习笔记, 以及对其与多叉树相关概念的理解. 里面包含了 2-3 树插入与删除操作的详细说明与个人理解写出的渣渣伪码.
在学习《算法导论》第12章中二叉搜索树 (Binary Search Tree) 后随便码了些字, 同时提供一个简陋代码实现 (Python) 与部分中练习题的答案.
最近在尝试为博客进行缓存预热时, 发现脚本请求明明已经显示 “HIT”, 同时服务器也设置了正确的 “proxy_cache_key”, 但是使用浏览器或其他设备访问还是可能无法命中缓存. 本文将尝试分析产生这类问题的原因 (Vary: Accept-Encoding), 并给出对应的解决方案.
最近优化了一波博客的反代配置, 这里总结了一下. 主要为三个部分: 首先是更细致的 Nginx 缓存配置; 中间主要为如何构建带有第三方 Module 的 Docker 镜像并进行配置; 最后简要说明了一下 ngx_cache_purge 的使用方法.
最近将 penpot 成功部署到自己的服务器上并为了方便自己使用配置了互联网访问. 由于官方教程比较模糊, 部署期间出现并成功处理了一些问题, 特此在这边博文中进行记录. 希望能够帮到后续有需要部署 penpot 或是涉及 traefik 的人.
最近优化了一波博客的反代配置, 这里总结了一下. 主要为三个部分: 首先是更细致的 Nginx 缓存配置; 中间主要为如何构建带有第三方 Module 的 Docker 镜像并进行配置; 最后简要说明了一下 ngx_cache_purge 的使用方法.
最近将 penpot 成功部署到自己的服务器上并为了方便自己使用配置了互联网访问. 由于官方教程比较模糊, 部署期间出现并成功处理了一些问题, 特此在这边博文中进行记录. 希望能够帮到后续有需要部署 penpot 或是涉及 traefik 的人.
最近优化了一波博客的反代配置, 这里总结了一下. 主要为三个部分: 首先是更细致的 Nginx 缓存配置; 中间主要为如何构建带有第三方 Module 的 Docker 镜像并进行配置; 最后简要说明了一下 ngx_cache_purge 的使用方法.
使用 ddns-scripts_tencent_cloud 为 OpenWRT 提供对 DNSPod 的 DDns 支持, 脚本使用最新的 v3 API,支持 IPV4 与 IPV6 地址,同时提供对 ddns-scripts LUCI 界面中的各种配置项的兼容。
最近于家庭路由开通 IPV6 后,凌晨运营商断线重新分配 IP 时,有一定概率获取不到 IPV6 地址(IPV4 正常)。 通过大量的搜索与尝试最终解决该问题,故在这里简单记录一下,后续如有类似问题也可作参考。
在使用 KVM (libvirt) 配置 macvtap 网络时,由于默认多播通信的限制,可能导致客户端中的 IPv6 无法正常工作。 问题旨在记录并解决该问题,以恢复虚拟机中 IPv6 的正常功能。
最近于家庭路由开通 IPV6 后,凌晨运营商断线重新分配 IP 时,有一定概率获取不到 IPV6 地址(IPV4 正常)。 通过大量的搜索与尝试最终解决该问题,故在这里简单记录一下,后续如有类似问题也可作参考。
为什么要写这一篇 Blog
为什么要写这一篇 Blog
1. 启动Barrier时出现 ipc connection error, connection refuse 日志
1. 启动Barrier时出现 ipc connection error, connection refuse 日志
最近在 F-Droid 上架了自己的第一款开源应用 Table Habit, 在这里记录一下上架的大概流程和 遇到的一些问题, 一方面方便自己以后上架其他应用, 另一边放也希望大家遇到类似问题的时候能够有一个 可行的 workflow, 如果想查看具体细节可以看 这里 的讨论.
最近在 F-Droid 上架了自己的第一款开源应用 Table Habit, 在这里记录一下上架的大概流程和 遇到的一些问题, 一方面方便自己以后上架其他应用, 另一边放也希望大家遇到类似问题的时候能够有一个 可行的 workflow, 如果想查看具体细节可以看 这里 的讨论.
在刚开始写 Flutter 应用没多久的时候,相信大家(包括我自己)都会有这样一个疑问: 为什么 Flutter 官方教程推荐将子组件包装为一个StatelessWidget, 如果为了解决 Widget 嵌套过深的问题,明明可以使用一个或者多个 Helper 函数来将 build 中的 Widget进行拆分。 ...
在刚开始写 Flutter 应用没多久的时候,相信大家(包括我自己)都会有这样一个疑问: 为什么 Flutter 官方教程推荐将子组件包装为一个StatelessWidget, 如果为了解决 Widget 嵌套过深的问题,明明可以使用一个或者多个 Helper 函数来将 build 中的 Widget进行拆分。 ...
作为 flutter 官方推荐的状态管理工具 (详见这里), Provider 相比于一些状态管理框架 BloC 更加轻量, 可以在 app 开发中提供更高的灵活性. 下面将先简单介绍一下 Provider, 然后将给出一些简单的使用示例.
作为 flutter 官方推荐的状态管理工具 (详见这里), Provider 相比于一些状态管理框架 BloC 更加轻量, 可以在 app 开发中提供更高的灵活性. 下面将先简单介绍一下 Provider, 然后将给出一些简单的使用示例.
sudo 在 terminal.app 下已经有很多方法可以让 touchID 生效, 但是如果在 iterm2 或者 tmux 环境下又需要输入烦人的密码 (尤其在你的密码很长时 _(:з」∠)_ ). 那么有放在可以让 touchID 这类生物识别可以在上述环境中生效么, 当然是有的, 请使用 pam_rea...
sudo 在 terminal.app 下已经有很多方法可以让 touchID 生效, 但是如果在 iterm2 或者 tmux 环境下又需要输入烦人的密码 (尤其在你的密码很长时 _(:з」∠)_ ). 那么有放在可以让 touchID 这类生物识别可以在上述环境中生效么, 当然是有的, 请使用 pam_rea...
由于国内访问 Github Pages 的不稳定性以及 Github 对百度爬虫的屏蔽, 导致博客访问体验不佳. 本文介绍如何使用 Nginx 反向代理 Github Pages, 并配置 Let’s Encrypt 证书, 以解决上述问题.
在 Dart Package 开发中, 管理并使用特定 Dart-SDK 版本很有必要. 常规方法如使用 fvm 不适合纯 Dart Package 开发, 因此需要手动或通过工具 (asdf) 获取 Dart-SDK. 本文主要分为两部分: 如何获取特定版本的 Dart-SDK 与如何在 VSCode 中进行配置.
在 Dart Package 开发中, 管理并使用特定 Dart-SDK 版本很有必要. 常规方法如使用 fvm 不适合纯 Dart Package 开发, 因此需要手动或通过工具 (asdf) 获取 Dart-SDK. 本文主要分为两部分: 如何获取特定版本的 Dart-SDK 与如何在 VSCode 中进行配置.
在 Dart Package 开发中, 管理并使用特定 Dart-SDK 版本很有必要. 常规方法如使用 fvm 不适合纯 Dart Package 开发, 因此需要手动或通过工具 (asdf) 获取 Dart-SDK. 本文主要分为两部分: 如何获取特定版本的 Dart-SDK 与如何在 VSCode 中进行配置.
在 Dart Package 开发中, 管理并使用特定 Dart-SDK 版本很有必要. 常规方法如使用 fvm 不适合纯 Dart Package 开发, 因此需要手动或通过工具 (asdf) 获取 Dart-SDK. 本文主要分为两部分: 如何获取特定版本的 Dart-SDK 与如何在 VSCode 中进行配置.
在学习《算法导论》第12章中二叉搜索树 (Binary Search Tree) 后随便码了些字, 同时提供一个简陋代码实现 (Python) 与部分中练习题的答案.
提供了个人对于 2-3 树的一些入门学习笔记, 以及对其与多叉树相关概念的理解. 里面包含了 2-3 树插入与删除操作的详细说明与个人理解写出的渣渣伪码.
提供了个人对于 2-3 树的一些入门学习笔记, 以及对其与多叉树相关概念的理解. 里面包含了 2-3 树插入与删除操作的详细说明与个人理解写出的渣渣伪码.
包含 2-3-4 树相关操作的简要描述, 并将其扩展到 n 路平衡树中.
包含 2-3-4 树相关操作的简要描述, 并将其扩展到 n 路平衡树中.
最近优化了一波博客的反代配置, 这里总结了一下. 主要为三个部分: 首先是更细致的 Nginx 缓存配置; 中间主要为如何构建带有第三方 Module 的 Docker 镜像并进行配置; 最后简要说明了一下 ngx_cache_purge 的使用方法.
记录一下升级项目后踩到的坑, 涉及 Gradle, JDK 以及打包时的 Shrink 等, 日后再遇到同样问题可以按图索骥直接处理掉, 节省节省自己宝贵的时间与绳命.
记录一下升级项目后踩到的坑, 涉及 Gradle, JDK 以及打包时的 Shrink 等, 日后再遇到同样问题可以按图索骥直接处理掉, 节省节省自己宝贵的时间与绳命.
包含 B-树 (B-Tree) 的一些概念, 以及二叉 B-树 (Binary B-Tree) 与对称二叉 B-树 (Symmetric Binary B-tree) 的介绍, 性质和操作等. 可以通过这些 “古老” 的结构更深刻的理解红黑树的由来及其设计与算法中蕴含的思想.
包含 B-树 (B-Tree) 的一些概念, 以及二叉 B-树 (Binary B-Tree) 与对称二叉 B-树 (Symmetric Binary B-tree) 的介绍, 性质和操作等. 可以通过这些 “古老” 的结构更深刻的理解红黑树的由来及其设计与算法中蕴含的思想.
包含 B-树 (B-Tree) 的一些概念, 以及二叉 B-树 (Binary B-Tree) 与对称二叉 B-树 (Symmetric Binary B-tree) 的介绍, 性质和操作等. 可以通过这些 “古老” 的结构更深刻的理解红黑树的由来及其设计与算法中蕴含的思想.
最近将 penpot 成功部署到自己的服务器上并为了方便自己使用配置了互联网访问. 由于官方教程比较模糊, 部署期间出现并成功处理了一些问题, 特此在这边博文中进行记录. 希望能够帮到后续有需要部署 penpot 或是涉及 traefik 的人.
最近将 penpot 成功部署到自己的服务器上并为了方便自己使用配置了互联网访问. 由于官方教程比较模糊, 部署期间出现并成功处理了一些问题, 特此在这边博文中进行记录. 希望能够帮到后续有需要部署 penpot 或是涉及 traefik 的人.
最近将 penpot 成功部署到自己的服务器上并为了方便自己使用配置了互联网访问. 由于官方教程比较模糊, 部署期间出现并成功处理了一些问题, 特此在这边博文中进行记录. 希望能够帮到后续有需要部署 penpot 或是涉及 traefik 的人.
最近在尝试为博客进行缓存预热时, 发现脚本请求明明已经显示 “HIT”, 同时服务器也设置了正确的 “proxy_cache_key”, 但是使用浏览器或其他设备访问还是可能无法命中缓存. 本文将尝试分析产生这类问题的原因 (Vary: Accept-Encoding), 并给出对应的解决方案.
最近在尝试为博客进行缓存预热时, 发现脚本请求明明已经显示 “HIT”, 同时服务器也设置了正确的 “proxy_cache_key”, 但是使用浏览器或其他设备访问还是可能无法命中缓存. 本文将尝试分析产生这类问题的原因 (Vary: Accept-Encoding), 并给出对应的解决方案.
最近在尝试为博客进行缓存预热时, 发现脚本请求明明已经显示 “HIT”, 同时服务器也设置了正确的 “proxy_cache_key”, 但是使用浏览器或其他设备访问还是可能无法命中缓存. 本文将尝试分析产生这类问题的原因 (Vary: Accept-Encoding), 并给出对应的解决方案.
近期需要为应用的 Windows 版本创建 MSIX 安装包,这里简单记录一下打包流程和遇到的一些问题。
近期需要为应用的 Windows 版本创建 MSIX 安装包,这里简单记录一下打包流程和遇到的一些问题。
近期需要为应用的 Windows 版本创建 MSIX 安装包,这里简单记录一下打包流程和遇到的一些问题。
最近于家庭路由开通 IPV6 后,凌晨运营商断线重新分配 IP 时,有一定概率获取不到 IPV6 地址(IPV4 正常)。 通过大量的搜索与尝试最终解决该问题,故在这里简单记录一下,后续如有类似问题也可作参考。
在使用 KVM (libvirt) 配置 macvtap 网络时,由于默认多播通信的限制,可能导致客户端中的 IPv6 无法正常工作。 问题旨在记录并解决该问题,以恢复虚拟机中 IPv6 的正常功能。
在使用 KVM (libvirt) 配置 macvtap 网络时,由于默认多播通信的限制,可能导致客户端中的 IPv6 无法正常工作。 问题旨在记录并解决该问题,以恢复虚拟机中 IPv6 的正常功能。
在使用 KVM (libvirt) 配置 macvtap 网络时,由于默认多播通信的限制,可能导致客户端中的 IPv6 无法正常工作。 问题旨在记录并解决该问题,以恢复虚拟机中 IPv6 的正常功能。
使用 ddns-scripts_tencent_cloud 为 OpenWRT 提供对 DNSPod 的 DDns 支持, 脚本使用最新的 v3 API,支持 IPV4 与 IPV6 地址,同时提供对 ddns-scripts LUCI 界面中的各种配置项的兼容。
使用 ddns-scripts_tencent_cloud 为 OpenWRT 提供对 DNSPod 的 DDns 支持, 脚本使用最新的 v3 API,支持 IPV4 与 IPV6 地址,同时提供对 ddns-scripts LUCI 界面中的各种配置项的兼容。
使用 ddns-scripts_tencent_cloud 为 OpenWRT 提供对 DNSPod 的 DDns 支持, 脚本使用最新的 v3 API,支持 IPV4 与 IPV6 地址,同时提供对 ddns-scripts LUCI 界面中的各种配置项的兼容。
使用 ddns-scripts_tencent_cloud 为 OpenWRT 提供对 DNSPod 的 DDns 支持, 脚本使用最新的 v3 API,支持 IPV4 与 IPV6 地址,同时提供对 ddns-scripts LUCI 界面中的各种配置项的兼容。
在 GitHub Actions 中构建并自动签名 macOS Flutter 应用, 使用 App Store Connect API 和 Developer ID Certificate 实现自动化发布流程。
在 GitHub Actions 中构建并自动签名 macOS Flutter 应用, 使用 App Store Connect API 和 Developer ID Certificate 实现自动化发布流程。
在 GitHub Actions 中构建并自动签名 macOS Flutter 应用, 使用 App Store Connect API 和 Developer ID Certificate 实现自动化发布流程。