过去 Package.swift 没有好好写,toolchain 版本跟着 Xcode 走,没有兼容不同的版本。最近研究用 SPM 代替 CocoaPods,所以认真的研究折腾了一下。
本文总结把 Package.swift 从 5.9 降至 5.1 过程中遇到的一些问题。
相信经常使用 SPM 的小伙伴,应该都遇到过使用 Reset Package Caches 时报错:An unknown error occurred. reference 'refs/remotes/origin/main' not found (-1),或者其他分支。
关于这个问题在 stackoverflow 上有比较多的讨论,例如这个 SPM unknown error reference not found when changing branch。
思来想去决定根据上面的回答,记录一下解决方案。
CGO 是一种在 iOS 平台上运行 Go 代码的方案。而 WireGuard 一种 VPN 技术,其中包含了一部分 Go 代码,同时项目提供了一个 Makefile 脚本,使用 CGO 来将相关代码编译成 iOS 静态库。
写这篇文章的契机是,因为希望使用 Mac Catalyst 将内部工具带到 macOS 平台,我又回过头去看一年前(恰巧是22年3月)研究 WireGuard 的过程。
发现虽然当时的研究成功,.xcframewrok 文件还在,但是过程已经模糊不清了。另外还需要针对 Mac Cataglyst 构建出新的静态库,所以又要从头进行梳理不过好在是 “模糊不清”,而不是 “一干二净”,多少还记得一些。
虽然国内实际开发用 Swift Package Manager(后称 SPM)的比较少,但是国外的一些开源库里却经常用到。所以经常遇到项目 clone 下来之后,SPM 加载失败导致项目无法运行的问题。
网上关于 SPM 加速的文章也有很多,方法也是五花八门,本文挑选几个进行记录。
最近写的后端项目需要用到队列,其中有一些东西折腾了好一会儿,在这里记录一下。
Celery 是一个开源的分布式任务队列,可实现异步任务调度、定时任务、任务结果处理等功能。
UICollectionViewCompositionalLayout 是 Apple 在 iOS 13 引入的,用于构建基于组合的 UICollectionView 布局的类。它允许开发者根据一系列的组合布局,更轻松、更灵活地创建复杂的 UICollectionView 布局。
本文主要围绕 UICollectionViewCompositionalLayout 中 “可组合” 这个特性进行讨论。
本篇主要讲解 NSCollectionLayoutGroup 内 “子视图” 的填充方式。
算是为 UICollectionViewCompositionalLayout 的讲解做一些铺垫,毕竟把 Item 的填充方式了解清楚了之后,才能组合多种 Group 来进行更复杂的布局。
本篇文章记录使用 NSCollectionLayoutSection 类的 orthogonalScrollingBehavior 属性的过程中遇到的问题。
通过设置该属性可以控制对应 Section 的滑动效果。
使用 match 命令更新开发证书的时候,遇到了 503 Service Temporarily Unavailable 的报错,搜到解决方案后想着还是记录一下吧。
最近尝试使用 Mac Catalyst 将 App 移植到 macOS 上,打包时遇到了该问题,故记录一下。
本文仅针对 macOS 和 Linux 平台,讲解如何注册 GitLab-Runner。Windows 平台不包含在本文介绍范围内。