# 96 - Xcode 26 beta 4,要崩我们一起崩

发表于

Article Image

尽管仍有一些小问题,但我对 Xcode 26 之前几个测试版本的印象还是挺不错的。无论是焕然一新的视觉体验,还是为 AI 生成代码提供的更清晰标注,都让人眼前一亮。然而,在最近更新到 beta 4 后,这些好感却因为 Preview 的频繁崩溃而迅速消散。

在 Xcode 26 beta 4 中,只要使用 Preview 功能,通常仅需几秒到几十秒,Xcode 便会出现卡死症状。更可怕的是,紧接着就是毫无预警的系统崩溃重启。第一次遇到时,我着实震惊了——这是我在 macOS 26 上遇到的首次无预警系统崩溃。但当每次使用预览都必然触发这种情况时,我可以肯定,罪魁祸首就是 Xcode 的预览功能。

上网搜索后发现,这竟然是一个在发布前就已知晓的问题,这让我更加哭笑不得。不得不说,这个 Bug 的“威力”确实惊人——即便是专门编写恶意程序来让系统崩溃,也未必能如此“简单直接”。

自从开始使用 Claude Code 后,我几乎完全从 Cursor 切换回了 Xcode。正当我感叹终于可以鱼和熊掌兼得(既享受优秀的视觉体验,又拥有强大的 AI 辅助)时,这个问题的出现着实让人沮丧。

希望 beta 5 能尽快修复这个问题,否则崩溃的可就不仅仅是 Xcode 和系统了——还有我们开发者的耐心和信心。

经进一步研究发现,预览导致系统崩溃的问题更可能是由 iOS 26 模拟器引起的。即便使用稳定版 Xcode 16.4 搭配 macOS 26,只要将预览环境设置为 iOS 26,同样会导致系统崩溃。

原创

Default Actor Isolation:好初衷带来的新问题

尽管 Swift 严格并发检查的初衷是好的,但对于很多单线程场景来说,却明显增加了开发者的负担。开发者不得不在代码中添加一些并不必要的 Sendable@MainActor 等声明,只为了满足编译器的要求。Swift 6.2 新增的 Default Actor Isolation 功能将极大地改善这种状况,减少不必要的样板代码。本文将对 Default Actor Isolation 功能进行介绍,并指出在使用该功能后需要注意的一些情况。

近期推荐

SwiftUI 愿景 (A SwiftUI Wish List)

前 Safari 工程师 James Savage,曾深度参与 SwiftUI、App Clips 与多窗口系统等项目。在这篇文章中,他基于自身在 Apple 的经验,提出了一系列 SwiftUI 的改进愿景:包括引入类似 Swift 中 Span 的低阶生命周期管理机制、拓展 Transaction 的应用边界、提供交互式过渡动画的支持,以及开放更多 TextField 的视觉与行为自定义接口等。这些设想的核心在于——让 SwiftUI 更加独立、灵活,能真正承载起复杂 UI 的构建需求。


什么是平台工程师?(What Is a Mobile Platform Engineer?)

在不少大型公司中,有一个对团队效率至关重要的角色:平台工程师。他们的“用户”是公司内部的开发者,工作重点在于构建共享工具、模块与架构,以提升整个开发团队的协作效率与交付质量。除了技术能力,平台工程师还需具备良好的沟通能力、项目协调力与跨团队推动变革的能力,是连接技术实现与组织发展的桥梁。Tjeerd in ’t Veen 在本文中,结合多年一线经验,深入剖析了这一岗位的职责、挑战与价值所在。


SwiftUI for Mac 2025

作为 macOS by Tutorials 一书的作者,troz 一直密切关注 SwiftUI 在 macOS 上的演进。在这篇文章中,troz 分享了 2025 年 SwiftUI 在 macOS 26 上的一些新特性与实用技巧,并通过配套的示例 App展示了如新图标格式、WebView 原生支持、富文本编辑、Liquid Glass 控件样式等关键更新。


Liquid Glass 使用前须知 (Liquid Glass - 5 Things You MUST Know Before Implementing)

Liquid Glass 无疑是 WWDC 2025 中最引人注目的设计变革之一。但想要真正驾驭它,并不仅仅是套用视觉效果,更需要理解其背后的设计理念。在这段视频中,Sean Allen 总结了开发者在适配 Liquid Glass 前必须了解的五个关键点:优先使用原生组件;将 Glass 视为悬浮的控制层而非背景装饰;克制使用颜色,避免破坏图层可读性;理解并遵循“同心圆设计(Concentricity)”;使用 Icon Composer 重新设计统一的跨平台图标。Sean 强调,Liquid Glass 不只是视觉升级,更是一次设计语言与系统生态的深度统一。拥抱它,才能让你的 App 在新一代系统中保持现代感与一致性。


Swift 开发者的汇编入门 (Assembler for Swift Developers)

随着硬件性能提升与高级语言的普及,现代开发者几乎无需接触汇编代码。但 Artur Gruchała 认为,对 Swift 开发者而言,理解汇编依然非常有价值——它能帮助我们更清晰地理解 Swift 是如何映射到底层指令的,也能在面对性能瓶颈或底层崩溃时,更高效地进行调试分析。在本文中,Artur 演示了如何在 Xcode 中创建 command-line 工程,添加 .s 汇编文件,并将其作为程序入口进行编译,最终构建一个能在终端输出 “Hello, Assembly!” 的最简汇编程序。这篇面向 iOS/macOS 开发者的教程,重点并非汇编语法本身,而是帮助开发者建立从高级语言到底层硬件的认知路径。Artur 也预告了后续文章将进一步深入指针、函数调用以及栈与堆的使用,值得持续关注。


移动开发中的双向门决策 (Two-Way-Door Decisions in Mobile Development Architecture)

“双向门”决策是指具有有限且可逆后果的决定——如果结果不如预期,你可以回溯并尝试不同的方法。Xiangyu Sun 将亚马逊的这一决策理论应用到移动开发架构选择中,帮助开发者识别哪些技术决策是可逆的,从而能够快速行动。作者通过依赖注入库选择、导航框架、数据存储策略、分析 SDK 集成、构建系统和应用模块化等 6 个具体案例,详细阐述了如何在移动开发中做出高质量、高速度的技术决策。文章的核心观点是:大多数架构选择都是可逆的,开发者应该避免过度分析导致的决策瘫痪,而是快速实施并根据反馈进行调整。


更强的 SwiftUI 搜索 API (SwiftUI Search Enhancements in iOS and iPadOS 26)

在 iOS/iPadOS 26 中,搜索栏的行为有了显著调整,不仅体现在位置变化上,还引入了全新的交互逻辑(如 TabView 中的搜索标签)和 Liquid Glass 设计风格。Natalia Panferova 在本文中详细展示了如何利用新的 API 和设计语言来构建现代化的搜索界面。文章通过工具栏搜索和标签栏搜索两种主要模式,提供了完整的代码示例,并详细说明了在 iPhone 和 iPad 上的不同表现形式,以及如何妥善处理版本兼容性问题。


用 SwiftUI 为 Xogot 开发 UI (Blissful UI Development with SwiftUI and Godot)

SwiftUI 编译迅速、使用方便,因此非常适合作为基于 SceneKit、Unity、SpriteKit 等框架项目的 UI 实现方案。Miguel de Icaza 在本文中分享了如何将 SwiftUI 与 Godot 游戏引擎无缝集成,将其作为 Xogot 编辑器的 UI 层实现。文章重点探讨了如何利用 Observation 框架构建一套双向数据绑定模式,通过 156 个 Observable 对象管理复杂的编辑器状态,既保持了 SwiftUI 预览的快速迭代能力,又实现了与 Godot 引擎的深度集成。


内存泄漏排查实录 (How I Stopped a Silent Memory Leak in My iOS App)

Egzon Pllana 在日常使用自己的 iOS 应用时发现了一个隐藏的内存泄漏问题——每次切换标签页都会增加 10-15MB 内存占用,十分钟使用后内存从 196MB 急剧膨胀到 310MB+。通过详尽的诊断分析,Egzon 最终成功将内存使用优化了 85%。文章深入剖析了三个主要的内存泄漏源:SwiftUI .id() 修饰符的误用导致视图重复创建、异步任务生命周期管理不当,以及 Timer 对象的强引用循环。除了提供详细的问题分析和具体修复方案外,作者还将自制的内存监控工具开源,为其他开发者提供了一个实用的调试利器。

每周精选 Swift 与 SwiftUI 精华!