Xcode 10.3添加Swift-SMTP库后模拟器无法启动求助
针对SPM引入后模拟器无法启动+Scheme Executable为None的解决方案
我之前在使用Xcode 10+搭配Swift Package Manager的时候,也碰到过几乎一模一样的问题,给你几个经过验证的解决步骤,按顺序试试:
1. 优先修复Scheme的Executable配置
这是导致模拟器无法启动的核心原因——Xcode不知道要运行哪个目标了:
- 点击Xcode顶部的Scheme下拉菜单,选择
Edit Scheme... - 在弹出的配置窗口左侧选中
Run选项卡,切换到顶部的Info标签页 - 找到
Executable下拉框,这里应该能看到你项目的主App目标(格式是你的App名称.app),直接选中它,然后点击Close保存配置 - 完成后先尝试
Product > Build,再点击运行按钮,看看模拟器能不能正常启动
2. 重置SPM依赖缓存与Derived Data
有时候SPM的缓存文件会导致项目配置混乱,试试彻底清理:
- 先关闭Xcode,打开终端,导航到你的项目根目录
- 执行命令删除SPM的本地缓存:
rm -rf .build - 接着删除Xcode的Derived Data:可以通过Xcode的
Preferences > Locations找到Derived Data的路径,手动删除对应项目的文件夹;或者直接用终端命令:rm -rf ~/Library/Developer/Xcode/DerivedData/你的项目名称-* - 重新打开Xcode,等待SPM重新拉取依赖并完成项目配置,之后再检查Scheme和模拟器状态
3. 检查主App Target的配置正确性
有时候SPM引入依赖时会意外修改Target的配置,确认以下几点:
- 点击项目导航栏的项目根节点,选中你的主App Target
- 切换到
General标签页,确认Deployment Info里的iOS版本和你选择的模拟器版本兼容 - 再切换到
Build Phases标签页,检查Link Binary With Libraries列表里,是否包含你的主App需要的框架,以及Swift-SMTP库是否正确添加到这里
4. 彻底重新添加SPM依赖
如果上面的方法都无效,试试完全移除再重新引入:
- 打开Xcode的
File > Swift Packages > Remove Package Dependency,选中Swift-SMTP并移除 - 重复步骤2的清理操作(删除.build和Derived Data)
- 重新通过
File > Swift Packages > Add Package Dependency引入Swift-SMTP,注意选择合适的版本分支,添加时确认只将库关联到你的主App Target,不要误选其他Target
另外提一句:模拟器显示两个相同设备(比如iPhone SE 12.0和12.4)是正常现象,因为你的Xcode同时安装了这两个版本的iOS SDK,只要Executable配置正确,选择任意一个都应该能正常启动。
内容的提问来源于stack exchange,提问作者Neph
相关产品推荐
相关产品推荐

