【问题标题】:Xcode 4.5: dependencies not updated when using workspacesXcode 4.5:使用工作区时未更新依赖项
【发布时间】:2012-09-21 08:46:40
【问题描述】:

我今天安装了Xcode 4.5,遇到以下问题:

我使用工作区同时开发库和应用程序。当我更改库中的某些内容并构建应用程序时,库将使用新的更改重新构建。这在 Xcode 4.3/4.4 中运行良好。 但是,从 Xcode 4.5 开始,这似乎不再起作用了。我总是必须“清理”项目,否则更改是不可见的,尽管目标是按正确的顺序构建的(lib、app)。

有没有人有同样的经历? 是否存在解决方法?

-亚历山大

【问题讨论】:

  • 是的,我看到了完全相同的行为。我正在使用 XCode 版本 4.5 (4G182)。在主项目中为 lib 使用子项目也会显示此行为。不过,我还没有检查过旧版本的 XCode。

标签: ios xcode xcode4 workspace xcode4.5


【解决方案1】:

这是一个可能的原因(可能还有其他原因):

确保显示身份和类型检查器并选择应用程序项目(而不是库)中的 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>"; };

我在这里找到了这个答案:

What's the correct way to configure XCode 4 workspaces to build dependencies when needed?

【讨论】:

  • 非常感谢,它又可以正常工作了。我从path 中删除了所有路径,并将sourceTree 更改为BUILT_PRODUCTS_DIR
猜你喜欢
  • 2012-12-30
  • 2021-06-23
  • 1970-01-01
  • 2013-06-24
  • 1970-01-01
  • 2016-02-16
  • 1970-01-01
  • 2022-11-25
  • 2013-10-14
相关资源
最近更新 更多