迅速。Objective-Cモジュール「Alamofire」を構築できませんでした


117

XCode6を使用し、Tへの指示に従って、Alamofireのバニラサブモジュールを新たにインストールします。ここで何かが正しくありません。私が取得しているエラーは、「alamofireインポートで「objective-cモジュール "alamofire"をビルドできませんでした」です。ここでは、取得しているエラーのスクリーンショットを示します。

ここに画像の説明を入力してください そして私の設定:

ここに画像の説明を入力してください




機能させましたか?それは私のために働き、別の「ビルドして実行」した後、それは止まり、私は同じエラーメッセージを受け取りました... :(
Georg

2
同僚にも同じエラーメッセージが表示されましたが、その理由は、彼がまだXcode 6.1を使用していることが原因でした(これは、私がこれを書いている現在の6.3時代です)。記録のためだけにこれを言ってください、他の誰かが同じことで苦労する必要があります。
villapossu

回答:


103

これが発生した場合は、最初にフレームワークを個別にビルドするだけです。あなたの場合:

  • スキームをAlamofireに変更します
  • ビルド(⌘B
  • スキームに戻す
  • 走る

3
すばらしい答えです。これらの種類のエラーを修正するためにビルドスキームを変更することに気づきませんでした。
tehprofessor

1
助けてくれてありがとう。
Tidane、2015年

5
スキームを個別にビルドする必要がある場合は、おそらく、アプリケーションのビルド設定でターゲット依存関係としてフレームワークが正しく設定されていないことを意味します。これを行うと、手動でビルドする必要はありません。
Charles A.

Xcodeで動作するため、私はこれに賛成票を投じました。残念ながら、コマンドラインからビルドする場合、またはリリース用にビルドする場合は機能しません。
エネコアロンソ

これにより、GoogleApiClient / Driveで発生していた問題が修正されました。ビルドは成功しますが、ファイルに変更が加えられるとすぐに、Xcodeはインポートについて文句を言うでしょう。
Nick Alexander

53

Developer / Xcode / DerivedDataに移動し、フレームワークのフォルダーを削除します。(または単にDerivedData自体を削除します)

実行中のシミュレーターにアプリのビルドがある場合は、そこでアプリを削除する必要があります。

その後、クリーン&ビルド


これも私にとってはうまくいきましたが、複数のコマンド生成に遭遇した場合、このリンクが役立ちます:stackoverflow.com/questions/50718018/…
Bhimbim

32

これは常に私にとってはうまくいきます:

  1. Xcodeを終了
  2. 削除する ~/Library/Developer/Xcode/DerivedData
  3. フレームワークのスキームに変更し、buildBをビルドします
  4. アプリのスキームに変更し、⌘Bをビルドします

22

DerivedDataフォルダーを削除し、プロジェクトをクリーンアップしてビルドすると、この問題は解決しました。


15

以下の順序で試してみれば、いずれかのステップが機能するはずです。

  1. Cmd+ B-ワークスペースをビルドし、必要に応じてターゲットまたはモジュールをビルドする必要があります。

  2. Cmd+ KそしてCmd+ B-クリーンしてからビルド

  3. Cmd+ Shift+ Option+ KおよびCmd+ B-クリーンビルドフォルダー

  4. Xcodeを終了し、派生データを削除し、Xcodeを起動し、Cmd+ Shift+ Option+ Kその後Cmd+B

これはたまたま、Xcodeから派生データと他のキャッシュを削除する最もクリーンな方法です。


iCloud同期を使用している場合(たとえば、プロジェクトをドキュメントフォルダーに配置して、複数のMacに簡単に同期できるようにする)、名前がのファイルを確認しますXXX 2.swift。それらをすべて検索して削除し、を実行しpod installます。
John Pang

12

動的フレームワークをインポートしようとしたときにこのエラーが発生する場合は、フレームワークがターゲットのターゲット依存関係に含まれていることを確認してください。

Project > "Target" > Build Phases > Target Dependencies


また、同じワークスペースで開発された別のフレームワークを使用している場合は、プロジェクトをフレームワークファイルではなくリンクライブラリとして追加してください。そうしないと、フレームワークがターゲットの依存関係として表示されません。
デヴィッド・Pásztor


6

インポートとそれを使用するすべてのコードをコメント化し、ビルド、実行、コメント解除します。それは私のために働いた...


1

この問題は、Objective-C / Swiftハイブリッドプロジェクトの1つで解決しました。

Objective-Cブリッジングファイルに、次の行を追加します。

#import <Alamofire/Alamofire.h>


0

ポッドをビルドできなかった場合も、このエラーが発生する可能性があります。(私の場合、古い構文を使用する古いポッドはビルドに失敗しました)。

pod updateポッドを最新バージョンに更新して、状況を確認してみてください。


iCloud同期を使用している場合(たとえば、プロジェクトをドキュメントフォルダーに配置して、複数のMacに簡単に同期できるようにする)、名前がのファイルを確認しますXXX 2.swift。それらをすべて検索して削除し、を実行しpod installます。
John Pang

0

この問題のクレイジーな修正-私にとって唯一の解決策

新しいスキームを作成し、エラーを示しているフレームワークを追加します。この場合は「Alamofire」です。それらのすべてのスキームを実行します。

すべてのスキームをコンパイルすると、プロジェクトターゲットも正常に機能します。

それはクレイジーな修正のように見えるかもしれませんが、私にとっては有効な解決策です。


0

Alamofireプロジェクトの有効なアーキテクチャにプロジェクトの有効なアーキテクチャが含まれていない場合、「objective-cモジュールを構築できませんでした」というエラーが発生します。

これらのアーキテクチャi386 x86_64 arm64 arm64e armv7 armv7s armv6 armv64を「ビルド設定」のAlamofireプロジェクトの「有効なアーキテクチャ」に追加します。

両方のプロジェクトで同じターゲットデバイスをビルドします。たとえば、最初にiPhone 8(13.2)用のAlamofireプロジェクトをビルドしてから、同じシミュレーター用にプロジェクトをビルドします。

Alamofireプロジェクトのビルドに非常に短い時間がかかる場合、つまり約0.5秒の場合、選択したシミュレーターのアーキテクチャーValid Architecturesにないため、Alamofireプロジェクトでエラーが発生します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.