iPhone 应用程序在发行版构建时出现静态库编译错误

标签 iphone build-process compiler-errors distribution

我目前正在尝试构建我的(第一个)iPhone 应用程序的分发产品,以便将其上传到 App Store。我已经完成了所有应用程序 ID 和分发配置文件流程,最终让组织者和目标的构建配置能够识别它。

问题是,当在“Distribution”上设置“Active Configuration”时(按照 iPhone 开发中心的说明,“Release”配置的重复),我无法编译代码。该项目包含对静态库的引用,该静态库包含多个类,这些类在项目的许多类中用作基类。因此,在分发配置上构建时,编译器会抛出错误,指出无法从静态库中找到基类,并且构建失败。

如果我切换事件配置。到“调试”(如开发中使用的)完全没有问题,并且应用程序按预期正确编译。

我无法找出问题所在。我在这里发现了另一个类似的问题,但情况似乎有所不同:

iPhone static library distribution and release build errors (but not for debug)

谷歌似乎也没有太多有用的结果。我还在“构建”部分检查了目标的信息,并在“调试”和“分发”配置之间来回切换以检查是否有任何相关差异,但到目前为止还没有发现任何差异。实际上我没有找到有关静态库的任何相关信息。仅在信息窗口的常规选项卡上,但静态库在直接依赖项中正确显示。

所以,现在我一无所知。我已尝试尽可能严格地遵循说明,但我想这还不够,我现在遇到了问题。我想修复应该有点简单(也许只是在某个地方设置一些参数),但是我还没有找到答案。

您能(请:))提供一些帮助吗?任何帮助或提示,我们将不胜感激。

提前谢谢您!

最佳答案

这里是:

要进行分发构建,(按照 iPhone 开发中心的指示),您必须复制“发布”配置并将其命名为“分发”,然后在此事件配置下构建项目。检查目标信息窗口中的调试和分发配置的“ header 搜索路径”,我注意到该值存在差异,该值设置为(对于这两个配置):

${BUILD_STYLE}-${PLATFORM_NAME}/usr/local/include

因此,每个配置的 ${BUILD_STYLE}-${PLATFORM_NAME} 被替换为“Debug-iphoneos”和“Distribution-iphoneos”。静态库中的所有基类都存储在“include”文件夹中,但是没有“Distribution-iphoneos”文件夹。

这是因为我没有像在主应用程序的项目中那样在静态库项目中添加“分发”配置(我不知道必须这样做)。所以为了解决这个问题,我只添加了相同的配置。在静态库项目中并构建它。

总而言之,如果您在使用引用的静态库中的类的项目中添加新配置,则还要在静态库项目中添加相同的配置并执行构建。这样主项目就能够找到基类。

也许这实际上是基本的东西,抱歉我只是在学习语言(和 XCode):)。

希望这会有所帮助,再次感谢 Alex。

问候

关于iPhone 应用程序在发行版构建时出现静态库编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1446772/

相关文章:

ios - 如何区分自定义单元格中的 3 个对象

build - 如何让 NDepend 作为构建过程的一部分运行?

linux - 在 linux 中链接不同的 .so 文件

asp.net - Visual Studio 2003插入空间

c++ - ISO C++ 禁止声明没有自动迭代器类型的 ‘it’?

iphone - 导航栏隐藏在内容后面

iphone - 取消按钮和 UIActionSheet 的问题

iphone - pdf 作为 iOS 设备中的电子邮件附件

linux - WX_CONFIG_OPTIONS : command not found

oracle - 错误(3,31): PL/SQL: ORA-00984: Column is not allowed here