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

rsf*_*inn 6 xcode xcode4

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

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

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

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

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

rsf*_*inn 8

我最初搜索过没有成功,但我不能正确地说出我的搜索.但是,在撰写我的问题时,"类似问题"列表提供了更好的结果,我能够找到解决方法.简单来说:

  • 在Project Navigator中选择库
  • 在File Inspector中找到该位置; 它可能是"相对于集团"
  • 将其更改为"相对于构建产品"

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

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