当依赖名称与项目名称相同时,执行swift build触发段错误崩溃
嘿,我碰到过这个Swift Package Manager的坑!当你的项目名称和引入的依赖名称完全一致时,执行swift build会直接触发段错误崩溃,下面是完整的复现步骤:
问题复现流程
1. 创建项目并初始化
先在终端执行这两条命令,创建一个可执行类型的Swift Package项目:
mkdir myProject && cd myProject
swift package init --type executable
2. 修改Package.swift添加同名依赖
打开自动生成的Package.swift文件,在dependencies数组里添加一个和当前项目名称完全相同的外部依赖(示例用占位URL,实际换成真实的同名依赖即可):
// swift-tools-version:4.0 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription let package = Package( name: "myProject", dependencies: [ // 注意:这个依赖的名称必须和项目名"myProject"一致 .package(url: "https://github.com/...", from: "1.0.0"), ], targets: [ .target( name: "myProject", dependencies: []), ] )
3. 触发崩溃
保存文件后,在终端执行:
swift build
此时你会发现Swift Package Manager直接因段错误(Segmentation Fault)崩溃,根本无法完成构建。
这个问题本质是SPM在解析项目自身和依赖的命名时,没有处理好完全同名的冲突场景,导致内部逻辑出错。
内容的提问来源于stack exchange,提问作者R.B.
相关产品推荐
相关产品推荐

