1

別のプロジェクトP1があるワークスペースの一部である Xcode プロジェクトP2があります。

P1をビルドすると、Cocoa Touch Framework が作成されます。P2では、P1 で作成されたフレームワークを [一般] -> [フレームワークとライブラリのリンク] -> [P1.framework の選択] に移動して追加しました。

次に、P2プロジェクトをビルドすると、P1.framework が統合された状態で正常にコンパイルされます。だから、これで大丈夫です。

ワークスペースを開いてワークスペースからP2プロジェクトをビルドする代わりに、ファイルをクリックしてP2プロジェクトを直接開きp2.xcodeprojます。p1.frameworkその中のファイルを見ることができます。

しかし、今P2をビルドしようとすると、エラーが発生します:

フレームワークが見つかりません P1。clang: エラー: リンカー コマンドが終了コード 1 で失敗しました (呼び出しを確認するには -v を使用してください)。

ファイルから直接開いたときにP2がエラーを出す理由を理解するのを手伝ってくれる人はいp2.xcodeprojますか?

4

1 に答える 1

2

を適切p1.frameworkにリンク可能にするには、参照元のプロジェクトが表示されている必要があります。p1.framework

This is probably because you initially used the standard Xcode UI to choose the p1.framework from the P1 project in your workspace. Xcode doesn't directly reference p1.framework, but rather via the P1 project. This is useful, because it allows you to modify P1 as much as you like (changing the build destinations, etc.) and yet allows other projects to use the p1.framework.

An easier analogy might be to think of folder aliases. It's like you reference a file via a folder alias, and then you delete that folder. Naturally, errors appear.

于 2016-04-22T15:37:22.803 に答える