1. ホーム
  2. objective-c

[解決済み] Xcode 4(および依存関係)におけるコンパイル、ビルド、またはアーカイブの問題

2023-01-28 14:48:40

質問

この質問は、過去数週間の間に、より一般的な問題である xcode4 (および古い xcode s).

しかし、多くの問題は、同じ一連の指示に従うことで解決することができます。

以下のような問題がある場合、受理された回答にある方法を試してみてください。

  • Xcode 4 がアプリをアーカイブするのに失敗する
  • Xcode 4 は、使用不可能なアーカイブを作成します。
  • Xcode 4 は .ipa を作成しません。
  • Xcode 4 はプリプロセッサのエラーによりコンパイルに失敗します。
  • Xcode 4 はヘッダーを見つけることができません。
  • Xcode 4 のコード補完が機能しない
  • プロジェクトの依存関係がコンパイルされない
  • 依存関係を追加すると、上記の問題のいずれかが発生します。

元の質問

タイトル Xcode 4 で "字句解析またはプリプロセッサの問題ファイルが見つかりません" 。

Xcode 4 でプロジェクトをビルドし、デバイスとシミュレータ上で実行することはできますが、アーカイブしようとすると、静的ライブラリに関連するヘッダー ファイルを探すときにエラーが発生します。

In file included from /Volumes/Development/Path/LBProject/LBProject/LBProject-Prefix.pch:15:
In file included from /Volumes/Development/Path/LBProject/LBFDefines.h:23:
In file included from /Volumes/Development/Path/LBProject/Classes/LBProjectAppDelegate.h:11:
In file included from /Volumes/Development/Path/LBProject/LBProject/../FKNDirectory/FKNDirectoryManager.h:10:
/Volumes/Development/Path/LBProject/LBProject/../FKNDirectory/FKNDataModel.h:11:9: fatal error: 'Merchant.h' file not found [1]
 #import "Merchant.h"
         ^
1 error generated. 

Xcodeはエラーを出します。

lexical or preprocessor issue file not found 

多くの ググってみると、多くの人がこの問題に直面していることがわかりますが、解決策はありません。どなたか、修正方法または手がかりをお持ちではないでしょうか。

更新しました。 その user header の検索パスが ${BUILT_PRODUCTS_DIR} に設定されています。アーカイブ時以外はどの設定でも問題なくビルドされます。

アップデート 2: Merchant.h は自動生成される Core Data クラスであり、そのため内部では .xcdatamodeld パッケージの中にありますが、ライブラリのビルド時にヘッダはすべて public headers ディレクトリにコピーされます。

どのように解決するのですか?

注意: 以下のステップは、Xcode アーカイブの問題の 90% を解決します。 しかし、コメントから、次のことを試してみることをお勧めします。 Xcode を終了する を試してみることをお勧めします。これにより、設定の微調整に費やす時間を節約できるかもしれません。

  1. ユーザーヘッダのパスが正しいか確認する(プロジェクトと依存関係の両方で、スペースのパスに "" を追加する)。
  2. ユーザーパスを常に検索する(YES)に設定する。
  3. プロジェクトに "Indexing headers" というグループを作成し、ヘッダーをこのグループにドラッグします。 しない というプロンプトが表示されたら、任意のターゲットに追加します。これには .xcdatamodeld の中にあるヘッダーも含まれます。これらを見つけるには、右クリックしてパッケージの内容を表示する必要があります。
  4. すべての依存関係に対して Skip Install"。 ビルド設定を "はい"
  5. ビルド フェーズにあるすべての "Public" ヘッダーを "Project" に移動します。
  6. ビルド設定の設定 インストール・ディレクトリ。 をターゲットに設定します。 $(LOCAL_APPS_DIR)
  7. ターゲットのビルド設定 "scan all source files for includes" を YES に変更します。( リンク )
  8. Xcodeの新しいバージョン(> 4.2)では、以下のようにしたい場合があります。 この質問を読む ワークスペースに関連する。
  9. 手動で project.xcworkspace ファイルを削除します。 参照されているすべてのプロジェクトのフォームを削除します。