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

时间:2012-10-19 16:42:52

标签: xcode xcode4

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

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

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

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

目前我知道除了清洁和重建之外没有其他解决方法。还有其他人看过这个,还是有其他见解?提前谢谢。

1 个答案:

答案 0 :(得分:8)

我最初没有成功搜索过,但我不能正确地说出我的搜索。但是,在撰写我的问题时,“类似问题”列表提供了更好的结果,我能够找到workaround。简而言之:

  • 在Project Navigator中选择库
  • 在文件检查器中找到位置;它可能是“相对于集团”
  • 将其更改为“相对于构建产品”

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

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