如何在Device Activity Monitor Extension中访问SwiftUI应用的MyModel
SwiftUI扩展访问主应用Model的实现方案
方案1:用共享Framework统一管理Model
- 新建共享框架:Xcode顶部菜单栏选择
File > New > Target,挑选Framework模板,命名为SharedCore(或其他你喜欢的名字) - 将
MyModel.swift拖入这个新框架,选中该文件后,在右侧检查器的Target Membership中,同时勾选主应用和Device Activity Monitor Extension两个目标 - 在主应用和扩展的代码中添加
import SharedCore,之后就能直接调用MyModel
方案2:让Model文件同时归属两个目标
- 找到主应用内的
MyModel.swift文件,选中后打开右侧的File Inspector - 在
Target Membership区域,除了已勾选的主应用目标,再勾选你的Device Activity Monitor Extension目标 - 完成后两个目标均可直接访问该Model,无需额外导入(前提是Model未依赖主应用专属代码)
关键注意事项
- 若
MyModel使用了主应用独有的API或资源,需将这些依赖也迁移到共享区域,否则扩展会报错 - 扩展的沙箱权限比主应用更严格,文件读写、网络请求等操作需确保在扩展允许的权限范围内
内容的提问来源于stack exchange,提问作者Murad
相关产品推荐
相关产品推荐

