You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xcode Cloud无法构建含SwiftData预览假数据的SwiftUI归档包

Xcode Cloud构建报错"Cannot find 'SampleData' in scope"的解决方案

以下是几个可尝试的修复步骤:

  • 检查文件的目标成员资格
    右键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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 18:15:08