1

まず、DEV、PRE、PRO の 3 つの構成を持つプロジェクトがあり、ターゲットは 1 つだけです。次に、ビジネス ロジックを別のモジュールに配置します。このモジュールには、サーバーの応答をモックするためのファイルがいくつか含まれています。目的は、このファイルを DEV にのみ挿入できるようにすることです。

現時点では、構成によっては SPM を追加することはできないと思います。私が見つけた解決策では、SPM に 2 つのターゲットが作成されます。1 つはテスト ファイルがあり、もう 1 つはテスト ファイルがありません。メイン プロジェクトで 2 つのターゲットを作成する必要がありますが、このアイデアは嫌いです。

つまり、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