如何在同一Xcode项目中同时包含Swift Package与iOS Target?
在Xcode中创建包含Swift应用与Swift Package的项目
下面提供两种可行的实现路径,解决你创建Swift Package后无法添加其他Target的问题:
路径一:先创建Swift应用,再添加本地Swift Package
- 打开Xcode,选择「Create a new Xcode project」,挑选「iOS App」「macOS App」等应用模板完成项目创建。
- 在左侧项目导航栏,右键点击项目根目录或空白区域,选择「New File...」。
- 在模板窗口中找到「Swift Package」(可在「Multiplatform」分类下快速定位),点击「Next」。
- 填写Package名称,选择存储位置(建议放在项目根目录下方便管理),勾选「Add to」并选择当前项目,点击「Create」。
- 此时项目已同时包含应用Target和Swift Package,还可在应用的「Frameworks, Libraries, and Embedded Content」中添加该Package,实现代码调用。
路径二:先创建Swift Package,再添加应用Target
如果已经创建了纯Swift Package项目,可通过以下两种方式添加应用Target:
方式1:修改Package.swift配置
- 关闭Xcode,找到Package所在文件夹,右键选择「Show Package Contents」,打开
Package.swift文件。 - 在Package的
targets数组中,添加应用Target的配置,以iOS SwiftUI应用为例:targets: [ // 原有Package Target .target( name: "YourPackageName", dependencies: []), .testTarget( name: "YourPackageNameTests", dependencies: ["YourPackageName"]), // 添加iOS应用Target .executableTarget( name: "YouriOSApp", dependencies: ["YourPackageName"], path: "Sources/YouriOSApp", plugins: [ .plugin(name: "SwiftUIPlugin", package: "SwiftPMPlugins") ], resources: [.process("Resources")] ) ] - 手动在Package文件夹下创建
Sources/YouriOSApp目录,添加main.swift作为应用入口:import SwiftUI import YourPackageName @main struct YouriOSApp: App { var body: some Scene { WindowGroup { ContentView() } } } struct ContentView: View { var body: some View { Text("Hello from Package: \(YourPackageClass.someMethod())") } } - 保存
Package.swift后重新打开项目,Xcode会自动识别新的应用Target。
方式2:转为Xcode工作区(Workspace)
- 打开已有的Swift Package项目,点击菜单栏「File」→「Save as Workspace...」,保存为Workspace文件。
- 在Workspace中,点击「File」→「New」→「Project...」,选择应用模板并添加到当前Workspace。
- 在应用项目中,通过「Add Packages...」选择本地的Swift Package完成关联。
注意事项
- 关联后需确保应用Target能访问Package代码,可在应用的Build Phases中确认已添加Package依赖。
- 若为SwiftUI应用,Package中的视图可直接在应用界面中引用。
内容的提问来源于stack exchange,提问作者Berry Blue
相关产品推荐
相关产品推荐

