2016-09-28 5 views
14

依存関係のある新しいswiftパッケージを作成した後、私はswift package generate-xcodeprojと呼んでいます。私の依存関係に新しいバージョンがある場合はswift package updateと呼んでいます。依存関係の新しいバージョンがダウンロードされてビルドされますが、Xcodeは古いバージョンの依存関係を参照していません。私はswift package generate-xcodeprojに再度電話することができますが、これは私がセットアップしたカスタムターゲットを削除します。XcodeでSwift依存関係を更新する方法

カスタムターゲットを削除せずに迅速な依存関係とXcodeプロジェクトを更新するにはどうすればよいですか?

+1

私はこの同じ質問があります。 '.xcodeproj'の新しいコピーを生成すると、ソースファイルの整理に使用されていたフォルダ構造もすべて削除されます。 –

+1

私はこれを助けるためのツールを作りました。 https://github.com/saltzmanjoelh/XcodeHelperCliそれをビルドして/ usr/local/binにコピーした後、あるいは 'xchelper update-packages -s'を呼び出すことができるところでこれはあなたのパッケージを更新し、Xcodeプロジェクトのシンボリックリンクを作成します。パッケージに新しいバージョンが追加されたときに、参照を手動で更新する必要はありません。 – joels

答えて

8

生成されたプロジェクトの変更を保存するのではなく、CocoaPodsのような別のプロジェクトで依存関係を管理できます。

新しいプロジェクト開始:

  1. Package.swift
  2. に依存関係を追加するには、依存関係を mkdir MyDeps && cd MyDeps swift package init --type library
  3. をパッケージを作成するワークスペースMyApp.xcworkspace
  4. として保存するアプリのXcodeプロジェクトMyApp.xcodeproj
  5. を作成します依存パッケージXcodeプロジェクトを生成する swift package generate-xcodeproj
  6. は、必要に応じて、あなたが自由にPackage.swiftで依存関係を更新し、依存プロジェクトを再生成することができます。この設定では、あなたのアプリのリンクフレームワークにMyApp.xcodeproj

をターゲットMyDeps.frameworkを追加するには、ワークスペースにMyApp.xcworkspace

  • を生成されたプロジェクトMyDeps.xcodeprojを追加します。

  • +0

    私はこれが好きです - 確かな解決策。 –

    関連する問題