使用 Apple Silicon 的 Mac 别用 gen 来安装 CocoaPods

新买的 Mac Studio 还未安装过 CocoaPods,因为最近开发的项目都是用 Swift Package Manager。目前仍然有很多项目是使用 CocoaPods,今天从 GitHub 上 Clone 了一个 App 就是使用 CocoaPods。我的一般都是直接安装官网的方式去安装,没必要百度和 Google,但是安装官网的安装命令 sudo gem install cocoapods 安装,是能安装成功的,但是使用时却报错了:

1
2
3
4
5
6
7
8
9
10
11
12
$ pod install
Analyzing dependencies
Adding spec repo `trunk` with CDN `https://cdn.cocoapods.org/`
/Library/Ruby/Gems/2.6.0/gems/ffi-1.15.5/lib/ffi/library.rb:275: [BUG] Bus Error at 0x00000001046b4000
ruby 2.6.8p205 (2021-07-07 revision 67951) [universal.arm64e-darwin21]

-- Crash Report log information --------------------------------------------
See Crash Report log file under the one of following:
* ~/Library/Logs/DiagnosticReports
* /Library/Logs/DiagnosticReports
for more details.
Don't forget to include the above Crash Report log file in bug reports.
Read more

The Legacy Build System will be removed in a future release. You can configure the selected build system and this deprecation message in File > Project Settings.

升级到 Xcode 13.2.1 运行项目报错:

1
2
The Legacy Build System will be removed in a future release. You can configure the selected build system and this deprecation message in File > Project Settings.  
旧版构建系统将在未来的版本中删除。 您可以在文件 > 项目设置中配置选定的构建系统和此弃用消息。

其实报错信息已经很明显了,按照报错信息去解决就可以了。

iOS 项目 Build 时报错 Library not found for -lstdc++.6.0.9

Xcode 升级到 Xcode 10.0 后,由于去掉陈旧的 libstdc++ 库替换为 libc++,libstdc++.6.0.9就被删除了。
libc++ 相对是苹果最新版的 C++ 库,经过优化并全面支持 C++ 11。

如何解决我就不重复写了,直接看 Kila2/libstdc-.6.0.9.tbd: libstdc++.6.0.9.tbd,写得很清楚了。

我为什么决定不再使用 macOS Mojave

我的主力 MBP 2018 目前使用的是还是 macOS Mojave。

1
2
3
4
$ sw_vers 
ProductName: Mac OS X
ProductVersion: 10.14.6
BuildVersion: 18G9028

Mojave 是 2018 年 6 月 4 日在 Apple 的全球开发者大会上宣布,并于 2018 年 9 月 24 日向公众发布。虽然 10.14.6 的最后一个 BuilVersion 18G9323 发布日期为 2021 年 7 月 21 日,但是从第一个版本至今已有 3 年多了,且目前最新的 macOS 版本都 12.1。

macOS 最新版本
macOS Monterey 12.1
macOS Big Sur 11.6.2
macOS Catalina 10.15.7
macOS Mojave 10.14.6

那我为什么这么久还不更新,又为什么突然决定不再使用 macOS Mojave,决定更新到 macOS Monterey 最新版本呢?

Read more

iOS 14上UIDatePicker使用旧样式

iOS一旦更新,随之而来的就是App的适配工作。其实大部分App根本不会去用iOS更新后的新特性,所以很多时候的适配都是浪费时间。
所以我一再强调跨平台的重要性,注意此跨平台是指不赖原生,因此不会随着iOS更新UI发现变化。
比如自绘渲染引擎的Flutter。