2017-11-22 10 views
0

私は現在、Perfect Server Side SwiftプロジェクトでSwift Package Managerを使用しようとしていますが、Swift package updateを実行すると決して解決しません。冗長フラグを使用すると、同じ依存関係を何度も繰り返すことになります。Swift Package Managerが解決しない

私は問題が始まったと思いますが、自分のプロジェクトにインポートするカスタムパッケージを作成しようとしています。私はそれを今後他のプロジェクトにインポートできるようにパッケージを構築しようとしています。問題は、パッケージ自体が完全な依存関係の1つに依存していることです。私がカスタムパッケージをプロジェクト全体のパッケージから削除すると、依存関係が正常にダウンロードされます。だから私はそれが問題を抱えている私のパッケージだと仮定することしかできません。私のパッケージの

依存関係は、この

let package = Package(
    name: "TestPackage", 
    products: [ 
     // Products define the executables and libraries produced by a package, and make them visible to other packages. 
     .library(
      name: "TestPackage", 
      targets: ["TestPackage"]), 
    ], 
    dependencies: [ 
     // Dependencies declare other packages that this package depends on. 
     // .package(url: /* package url */, from: "1.0.0"), 
    .Package(url: "https://github.com/PerfectlySoft/Perfect-HTTP.git", majorVersion: 3), 
    ], 
    targets: [ 
     // Targets are the basic building blocks of a package. A target can define a module or a test suite. 
     // Targets can depend on other targets in this package, and on products in packages which this package depends on. 
     .target(
      name: "TestPackage", 
      dependencies: ["PerfectHTTP"]), 
     .testTarget(
      name: "TestPackageTests", 
      dependencies: ["TestPackage"]), 
    ] 
) 

ように見えるあなたは、どちらもパーフェクト-HTTPをインポート見ることができるようにその後、私のメインのプロジェクトのための私のpackage.swiftファイルには、この

let package = Package(
    name: "json_api", 
    targets: [], 
    dependencies: [ 
     .Package(url: "https://github.com/PerfectlySoft/Perfect-HTTPServer.git", majorVersion: 3), 
     .Package(url:"/local/path/to/TestPackage", majorVersion:0, minor:1), 
    ] 
) 

のように見えますパッケージ(Perfect-HTTP-Serverは

.package(url: "https://github.com/PerfectlySoft/Perfect-HTTP.git", from: "3.0.0"),

それはかかわらPerfect-COpenSSLPerfect-Threadを取得し続けてハングアップするのではなくパーフェクト-HTTP

私はSPMにかなり新たなんだ、これは私が自分自身のパッケージを作成してみましたのは初めてです。私が思いつくことができるものを解決しようとすると、どのような循環依存関係の問題になるのですか?

答えて

0

私はこれを解決することができたので、他の人にとっては便利かもしれないと考えました。

私は与えるために必要なのに対し、「v0.1の」のようにgitに私のバージョンタグを作ったあなたは、バージョニングということをどのようにタグとして0.1.0およびそれが正常に働いていたが、完全なセマンティックをしました

+0

例えばバージョニングそれ?あなたは完全なPackage.swiftファイルを表示できますか? – Prcela

関連する問題