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.  
旧版构建系统将在未来的版本中删除。 您可以在文件 > 项目设置中配置选定的构建系统和此弃用消息。

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

frp 实现内网穿透将内网 WebService 接口绑定自定义域名供外网访问

要将内网的 WebService 接口提供给外网访问,最简单又免费的方式就是通过 inconshreveable/ngrok: Introspected tunnels to localhost,ngrok 通过一条命令就可以实现内网穿透,并且不需要服务器。但是它有如下缺点:

  • 免费版本不支持自定义域名,每次执行命令后域名都是随机分配的。
  • 目前官方的已经升级到了2.x,已经不开源了。1.x 版本是开源的,但不再更新,目前最新的开源版本是 1.7.1。
  • ngrok 1.x 版本作者也说了有严重的内存、文件描述符泄漏等问题,国内的那些服务用的都是这个版本的客户端,稳定性很差。

我主要是是因为 ngrok 不能自定义域名,每次重启后重新执行命令生成的域名又变了,这样联调时对方又得更换接口地址,很尴尬的。

于是我找到一款和 ngrok 类似的软件 fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.,它能满足我的需求,但是使用它没有服务器似乎不行(当然我也不清楚作者有没有提供仅使用客户端的平台化服务),当然自己待建服务端个性化更强也更安全。

Read more

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,写得很清楚了。

怎么修改 Xcode Run Script 使用 RVM 管理的 Ruby 版本?

Xcode Run Script 使用的 Ruby 版本是 macOS 自带的 Ruby,如果你用 RVM 切换了别的 Ruby 版本,Xcode 使用的 Ruby 还是系统自带的,不会有变化。
那么这会造成什么影响呢?

比如你用 RVM 管理的 Ruby 通过 gem 安装了在 Xcode Run Script 中需要使用的 Sass,那么在 Xcode 中 Sass 命令将执行失败,你会得到 command not found: sass 或如下错误:

1
2
3
4
5
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:283:in `find_spec_for_exe': can't find gem sass (>= 0.a) with executable sass (Gem::GemNotFoundException)
from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:302:in `activate_bin_path'
from /usr/local/bin/sass:23:in `<main>'
from /usr/local/bin/ruby_executable_hooks:22:in `eval'
from /usr/local/bin/ruby_executable_hooks:22:in `<main>'

如果你不清楚这些,你就很难搞清楚你明明安装了 Sass,而且在终端可以执行,却为什么在 Xcode 中却不行。

Read more

解决安装 RVM 遇到的问题

Ruby 版本管理器 (RVM)
RVM 是一个命令行工具,可让您轻松安装、管理和使用从解释器到 gems 的多个 ruby 环境。

我基本上不做 Ruby 开发,但是很多开发都依赖 Ruby 开发的工具或包,比如 Cocoapods、Sass 等。RubyGems 是 Ruby 的包管理器,我们可以通过它安装这些工具或包。

CocoaPods 是 Swift 和 Objective-C Cocoa 项目的依赖管理器。它拥有超过 87,000 个库,并在超过 300 万个应用程序中使用。CocoaPods 可以帮助您优雅地扩展您的项目。

Sass 是世界上最成熟、最稳定、最强大的专业级 CSS扩展语言。

我写的这篇文章 Error installing cocoapods: cocoapods-core requires Ruby version >= 2.6. The current ruby version is 2.5.8.224. - 干志雄的博客,就是因为 Ruby 版本过低导致不能安装最新的 Cocoapods,因此我需要更新 Ruby,macOS 自带的 Ruby 可以通过 Brew 来更新,如果你想管理多个版本的 Ruby,就可以通过 RVM。因为我担心直接更新系统自带的 Ruby 会影响到现有环境,所以我用 RVM 来管理。

我为什么决定不再使用 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

注意了 Typora 的软换行在 GitHub 中是无效的

在 Typora 中按下 Shift + Enter 是软换行,按下此组合键后,可以看到换了一行,但是推送到 GitHub 上后,你会发现换行是无效的。

要解决这问题,你就要搞清楚空格、软换行、硬换行、换段的在 Typora 中的概念。

如何重新或全新安装 Windows 11?

重新或全新的意思就是安装前系统盘的所有数据都将被删除,然后安装新的系统。
如果你想保留现有系统盘中的数据,将系统升级到 Windows 11,请移步至 Windows 11 Installation Assistant

随着微软制作了安装 Windows 的程序,那些不懂电脑的人不再需要像以前需要找电脑店或他人付费安装系统了。
使用 Windows 官方的安装程序只需要安装程序提示进行安装即可,安装过程很简单。