2

我目前正在尝试构建我的(第一个)iphone 应用程序的分发产品,以便可以将其上传到 App Store。我已经完成了所有的 App ID 和 Distribution Provisioning profile 过程,最后得到了 Organizer 和 target 的构建配置来识别它。

问题是,在“分发”上设置“活动配置”时(“发布”配置的副本。每个 iPhone 开发中心的说明)我无法编译代码。该项目包含对静态库的引用,该库包含多个在项目的许多类中用作基类的类。因此,当在 Distribution 配置上构建时,编译器会抛出错误,说它无法从静态库中找到基类,并且构建失败。

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

我无法找到问题可能是什么。我在这里发现了另一个类似的问题,但似乎是不同的情况:

iPhone 静态库分发和发布构建错误(但不适用于调试)

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

所以,在这一点上,我一无所知。我已尝试尽可能完全按照说明进行操作,但我想这还不够,我现在遇到了问题。我想修复应该有点简单(也许只是在某个地方设置了一些参数)但是我无法找到它。

您能否(请:))提供一些帮助。非常感谢任何帮助或提示。

先感谢您!

4

3 回答 3

6

这里是:

要进行分发构建,(根据 iPhone 开发中心的说明),您必须复制“发布”配置并将其命名为“分发”,然后在此活动配置下构建项目。检查目标信息窗口中的“标头搜索路径”以获取调试和分发配置,我注意到值有所不同,该值设置为(对于两个配置):

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

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

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

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

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

希望这会有所帮助,再次感谢亚历克斯。

问候

于 2009-09-18T21:30:54.453 回答
3

检查 Debug 配置的构建选项;例如,Debug 配置的标头搜索路径可能与 Distribution 配置不同。选择菜单Project > Edit Project Settings并输入:Header Search Paths检查列出的设置Configuration。如果配置之间有不同之处,请将它们设为相同。

于 2009-09-18T20:56:38.770 回答
0

我听说过 iPhone OS 3.0 SDK 的链接器问题;一些解决方法包括在构建项目时将 -all_load 添加到链接器标志(尽管这可能会产生意想不到的副作用)。另一种选择是升级到 3.1 SDK,我相信这些问题已经解决。当然,这可能根本不是你的问题......

其他寻求帮助的地方:

于 2009-09-18T21:00:19.090 回答