2017-11-13 4 views
0

Swiftのパッケージマネージャを使用して、プロジェクト内の外部モジュールをインポートしようとしています。私の最初のモジュールはVapor projectから来ました。私はそれを働かせるように見えない。私はSwiftパッケージマネージャを使用したモジュールのインポート

swift package init 
swift package generate-xcodeproj 

マイPackage.swiftで始まる、次のようになります。

import PackageDescription 

let package = Package(
    name: "OpenTools", 
    products: [ 
     .library(
      name: "OpenTools", 
      targets: ["OpenTools"]), 
    ], 
    dependencies: [ 
     .package(url: "https://github.com/vapor/json.git", from: "2.0.0") 
    ], 
    targets: [ 
     .target(name: "OpenTools", dependencies: ["JSON"]), 
    ] 
) 

私はその後、私のメインのファイルにJSONパッケージをインポートしようとし、その後

swift package update 
swift package generate-xcodeproj # to regenerate with dependencies 

を実行し、

import JSON 

モジュールは次のように再入力しますが、インポートにはNo such module 'JSON'エラーが返されます。

enter image description here

どのような考えですか?

答えて

3

私が十分な評判を得ていれば、私はこれをコメントとして公表します。 ;)
Xcodeにはまだ知られていないので、それはまだ構築されていないので、JSONが存在する可能性があります。これは、プロジェクトを構築するだけで簡単に解決できます(cmd-B)。生成されたxcodeprojでは、JSONがターゲットの依存関係としてマークされているため、最初にJSONをビルドしてから残りの部分をビルドする必要があります。
これを確認するには、ターゲットに(プロジェクト記述ファイルをクリックしたとき)Xcodeをナビゲートし、その後で "ビルドフェーズ"を選択します。ターゲット依存関係の下には、JSONモジュールがあります。

また、ターゲットの下にJSONというモジュールがあり、githubから収集したソースをコンパイルする必要があります。

プロジェクトルートにswift buildを実行すると、プロジェクトもビルドする必要があります。

+0

これは正しいです。それはちょうどXcodeのクールークです。 '⌘+ B'をビルドするか'⌘+ U'をテストすると良いです。エラーが "ぶら下がり"を続けていれば、Xcodeを再起動してください。 –

+0

はい、私はこの答えがほぼ正しいことに同意します。だから、コメントではありません – JeremyP

+1

私はこれを試しましたが、それでも私にとってはうまくいかず、ターゲットの依存関係にも何かがありビルド段階のリンクされたバイナリセクションとリンクしています。私は何をすべきか? – RufusV

関連する問題