Xcode Cloud无法构建含SwiftData预览假数据的SwiftUI归档包
以下是几个可尝试的修复步骤:
检查文件的目标成员资格
右键SampleData.swift文件打开File Inspector,确保该文件仅勾选Development目标,不要勾选主应用的正式目标。Preview Content下的文件本就只应在开发预览场景生效,若误勾选正式目标,可能导致Xcode Cloud的构建逻辑混乱。给SampleData添加条件编译标记
将SampleData.swift中的所有代码用#if DEBUG和#endif包裹,确保仅在Debug模式下编译该文件。Xcode Cloud默认的Release构建不会处理Debug代码,这样就能避免构建时找不到类型的错误。示例:#if DEBUG class SampleData { static let shared = SampleData() let modelContainer: ModelContainer init() { // 初始化假数据容器的代码 let container = try! ModelContainer(for: WorkDay.self) // 添加假数据逻辑 self.modelContainer = container } } struct SampleDataPreview: PreviewModifier { func body(content: Content) -> some View { content .modelContainer(SampleData.shared.modelContainer) } } #endif调整Xcode Cloud的构建配置
进入Xcode的方案编辑器(Product -> Scheme -> Edit Scheme),确认构建配置为Debug。Xcode Cloud如果默认使用Release构建,会自动排除Development assets,切换到Debug配置就能确保预览资源被正确包含。验证Preview Content文件夹的目标归属
右键Preview Content文件夹打开File Inspector,检查Target Membership,确保仅勾选Development目标,避免文件夹内的资源被错误纳入正式构建流程。清理Xcode Cloud缓存并重跑构建
手动清理Xcode Cloud的构建缓存(在Xcode的Cloud面板中找到对应构建任务,选择清理缓存),然后重新触发构建,解决可能存在的缓存导致的资源未更新问题。
内容的提问来源于stack exchange,提问作者user28960225

