我今天安装了 Xcode 4.5,但遇到以下问题:
我使用工作区同时开发库和应用程序。当我更改库中的某些内容并构建应用程序时,库将使用新的更改重新构建。这在 Xcode 4.3/4.4 中运行良好。但是,从 Xcode 4.5 开始,这似乎不再起作用了。我总是必须“清理”项目,否则更改是不可见的,尽管目标是按正确的顺序构建的(lib、app)。
有没有人有同样的经历?是否存在解决方法?
-亚历山大
这是造成这种情况的一个可能原因(可能还有其他原因):
确保显示身份和类型检查器并选择应用程序项目(而不是库)中的 libWhatever.a 文件。如果您看到位置:相对于项目,这就是您的问题。
老实说,您最好直接编辑 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>"; };
我在这里找到了这个答案: