1

首先,我有一个具有 3 个配置的项目:DEV、PRE 和 PRO,并且只有一个目标。其次,我将业务逻辑放在一个单独的模块中。该模块包含一些模拟服务器响应的文件。目标是这个文件只能插入 DEV。

现在我认为根据配置添加 SPM 是不可能的。我找到的解决方案将在 SPM 中创建两个目标,一个带有测试文件,另一个没有测试文件。之后我需要在主项目中创建两个目标,但我不喜欢这个想法。

即Package.swift:

// swift-tools-version:5.3

import PackageDescription

let package = Package(
    name: "MyLibrary",
    platforms: [
        .iOS(.v11)
    ],
    products: [
        .library(name: "MyLibrary", targets: ["MyLibrary"]),
        .library(name: "MyLibrary Dev", targets: ["MyLibraryDev"]),
    ],
    dependencies: [
        // some external dependencies
    ],
    targets: [
        .target(
            name: "MyLibrary",
            dependencies: []
        ),
        .target(
            name: "MyLibraryDev",
            dependencies: [
                "MyLibrary",
            ],
            resources: [.process("Resources/Testing")]
        ),
        .testTarget(
            name: "MyLibraryTests",
            dependencies: ["MyLibrary", "MyLibraryDev"]
        )
    ]
)

我想找到某种方法将正确的库链接(自动或使用构建脚本手动)到每个配置。

4

0 回答 0