ローカルに依存関係を追加しようとしていますSwift Xcodeプロジェクトのパッケージです(ファイルのURLを使用して依存関係を追加したくないfile://me/dev/app/package
これは他の環境と共有できないため)
パッケージをターゲットにドラッグアンドドロップしてみました。これにより、「ライブラリとバイナリをリンク」ビルドフェーズで追加できたプロジェクト内のパッケージへの参照が作成されますが、ライブラリはまだ見つかりません。
No such module 'Analytics'
私の元の構成
ドラッグ&ドロップ後
そしてこれが私のパッケージ構成です:
// Swift-tools-version:5.1
import PackageDescription
let package = Package(
name: "Analytics",
products: [
.library(name: "Analytics", targets: ["Analytics"]),
],
dependencies: [
.package(path: "../SomeOtherPackage"),
],
targets: [
.target(name: "Analytics", dependencies: [
"SomeOtherPackage",
]),
]
)
ターゲットのリンクされたバイナリおよび/またはバンドルリソースおよび/またはコンパイルされたソースにパッケージを含めましたが、役に立ちませんでした:
私は読んだ この長い議論 それは決定的ではないようです。
これが私が試していることの簡単な例です: https://github.com/gsabran/SPM_Xcode_test
これが文字通り私がやっていることであり、それはうまくいきます... Xcode 11.2
I.パッケージを準備する
ファイル>新規> Swiftパッケージ>空のフォルダを選択(または新規作成)>ライブラリ名を入力(MyLibrary)
ここでプロジェクトでMyLibrary.Swiftを見つけてパブリック構造と変数を作成するため、アプリで使用するエクスポートがいくつかあります(静的定数と固定UTを作成しました)
ビルド> OK>プロジェクトを閉じる
II。プロジェクトを準備する
ファイル>新規>プロジェクト> iOS>シングルビューアプリ>名前を入力(MyApp)>次へ>上記と同じフォルダーを選択(デフォルト)>作成
ビルド> OK
Finderから、MyLibraryフォルダをXcode Project Navigatorのプロジェクト名のすぐ下にドラッグします。
ビルド> OK
プロジェクトナビゲーターの[MyAppプロジェクト]アイコンをクリックし、[MyAppアプリケーションターゲットを選択]> [フレームワーク、ライブラリ]セクションをクリックします。[+]をクリックします>最上位のワークスペースセクションで、[MyLibrary]> [追加]を選択します
クリーン>ビルド> OK
ContentView.Swiftを開き、タイプimport MyLibrary
(オートコンプリートはすでに表示されています)「Hello、World」を「(MyLibrary.text)」に置き換えます
ビルドと実行> OK
それでおしまい。
使用された相対パスを確認するには、TextEditでproject.pbxprojを開いてください。
更新:
注1-クリーン後のパッケージ解決の遅延を検討したので、しばらくの間、ここで1〜2分、報告されたエラーでビルドは正確に失敗しますが、その遅延の後、インデックスが再起動し、次のビルドが成功したことがわかります。
注2-2番目の依存パッケージをグラフに追加すること(MyApp> MyLibrary> AnotherLibrary)は同じです。