Xcode 13.2 beta 2 需要了解的都在这了
苹果在上周发布了 Xcode 13.2 beta 2。从官方 release note 来看,这个版本主要还是解决问题为主。在 Swift 的并发问题上,也解决了一些问题,未解决的问题也给出了解决方案。一起来看看。
构建系统
新功能
构建系统和 Swift 编译器采用了一种新模式,可以更好地利用可用内核,从而加快 Swift 项目的构建速度。该模式是可选的,您可以使用以下用户默认值全局启用:
defaults write com.apple.dt.XCBuild EnableSwiftBuildSystemIntegration 1
CarPlay 模拟器
已知的问题
CarPlay Simulator 仅在 macOS 12 Monterey 中受支持。
预览
弃用
设备上的预览不再包括 watchOS 和 tvOS 预览。运行应用程序以查看您的 UI。
项目导航
解决的问题
当源代码显示多个警告和错误时,Xcode 性能不再受到影响。
签名和分发
解决的问题
解决了 Xcode 要求 macOS 应用程序的每个组件在上传到 App Store Connect 时都具有配置文件的问题。
源代码管理
已知的问题
在并排比较模式下滚动编辑过的文件或修改最后一行附近的文件可能会导致崩溃。
解决方法:禁用比较模式,或使用内联比较模式来修改文件(从“编辑器 > 内联比较”菜单项启用。)
源代码编辑器
解决的问题
修复了使用 CocoaPods 安装而未设置“调试”配置的项目可能在编辑器中构建和语义功能不匹配的问题,导致编辑器显示“实时问题”等问题。
StoreKit
新功能
StoreKit 测试包括以月为单位的新订阅续订率。如果您在 macOS Monterey 12.1、iOS 15.2、tvOS 15.2 和 watchOS 8.3 之前的操作系统上进行测试,则操作系统会使用以天为单位的弃用费率来近似更新费率。
Swift
解决的问题
使用 Swift Concurrency 的 Mac Catalyst 应用程序现在可以在 macOS 12 Monterey 之前的操作系统上启动。
使用 Swift 并发并在 watchOS 8.0 之前部署的 watchOS 应用程序现在为 64 位 watchOS 模拟器目标构建,不会出现链接错误。
您现在可以使用 TestFlight 分发使用 Swift Concurrency 并部署到 iOS 15、macOS 12 Monterey、tvOS 15 和 watchOS 8 之前的操作系统的应用程序。
已知的问题
使用 iOS 15 或 macOS 12 Monterey SDK 链接到 RealityKit 的应用程序无法在以前的操作系统上启动。
解决方法:将 OTHER_LD_FLAGS = -weak_framework RealityFoundation
添加到您的 Xcode 项目设置,以允许在较旧的操作系统上运行 RealityKit 应用程序。
Swift Packages
解决的问题
解决了在尝试导入二进制目标的模块时,带有二进制目标的 Swift 包有时会失败并显示“无此类模块”错误的问题。
测试
新功能
在使用 Apple 芯片的 Mac 上运行 Swift 包的测试时,Xcode 现在可以提供代码覆盖率信息。
解决的问题
解决了在某些情况下 XCTest 错误报告 XCUIElement 的 frame 属性的问题,特别是当该元素是另一个进程(例如 App Extension)的一部分时。
Xcode 现在可以在 macOS 10.15、iOS 13、tvOS 13 和 watchOS 6 或更高版本中运行标记为异步的 XCTest 测试方法。
Xcode Cloud
已知的问题
将新产品加入 Xcode Cloud 时,Xcode 不包含启动条件,从而导致加入失败。
解决方法:在加入期间,手动将开始条件添加到默认工作流程。