当源文件在依赖静态库中更新时,Xcode 不会重建应用程序

标签 xcode xcode4

我遇到了 Xcode 的隐式依赖项检查和静态库的问题,我认为这是 Xcode 中的一个错误(并已报告);我在这里提出它,以防其他人对此有任何想法。简而言之,如果应用程序依赖于静态库,并且作为库组件的源文件被修改,Xcode 会重建库但不会重新链接应用程序,因此在应用程序中看不到更改。

更具体地说:我有一个包含应用程序项目和静态库项目的工作区,以便应用程序调用库中的函数(并且结果在应用程序中可见:例如,该函数返回显示在标签中的文本应用程序)。静态库包含在应用程序目标的“Link Binary with Libraries”构建阶段。从头开始构建会导致首先构建库,然后是应用程序,正如预期的那样(换句话说,Xcode 已检测到依赖项)。

现在,如果我修改库源文件中的消息文本,然后单击“构建并运行”按钮,Xcode 正确重建库,但无法重新链接应用程序,因此当应用程序运行时,未修改的消息文本为显示。

我在 Mac OS X 10.8.2 下运行 Xcode 4.5.1。在我报告的场景中,应用程序是一个iOS单 View 应用程序,被调用的静态库函数恰好是用C++实现的。

目前我知道除了清理和重建之外没有其他解决方法。有没有其他人看到过这个,或者有任何其他见解?提前致谢。

最佳答案

我最初搜索 SO 没有成功,但我一定没有正确地表达我的搜索。然而,在写我的问题时,“类似问题”列表提供了更好的结果,我能够找到 workaround .简单来说:

  • 在项目导航器中选择库
  • 在文件检查器中找到位置;它可能是“相对于组”
  • 将其更改为“相对于构建产品”

  • 这解决了我的测试用例中的问题;现在,只要修改了库的源代码,就会正确地重建应用程序。我认为没有必要按照建议手动编辑 project.pbxproj 文件。

    我仍然会声称这是 Xcode 中的一个错误,但至少现在我有一个解决方法。

    关于当源文件在依赖静态库中更新时,Xcode 不会重建应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12978723/

    相关文章:

    iphone - xcode可以将iphone sdk安装到xcode开发工具吗

    ios - 可以在不使用 StoryBoard 的情况下执行 segue 吗?

    xcode - ARM NEON 汇编程序错误 : "instruction cannot be conditional"

    ios - 类似于 Info.plist 的预处理 Root.plist

    objective-c - 为什么在 XCode4 中创建新的 Objective-C 类文件不会创建 "An Objective-C class, with a header that includes the <Cocoa/Cocoa.h> header."

    iphone - 使用通配符配置文件在 iOS 6 设备上测试应用程序

    iphone - 从后台删除我的应用程序或删除沙箱时如何引发事件?

    xcode - 使用 xcode 在表格 View 中显示 sqlite3 结果

    ios - 具有多个目标的 XCode 项目的启动和图标图像文件的位置

    Xcode Interface Builder 性能缓慢