记录一下Xcode16的升级过程

记录一下Xcode16的升级过程

升级MAC系统

系统设置 > 软件更新 中更新系统版本

升级

系统升级完成后,打开 App Store > 开发,更新xcode

更新Cocoapods

删除原来的pod

如果仅仅是卸载重装,可以不清理缓存,仅使用gem卸载Cocoapods及相关工具即可

使用gem卸载 Cocoapods

# CocoaPods 是通过 RubyGems 安装的,因此可以通过以下命令卸载

sudo gem uninstall cocoapods

# 如果安装了与 CocoaPods 相关的其他工具(如 cocoapods-core 或 cocoapods-deintegrate),也需要一并卸载

sudo gem uninstall cocoapods-core

sudo gem uninstall cocoapods-deintegrate

sudo gem uninstall cocoapods-downloader

sudo gem uninstall cocoapods-plugins

sudo gem uninstall cocoapods-search

sudo gem uninstall cocoapods-stats

sudo gem uninstall cocoapods-trunk

sudo gem uninstall cocoapods-try

清理Cocoapods缓存

# 删除主缓存目录

rm -rf ~/.cocoapods

# 删除 Podfile 中下载的依赖项(通常在项目的 Pods 文件夹中):

# 如果您有使用 CocoaPods 的项目,进入项目目录并删除 Pods 文件夹和 Podfile.lock 文件

rm -rf Pods

rm Podfile.lock

清理全局配置文件

# 删除 CocoaPods 配置文件

rm -rf ~/.cocoapods/repos

# 删除与 CocoaPods 相关的全局设置文件(如果存在)

rm -rf ~/Library/Caches/CocoaPods

检查是否还有残留文件

# 有时 CocoaPods 的相关文件可能会散落在其他位置。您可以搜索系统中是否有剩余的 CocoaPods 文件,根据搜索结果,手动删除任何残留的文件或目录

find ~ -name "*cocoapods*" -print

验证是否完全卸载

# 运行以下命令以确认 CocoaPods 是否已完全卸载

pod --version

安装新版本的ruby

安装rbenv

brew install rbenv

初始化 rbenv

rbenv init

# writing ~/.zprofile: now configured for rbenv.

配置环境变量

# 在.zprofile中添加如下配置

OPENSSL_PATH=/usr/local/opt/openssl@3

export LDFLAGS="-L${OPENSSL_PATH}/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/libyaml/lib"

export CPPFLAGS="-I${OPENSSL_PATH}/include -I/usr/local/opt/readline/include -I/usr/local/opt/libyaml/include"

export PKG_CONFIG_PATH="${OPENSSL_PATH}/lib/pkgconfig"

安装新版本的ruby

rbenv install 3.2.2

安装CocoaPods

gem install cocoapods

检测flutter

flutter doctor -v

升级Xcode16后遇到的问题

编译报错:Assertion failed: (reconstituted == accumulator), function setFixup64, file OutputFile.cpp, line 2987

0 0x104344fc4 __assert_rtn + 160

1 0x104346f9c ld::tool::OutputFile::setFixup64(unsigned char*, unsigned long long, ld::Atom const*) (.cold.10) + 0

2 0x10425e1dc ld::tool::OutputFile::setFixup64(unsigned char*, unsigned long long, ld::Atom const*) + 688

3 0x10425a754 ld::tool::OutputFile::applyFixUps(ld::Internal&, unsigned long long, ld::Atom const*, unsigned char*) + 4524

4 0x1042604c8 ___ZN2ld4tool10OutputFile10writeAtomsERNS_8InternalEPh_block_invoke + 508

5 0x18958b874 _dispatch_client_callout2 + 16

6 0x189586610 _dispatch_apply_invoke3 + 336

7 0x18958b85c _dispatch_client_callout + 16

8 0x189574a28 _dispatch_once_callout + 32

9 0x189585750 _dispatch_apply_invoke + 252

10 0x18958b85c _dispatch_client_callout + 16

11 0x1895a843c _dispatch_channel_invoke.cold.5 + 32

12 0x189583fa4 _dispatch_root_queue_drain + 736

13 0x1895845d4 _dispatch_worker_thread2 + 156

14 0x189725e28 _pthread_wqthread + 232

A linker snapshot was created at:

/tmp/Runner.debug.dylib-2025-04-11-112723.ld-snapshot

ld: Assertion failed: (reconstituted == accumulator), function setFixup64, file OutputFile.cpp, line 2987.

clang: error: linker command failed with exit code 1 (use -v to see invocation)

在Xcode的Build Settings中搜两个配置:Enable Debug Dylib Support 和 User Script Sandboxing,将其修改成NO

相关文章