相关疑难解决方法(0)

如何在Swift项目中添加框架?

我想向我的Swift项目添加一个库。我找到3个不同的地方要添加。
我想知道正确的做法以及每个人的目的。

常规选项卡

选择目标->一般

  • 嵌入二进制
  • 链接的框架和库

建立阶段

选择目标->构建阶段

  • 嵌入框架
  • 将二进制文件与库链接

新复制文件阶段

选择目标->单击+按钮->选择“新复制文件阶段”

  • 选择目的地作为框架
  • 选择框架

问题

  1. 什么时候需要“嵌入二进制文件”和“链接的框架和库”?何时需要进行第一阶段的构建?
  2. 我是否需要做多个这些事情才能添加框架?
  3. 它们之间有什么区别?

ios swift

5
推荐指数
1
解决办法
3032
查看次数

在 Swift 包管理器中添加对二进制目标的依赖项

我想创建一个带有具有子依赖项的二进制目标的 Swift 包。由于二进制目标不支持开箱即用的子依赖项,因此我创建了一个依赖于二进制框架和其他依赖项的包装器目标,如此处所述

包有一个名为 的目标LoggerCocoaLumberjack是 的依赖项Logger

Logger我已生成 XCFramwork 并托管在可公开访问的服务器中。下面我添加了用于生成 XCFramwork 的 Xcode 项目的屏幕截图。

请参阅包清单文件。

import PackageDescription

let package = Package(
    name: "spmpoc",
    products: [
        .library(
            name: "Logger",
            targets: ["LoggerTarget"]),
    ],
    dependencies: [
        .package(
            name: "CocoaLumberjack",
            url: "https://github.com/CocoaLumberjack/CocoaLumberjack.git",
            from: "3.6.1"),
    ],
    targets: [
        .target(
              name: "LoggerTarget",
              dependencies: [.target(name: "LoggerWrapper",
                                     condition: .when(platforms: [.iOS]))]
            ),
        .target(
              name: "LoggerWrapper",
              dependencies: [
                .target(name: "Logger", condition: .when(platforms: [.iOS])),
                .product(name: "CocoaLumberjack", package: "CocoaLumberjack")
              ]
            ),
        .binaryTarget(name: "Logger", url: "https://mypath.com/Logger.xcframework.zip", …
Run Code Online (Sandbox Code Playgroud)

ios swift swift-package-manager xcframework

5
推荐指数
1
解决办法
2761
查看次数

标签 统计

ios ×2

swift ×2

swift-package-manager ×1

xcframework ×1