2

今日 Xcode 4.5 をインストールしましたが、次の問題があります。

ワークスペースを使用して、ライブラリとアプリを同時に開発しています。ライブラリ内の何かを変更してアプリをビルドすると、ライブラリが新しい変更で再ビルドされます。これは Xcode 4.3/4.4 で正常に動作します。ただし、Xcode 4.5 以降、これは機能しないようです。常にプロジェクトを「クリーン」にする必要があります。そうしないと、ターゲットは正しい順序でビルドされますが (lib、app)、変更が表示されません。

誰も同じことを経験しましたか?回避策はありますか?

-アレキサンダー

4

1 に答える 1

1

これの考えられる原因の1つは次のとおりです(おそらく他にもあります)。

Identity and Typeインスペクターが表示されていることを確認し、アプリケーションのプロジェクト(ライブラリではない)のlibWhatever.aファイルを選択します。Location:Relative to Projectが表示されている場合、これが問題です。

  • [プロジェクトに相対]をクリックし、[製品のビルドに相対]に変更します。
  • これによりリンクのタイプが変更されますが、それでも壊れます。
  • 検索ボタンをクリックして、出力ファイルを検索します。

正直なところ、pbxprojを直接編集したほうがよいでしょう。パッチは次のようになります。

Index: App.xcodeproj/project.pbxproj
===================================================================
--- App.xcodeproj/project.pbxproj     (revision 28061)
+++ App.xcodeproj/project.pbxproj     (working copy)
@@ -28,7 +28,7 @@

 /* Begin PBXFileReference section */
           A7052F8F1358BFCC00178DAC /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = usr/lib/libsqlite3.dylib; sourceTree = SDKROOT; };
-          A74F787413566130000D0AFC /* libLibrary.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libLibrary.a; sourceTree = SOURCE_ROOT; };
+          A74F787413566130000D0AFC /* libLibrary.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libLibrary.a; sourceTree = BUILT_PRODUCTS_DIR; };
           A74F787D135665A3000D0AFC /* Macros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Macros.h; path = DslExt/Macros.h; sourceTree = "<group>"; };
           A74F787E135665A3000D0AFC /* Foundation-dsl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "Foundation-dsl.m"; path = "DslExt/Foundation-dsl.m"; sourceTree = "<group>"; };
           A74F787F135665A3000D0AFC /* Foundation-dsl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "Foundation-dsl.h"; path = "DslExt/Foundation-dsl.h"; sourceTree = "<group>"; };

私はここでこの答えを見つけました:

必要なときに依存関係を構築するようにXCode4ワークスペースを構成する正しい方法は何ですか?

于 2012-10-03T18:26:55.157 に答える