【问题标题】:Changes to subproject are not evident when re-running the app重新运行应用程序时子项目的更改不明显
【发布时间】:2011-06-01 16:43:30
【问题描述】:

我对 Xcode4 中的子项目(常规、嵌套项目)有疑问。

我的情况如下:我有一个名为App的项目和一个名为Lib的子项目。 App 依赖于 Lib。我可以编译和运行 App,一切都按照我的预期进行编译和链接,并且工作正常。

当我对 Lib 中的文件进行更改并尝试重新运行 App 时,会出现问题。似乎子项目中的更改,Lib 正在编译,因为如果有编译错误,它们会被标记出来。但是,当 App 运行时,这些更改不会反映出来。似乎没有正确链接更改。

项目是从 Xcode3 迁移过来的,没有出现这个问题。

可能与此有关的是以下内容。我使用一个简单的条件日志语句,它仅在项目以调试模式编译时输出日志语句。它是一个宏,它定义了一个名为 DLog 的函数,它在 App 和 Lib 中都使用。 App 中一切正常,并且日志语句被适当地写出。然而,在 Lib 中,不显示任何语句。

发生了什么事?就好像项目之间的联系在某种程度上被破坏了。有没有其他人看到过这个,请问解决方法是什么?

【问题讨论】:

    标签: objective-c xcode ios-simulator


    【解决方案1】:

    我似乎记得在 Xcode 3 中,应用程序的构建设置级联到 Lib/子项目。我敢打赌,现在 Lib 是完全不同的,几乎就像两者是 Xcode 4 工作区中的对等。我很想告诉你/我自己/世界如何级联这些设置,而不是使用 .xcconfig 文件。

    您可以通过在应用程序的构建方案中包含 Lib 来解决依赖性问题(搜索“Xcode 编辑方案”;您希望顺序为 Lib -> App)。如果仍然存在,请取消选中“Parallelize Builds”并重试。

    您的 DLOG 宏可能已定义或包含在您应用的 PCH 文件中,并且不会(或“不再”)级联到 Lib 的 PCH。你可以

    1. 将该宏放入 Lib 中的 .h 文件中
    2. 确保 .h 文件是公开的(搜索 "Xcode build phases copy headers public"
    3. #include "your_macro_file.h" 在两个 PCH 文件中。

    这应该让您的 DLOG 在两者中都能正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-27
      • 2016-08-08
      • 2013-04-20
      • 2021-04-08
      相关资源
      最近更新 更多