Xcode Archive 在子项目中找不到头文件

Posted

技术标签:

【中文标题】Xcode Archive 在子项目中找不到头文件【英文标题】:Xcode Archive won't find header file in subproject 【发布时间】:2012-11-14 03:02:06 【问题描述】:

现在对 XCode 感到非常沮丧。我可以完美地从代码构建和运行。但是,尝试存档是一场灾难。

我创建了一个项目,然后将 .xcodeproj 拖到项目导航器上的 XCode 中。显示很好,很酷。父项目构建设置:

Other linker flags: -all_load, -ObjC

Target Dependencies : CocoaLibSpotify (subproject I'm incorporating)

Link Binary with Libraries : libCocoaLibSpotify.a

当我构建我的项目时,以下几行工作

#import "CocoaLibSpotify.h"
#import <CocoaLibSpotify.h>

但是,当我存档时,我的项目无法找到这些文件。值得注意的是,子项目文件与父项目不在同一目录中。但是,这不是目标依赖/链接二进制文件与库的重点吗?为什么存档失败?这看起来应该比现在容易得多。

谢谢。

编辑:编译错误

In file included from /Users/ericharmon/Projects/teamsync/teamsync/TeamSync/AppDelegate.m:12:  
In file included from  /Users/ericharmon/Projects/teamsync/teamsync/TeamSync/Classes/GUI/ViewControllers/LoginViewControll er.h:9:
In file included from /Users/ericharmon/Projects/teamsync/teamsync/TeamSync/Classes/GUI/BaseViewController.h:10:
In file included from /Users/ericharmon/Projects/teamsync/teamsync/TeamSync/Classes/Model/Managers/Managers.h:9:
In file included from /Users/ericharmon/Projects/teamsync/teamsync/TeamSync/Classes/Model/Managers/AppLogicManager.h:11:
In file included from   /Users/ericharmon/Projects/teamsync/teamsync/TeamSync/Classes/Model/CoreData/CoreDataObjects.h:13:
/Users/ericharmon/Projects/teamsync/teamsync/TeamSync/Classes/Model/CoreData/Track.h:13:9: fatal error: 'CocoaLibSpotify.h' file not found
#import <CocoaLibSpotify.h>
    ^
1 error generated.`

【问题讨论】:

请发布编译步骤的日志(从日志窗格)。 添加了错误。如果您需要完整的编译日志转储,请告诉我 过去我自己也看到过这个错误。我当前的项目使用 Xcode 工作区,并且与一个主项目和 3 个子项目配合良好。也许尝试自己使用工作区? 我会考虑尝试使用工作区,看看它是否能解决这种情况下的问题 :) 只是旁注:我尝试实现工作区并得到相同的错误。现在我已经完成并简单地将每个 .h 添加到我的项目中,这样我就可以开始构建了。不完全确定发生了什么,但 3 小时后它变得有点可笑。 【参考方案1】:

Archive 在构建时使用不同的目录结构,这可能会很痛苦。通过将以下内容添加到应用程序目标的 User Header Search Paths 构建设置中,我发现了成功:

"$(BUILD_ROOT)/../IntermediateBuildFilesPath/UninstalledProducts/include"(包括引号)。

另外,请确保 Always Search User Paths 设置为 Yes

此外,我的Header Search Paths 设置中有$CONFIGURATION_BUILD_DIR/include,但我认为这无助于存档。

【讨论】:

伙计,我什至从未注意到 XCode 中的“用户标题搜索路径”设置......我只是觉得很愚蠢,你让我开心。谢谢 “用户标题搜索路径”和“始终搜索用户路径”一起使它对我有用......这个问题让我大吃一惊,救世主来了!!!......谢谢你@iKendac 超级酷。感谢您的回答,但此更改是否会影响隐藏创建 ipa 文件的选项?因为我无法创建应用程序存档,而是可以看到其他选项,例如“保存构建产品”和“导出为 xcode 存档”。缺少临时选项。

以上是关于Xcode Archive 在子项目中找不到头文件的主要内容,如果未能解决你的问题,请参考以下文章

MinGW gcc 在 /local/include 中找不到头文件

执行持续集成时找不到头文件

xCode 12 Beta 4,词法或预处理器问题 - 找不到头文件。仅模拟器 - 适用于设备

从 TeamCity 构建 VC++ 6 项目。找不到头文件

cmake找不到头文件

GCC 找不到头文件