2016-09-26 22 views
23

SwiftとXcodeを初めて使用しています。私はmacOS SierraとSwift 3を実行しています。Swiftパッケージマネージャを使用してSwift 3パッケージをXcode 8に追加

私はSwiftの最初の研修では、簡単なコマンドラインツールを開発しています。 GitHub上の両方のパッケージのインストール手順には、パッケージマニフェストファイルの依存関係としてSwiftパッケージマネージャを使用するだけでいいと言われています。

私が理解できないことは、Xcodeでこれを行う方法です。プロジェクトのルートに 'package.swift'ファイルを作成するだけですか?これを実行してから、プロジェクトを実行すると、必要なパッケージがプロジェクトに追加されていないように見えます。

何か間違っていますか?

+0

インストールしようとしているパッケージはどれですか? – Do2

+0

特にhttps://github.com/onevcat/Rainbow – Garry

+0

cocoapods経由でインストールしてください!インストールガイドについては、cocoapodsのWebサイトを参照してください – Do2

答えて

40

XcodeとSPMは一緒に動作することができますが、コマンドラインで一歩踏み出す必要があります。

は、Xcodeプロジェクトと同じディレクトリにあなたのパッケージマニフェストファイルを入れ、その後、パッケージマネージャがあなたの依存関係をプルダウンし、それらを参照する.xcodeprojファイルを書き換えますswift package generate-xcodeproj

を呼び出します。

それ既存のソースを保持しますが、ディレクトリ構造はSPMの好ましい配置に再設定されます、私は広範囲にライブプロジェクトでこれをテストしていない

PROJECT_DIR 
├── Sources 
│ └── ProjectName 
│  ├── YourCode.swift 
│  └── YourOtherCode.swift 
├── Dependencies 
│ └── SomeDependency 
│  ├── DependencyCode.swift 
│  └── OtherDependencyCode.swift 
└── Package.swift 

N.B.。 SPMのドキュメントが依然としてWIPと言っていることを考えると、あなたが最近コミットしたことを確認してください。

+0

ありがとうございます。魅力を発揮します。安全アドバイスについても+1! – Garry

+0

SPMが '.xcodeproj'ファイル内のディレクトリ構造を変更しないようにする方法はありますか? 'Sources'フォルダの中にあるすべてのファイルについて騒がしくはありませんが、ナビゲータの内部に' Sources'フォルダを指しているグループがあり、それらをそのまま残しておきたいと思います。 –

+1

これらの手順を実行する人には、「no module foo found」コンパイラエラーが発生します。バージョン9.2以降、Xcodeは2つの推奨プロジェクト変更を提供しました。その1つは、Swift 3 @objc Inferenceをデフォルトに設定していました。これらの変更を実行した後、ターゲットはインポートのために外部依存モジュールを認識しました。 – Airuop

0

swift package generate-xcodeprojの実行に加えて、インストールされたパッケージを使用するには、Xcodeでプロジェクトを構築しなければなりませんでした。

+0

パッケージマネージャーがパッケージをダウンロードするときに意味を持ちます。パッケージマネージャーを使用するには、それらをコンパイルする必要があります。 – zirinisp

関連する問題