【问题标题】:Issue adding a development swift package to an app将开发快速包添加到应用程序的问题
【发布时间】:2020-07-10 12:18:10
【问题描述】:

我正在尝试将本地开发中的 Swift 包添加到我的项目中。我关注了这个Organizing Your Code with Local Packages。使用 Xcode 12 测试版。

我创建了一个名为“MyLibrary”的快速包。 然后我将代码从我的应用程序移动到我的 swift 包中的 Sources 文件夹中。 然后我在 Xcode 中关闭 swift 包项目并将包文件夹拖放到我的应用程序中。

但是,这就是我卡住的地方。我需要在构建阶段将 MyLibrary 目标添加到 Link binary with Libraries 部分。我没有在对话框中看到库/框架目标。

我在下面列出了 swift 包的产品和目标。我也尝试添加 binaryTarget,但没有帮助。

products: [
    .library(
        name: "MyLibrary",
        targets: ["MyLibrary"]),
],
targets: [
    .target(
        name: "MyLibrary",
        dependencies: []),
    .testTarget(
        name: "MyLibraryTests",
        dependencies: ["MyLibrary"]),
]

【问题讨论】:

  • 尝试退出 Xcode 并重新启动它。只打开项目,不打开包。我发现如果两者都打开,将一个包拖到现有项目中是行不通的。
  • @matt haha​​,有趣的是我确实遇到了这个问题,但我经历了forums.swift.org/t/how-to-add-local-swift-package-as-dependency/…,在那里你提出了上面的解决方案,它就像一个魅力。但这是我遇到的另一个问题。我看不到构建阶段中列出的目标 > 将二进制文件与库链接。我尝试完全关闭 xcode,从头开始创建另一个 swift 包,但问题仍然存在。
  • 好吧,我可以创建并链接一个工作包。重新开始,这一次将包添加到您创建它时现有项目的顶层,而不是稍后拖动。
  • 好的,现在我发现出了什么问题。我在主应用程序中编写了一个简单的依赖注入代码,并希望将其移动到库中。我将文件直接移动到 Sources 下(Sources>DI.swift),由于现在不需要 Sources 中的“MyLibrary”文件夹,因此我将其删除。这就是问题所在。您需要将文件放在 Sources 文件夹内的 MyLibrary 文件夹中(Sources>MyLibrary>DI.swift)。感谢您的帮助,@matt
  • 是的,如果你也修改了包清单,你可以删除测试,但包的整体结构是绝对固定的,你不能改变它。

标签: swift swift-package-manager


【解决方案1】:

我会一步一步给出指导。在这个例子中,我们将完全从头开始。

  1. 文件 > 新建 > 项目。选择 iOS 应用程序模板。将项目另存为我的项目;其他设置 Storyboard、UIKit App Template、Swift。在桌面上创建它。

  2. 文件 > 新建 > Swift 包。好的,这是困难的部分。查看保存对话框底部的添加到?选择我的项目。该组也应该是 MyProject。两个图标都应该是蓝色项目图标。现在在桌面上另存为 MyLibrary。

  3. 现在我们在 MyProject 中。选择项目导航器顶部的项目 MyProject。在右侧,选择目标 MyProject。向下滚动到框架、库和嵌入式内容,然后单击加号按钮。您将在顶部的 Workspace 中看到,然后 MyLibrary 是“框架”,MyLibrary 是“库”。选择第三个“库”MyLibrary,然后点击添加。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-29
    • 1970-01-01
    • 2021-01-13
    • 2022-01-19
    • 2013-07-28
    • 1970-01-01
    • 2016-02-07
    相关资源
    最近更新 更多