web-dev-qa-db-ja.com

既存のxcodeプロジェクトでSwift Package Managerを使用します

Swiftおよびxcodeの世界では新しいので、パッケージをプロジェクトに統合しようとして問題が発生しています。

次のコマンドを使用して、Alamofire依存関係を追加します。

ルートプロジェクトフォルダー内:

Swift init

これによりPackage.Swiftファイルが作成され、内部に依存関係が追加されてから実行されます。

Swift build

すべてが大丈夫なようですが、ライブラリをインポートしようとすると、私のプロジェクト:

import Alamofire

エラーが発生し、モジュールが認識されていないと表示されます。だから私の質問は、すべてをクラッシュさせることなく、パッケージマネージャーと既存のプロジェクトへの依存関係を統合するための正しい手順は何ですか?.

更新:

Swift build

出力:

Resolved version: 4.3.0
Compile Swift Module 'Alamofire' (17 sources)
Compile Swift Module 'Sample' (1 sources)

そして私のPackage.Swiftは:

import PackageDescription

let package = Package(
    name: "Sample",
    dependencies: [
        .Package(url: "https://github.com/Alamofire/Alamofire.git", majorVersion: 4)
    ]
)
16
jesuscc29

Swift Package Manager は、Xcodeを使用せずに依存関係の管理とプロジェクトのビルドを可能にするスタンドアロンツールです。 Swift package generate-xcodeprojを使用して、Xcodeプロジェクトを生成できます。

ただし、現時点では、SwiftパッケージマネージャーはmacOSおよびLinuxプラットフォーム用のプロジェクトのビルドのみをサポートしています。iOS、tvOS、watchOS用のプロジェクトをビルドする唯一の方法は、SDKを含むXcodeを使用することですこれらのプラットフォームに必要です。

Swift Packages Managerを使用してiOS/tvOS/watchOSの依存関係を管理する方法はいくつかありますが、簡単ではなく、手動での作業が必要です。興味がある場合は、- https://github.com/j-channings/Swift-package-manager-ios

それ以外は、 Carthage または CocoaPods の使用をお勧めします。

Xcode 11の更新

Swift Package ManagerがXcode 11に統合されました。「ファイル」、「Swiftパッケージ」、「パッケージの依存関係の追加」の順に移動してパッケージを追加できます。リポジトリのURLを上のフィールドに貼り付け、「次へ」をクリックします。 Xcodeが残りの手順を説明します。詳しくは このWWDCの講演 をご覧ください。

10
Eneko Alonso