まず、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"]
)
]
)
正しいライブラリを各構成に (自動またはビルド スクリプトを使用して手動で) リンクする方法を見つけたいと考えています。