2016-12-31 12 views
1

SwiftプロジェクトのXcode 8.2.1で「No such module」というコンパイルエラーが発生しました。私はカーシートに2つのモジュール、AlamofireとFuziを使っています。 Carthage/Build/iOSディレクトリには、2つのフレームワークファイルが存在します。 Build Settings/Framework Search Pathsはそのディレクトリを指します。私はGeneral/Embedded Binariesに2つのフレームワークファイルを埋め込んでいます。私は何が欠けていますか?Xcode 8で「このようなモジュールはありません」というエラーが発生しました

+0

私はAlamofire xcodeprojを追加することによって、「いいえ、そのようなモジュール」エラーを乗り越えることができていますワークスペースに追加し、それをターゲット依存として追加します。 – andrewz

答えて

2

ライブラリを埋め込む必要はありません。 「一般/埋め込みバイナリ」セクションの下のリンクフレームワークとライブラリに追加する必要があります。 Carthageのコピーフレームワークスクリプトがビルドフェーズに追加されていることを確認してください。カルタゴのドキュメントから

:アプリケーションのターゲットの 『全般』の設定で

タブ、 『リンクされた フレームワークとライブラリ』セクションで、ドラッグアンドあなたはカルタゴから使用する 各フレームワークをドロップ/ディスク上のBuildフォルダ。 アプリケーションターゲットの「ビルドフェーズ」設定タブで、「+」アイコン をクリックし、「新しい実行スクリプトフェーズ」を選択します。あなたのシェルを指定 ているスクリプトの実行(例:binに/ SH)を作成し、シェル以下 スクリプト領域に以下の内容を追加します。

/usr/local/bin/carthage copy-frameworks 

し、使用するフレームワークにパスを追加「入力 ファイル」、例えば下:

$(SRCROOT)/Carthage/Build/iOS/Box.framework 
$(SRCROOT)/Carthage/Build/iOS/Result.framework 
$(SRCROOT)/Carthage/Build/iOS/ReactiveCocoa.framework 

このスクリプトは ユニバーサルバイナリによってトリガApp Storeの提出バグを回避動作し、アーカイブするときに必要なビットコード関連のファイル とdSYMsがコピーされることが保証されます。カルタゴがマシンにインストールされていない場合

+0

動作しませんでした。私は組み込みフレームワークを削除し、プロジェクトからフレームワークの参照を削除し、ディレクトリをきれいにし、フレームワークを "Linked Frameworks and Libraries"に追加し、 "Build Phases"スクリプトと入力ファイルを追加しました。同じエラー。 – andrewz

+0

私のスクリプトは:/ usr/local/bin/carthage copy-frameworks .../carthageがあり、/ usr/local/binにあります。これらの入力ファイルを指定しました:$(SRCROOT)/ Carthage/Build/iOS/Alamofire.frameworkと$(SRCROOT)/Carthage/Build/iOS/Fuzi.framework – andrewz

0

まずあなたがカルタゴを確認するには、ターミナルで次のコマンドのように、あなたのマシンに

カルタゴバージョン

をインストールしたりない、以下を試してみてください。

Download the latest release of CarthageCarthage.pkgをダブルクリックしてインストーラを実行します。 [続行]をクリックし、インストール先の場所を選択してから[続行]をクリックし、最後に[インストール]をクリックします。 次に、カートハージのバージョンを確認できます。

既存のプロジェクトを使用している場合は、

カルタゴ更新cartfile更新のために、次のコマンドを試してみてください

CD〜/パス/に/スターター/プロジェクト

のようなプロジェクトフォルダに移動 - プラットフォームiOS

インストール/アップデートが完了したら、次のコマンドを実行してください

オープンカルタゴ

次の2つのディレクトリが含まれているFinderウインドウのポップアップが表示されるはずです。ビルドとチェックアウトを。 Carthage Finderウィンドウで、Build \ iOSにナビゲートします。フェーズを構築し、新しいスクリプトを実行ビルドフェーズを追加するために切り替え、

次へ:さて、XcodeでリンクフレームワークとライブラリセクションにAlamofire.framework(例えば)をドラッグします。次のコマンドを追加します。

/usr/local/bin/carthage copy-frameworks 

は、入力ファイルの下に+をクリックして、各フレームワークのエントリを追加します。

$(SRCROOT)/Carthage/Build/iOS/Alamofire.framework 
関連する問題