如何在非SwiftUI旧Xcode项目中添加SwiftUI视图并解决预览超时报错
解决步骤
1. 彻底清理CocoaPods残留
pod deintegrate只会清除基础依赖配置,老项目的项目配置文件中大概率还有CocoaPods的遗留引用:
- 右键点击项目的
.xcodeproj文件,选择「显示包内容」,删除xcuserdata、xcshareddata两个文件夹 - 打开包内的
project.pbxproj文件,全局搜索Pod、cocoapods相关字段,删除所有匹配的配置行(注意提前备份原始项目文件再修改) - 打开Xcode项目的「Build Phases」标签,删除所有带
[CP]前缀的阶段,比如[CP] Check Pods Manifest.lock、[CP] Embed Pods Frameworks这类CocoaPods自动生成的阶段
2. 核对SwiftUI预览相关编译配置
2018年创建的老项目默认配置和新Xcode生成的项目存在差异,重点核对以下配置项:
- 进入
Build Settings>Architectures,确认Debug模式下Build Active Architecture Only的值为Yes - 进入
Build Settings>Other Linker Flags,删除所有除-ObjC外的遗留Pod链接参数,无特殊需求可以直接清空该配置项 - 进入
Build Settings>Swift Compiler - Custom Flags,确认Debug模式下没有添加禁用预览的自定义标识 - 如果项目有自定义的编译配置(除默认Debug、Release外的其他配置),需要确保其
Preprocessor Macros配置和默认Debug配置对齐
3. 清空Xcode预览服务缓存
除了DerivedData,Xcode还有独立的预览服务缓存需要清理:
- 完全退出Xcode,在终端执行命令:
defaults delete com.apple.dt.Xcode DVTPreviewServicesEnabled - 继续执行命令:
rm -rf ~/Library/Caches/com.apple.dt.Xcode - 重启Xcode打开项目,等待索引完成后再尝试启动预览
4. 检查签名与权限配置
老项目的签名、权限配置可能不符合预览进程的运行要求:
- 确认Debug模式下使用自动签名,Team选择对应开发团队或者个人团队
- 检查项目
Info.plist,删除已经被苹果废弃的隐私权限Key、冲突的自定义URL Scheme等无效配置 - 临时关闭App Group、Keychain Sharing等自定义Capability,再尝试启动预览,确认是否是权限配置导致的进程启动超时
如果以上步骤执行后问题仍未解决,可以直接将老项目的编译配置、Info.plist替换为新建正常项目的对应文件,仅保留你自定义的配置项即可,无需全量迁移所有代码资源。
内容的提问来源于stack exchange,提问作者Bersaelor
相关产品推荐
相关产品推荐

