如何将Swift Packages迁移至另一个Xcode项目?
批量迁移Swift Package依赖的实用方法
方法一:自制共享依赖清单(类似Podfile)
自己创建一个Package.swift文件,把所有你需要的主依赖包(排除自动拉取的子依赖)按SPM格式列出来:
// swift-tools-version: 5.9 import PackageDescription let package = Package( name: "SharedDependencies", dependencies: [ .package(url: "https://github.com/Alamofire/Alamofire.git", upToNextMajorVersion: "5.8.0"), .package(url: "https://github.com/ReactiveX/RxSwift.git", exact: "6.6.0"), // 依次添加所有10个主包 ], targets: [] )
- 旧项目:把这个文件拖进Xcode,通过
File > Add Packages...选择本地的这个Package.swift,将里面的依赖添加到项目目标中。 - 新项目:直接复制这个文件,重复上述步骤,就能一键引入所有主依赖,子依赖会自动拉取。
方法二:从pbxproj提取信息生成命令行批量添加
- 打开旧项目的
project.pbxproj文件,找到/* Begin XCRemoteSwiftPackageReference section */部分,这里每个条目都包含了包的URL和版本要求。 - 手动或者写个简单脚本(Shell/Python均可)提取每个包的URL和版本规则,生成
xcodebuild添加命令,示例:# 根据实际包信息修改 xcodebuild -project YourNewProject.xcodeproj package add https://github.com/Alamofire/Alamofire.git --up-to-next-major-version 5.8.0 xcodebuild -project YourNewProject.xcodeproj package add https://github.com/ReactiveX/RxSwift.git --exact 6.6.0 - 在新项目目录下运行这些命令,Xcode会自动处理依赖拉取和配置。
方法三:快速复制包URL的小技巧
如果只是需要单个复制URL,在Xcode的Package Dependencies列表中选中包后,打开右侧Inspectors面板(快捷键⌥⌘1),里面的"Repository URL"字段是可以选中复制的,能解决手动复制URL的麻烦。
内容的提问来源于stack exchange,提问作者Gargo
相关产品推荐
相关产品推荐

