无法在Xcode中运行SPM创建的命令行工具,求解决方法
如何在Xcode中运行SPM创建的命令行工具?
我用Swift Package Manager(SPM)创建了一个命令行工具,引入了swift-argument-parser库。通过打开Package.swift文件,Xcode可以加载项目并进行查看、编辑与构建操作。我能通过命令行执行swift run <packagename>运行该工具,但在Xcode中尝试运行时,却报错“无法在设备上安装应用”。
我之前成功在Xcode中运行调试过这类工具(支持源码级调试,很实用),但现在忘了操作步骤,无法再次成功运行。请问需要进行哪些操作才能在Xcode中构建并运行该工具?
当前项目是基础框架,可作为最小复现示例。
错误详情
点击错误弹窗的“查看详情”后,显示内容如下:
无法在设备上安装应用。 Domain: com.apple.dt.CoreDeviceError Code: 3002 用户信息: { DVTErrorCreationDateKey = "2024-01-17 20:32:33 +0000"; IDERunOperationFailingWorker = IDEInstallCoreDeviceWorker; NSURL = "file:///Users/duncan/Library/Developer/Xcode/DerivedData/AsyncTest-ckvucgfbzimivdchumrrsvcsgaqj/Build/Products/Debug-iphoneos/AsyncTest"; } -- AsyncTest对应的文件不是有效的bundle。 Domain: com.apple.dt.CoreDeviceError Code: 3000 失败原因: 无法读取该bundle。 用户信息: { NSURL = "file:///Users/duncan/Library/Developer/Xcode/DerivedData/AsyncTest-ckvucgfbzimivdchumrrsvcsgaqj/Build/Products/Debug-iphoneos/AsyncTest"; }
解决步骤
- 打开项目后,在Xcode顶部的运行目标选择器中,不要选择iOS设备(真机或模拟器),切换为
My Mac(或对应架构的Mac选项,比如My Mac (Rosetta)) - 如果找不到
My Mac选项,点击目标选择器最右侧的箭头>,进入设备管理界面,确保勾选Mac相关设备 - 确认运行目标为
My Mac后,点击运行按钮即可启动命令行工具,Xcode会自动打开控制台窗口显示输出,同时支持源码断点调试
额外检查:确保Package.swift中产品类型配置为.executable,示例如下:
products: [ .executable(name: "AsyncTest", targets: ["AsyncTest"]), ],
内容的提问来源于stack exchange,提问作者Duncan C
相关产品推荐
相关产品推荐

