Xcode 16 的 ENABLE_PREVIEWS 环境构建变量有替代方案吗?

问题描述 投票:0回答:1

直到 Xcode 16,都可以通过

ENABLE_PREVIEWS
环境变量检查 Xcode 项目的构建脚本是否正在执行 SwiftUI 预览的构建。

这使得跳过 SwiftUI 预览版本的构建脚本或执行脚本中的其他命令成为可能。一种用例是跳过 Linter 和代码格式化程序步骤,以便预览构建不会无限慢。

此外,使用此变量并通过宏,可以有条件地编译代码以用于 SwiftUI 预览版本或从编译中排除。

这一切都不再适用于 Xcode 16(包括当前的 beta v5)和 Apple 推出的新 SwiftUI Preview 编译系统。

有人已经找到替代方案了吗?

通过打开显示构建脚本环境变量的选项,您可以轻松观察 Xcode 16 中的新行为。 使用新的构建系统,

ENABLE_PREVIEWS
的值将始终是
NO

我知道你目前仍然可以通过“使用旧版预览执行”选项切换到旧的 SwiftUI 预览系统,但苹果在 Xcode 16 beta 版本说明中描述,这种方法将在不久的将来被删除。

xcode swiftui swiftui-previews
1个回答
0
投票

我比较了用于正常构建和预览构建的所有构建设置。我发现的唯一区别是目标设备环境

TARGET_DEVICE_IDENTIFIER

这是我的临时解决方案,而不是使用 ENABLE_PREVIEWS,您必须找到预览使用的目标 id(我从“在构建日志中显示环境变量”中获得此值)

if [ "TARGET_DEVICE_IDENTIFIER" = "<simulator id>"]; then
    exit 0
fi
© www.soinside.com 2019 - 2024. All rights reserved.