12

我意识到这是一个延伸,我无法提供太多信息来提供帮助,但我正在寻求任何帮助。我的应用程序已经持续开发了 3 年,从未见过这样的事情。我最近向 Apple 提交了一个小点发布以供发布,现在两次因为在他们的所有设备上启动时崩溃而被拒绝?

崩溃报告指向静态库中的一些代码,但关键行没有被符号化。试过Atos没有运气。

关键是我有 7 台设备在我能想到的每种模式下都测试了该应用程序,特别是没有连接到任何东西:Wifi-OFF、AirplaneMode-ON、位置服务-OFF。我永远无法模拟他们声称看到的内容,即每次启动时应用程序崩溃?!

我在 AAPL 开发论坛上发现了一份听起来很相似的报告,但他从来没有得到任何关于发生了什么的解释。在他提交了一个包含大量登录的应用程序后,他绝望地要求他们发送日志。他们得到了那个版本并且……在几个小时内就批准了。

有人有想法么。我需要发布这个版本。


注意:已解决


事实证明,这不是一个薄弱环节问题。正如 Brad 建议的那样,我们只在使用存档版本的 Ad Hoc 分发运行应用程序时才看到崩溃......所以这很有帮助。

然而,分辨率原来是我在这里列出的一些编译器标志: https ://stackoverflow.com/a/10302012/754494

4

1 回答 1

12

我将重新发布并扩展我上面的评论,以便这个问题可以得到一个可接受的答案。

我最近在构建我的 GPUImage 框架时遇到了一个类似的案例。归档时的构建过程似乎与通过 Xcode 在设备上构建和直接安装应用程序时的构建过程略有不同。

这可以通过构建和归档应用程序来公开,然后选择分发它以进行临时或企业分发。获取 .ipa 并将其放入 iTunes 中,然后以这种方式手动将其加载到您的一台测试设备上。以这种方式准备的应用程序的行为可能与通过 Xcode 构建和安装的应用程序不同,并且应该更接近提交审核的构建的行为方式。

就我而言,问题是由于缺乏适当的弱链接。在高于 iOS 4.3 的 SDK 上,如果您希望有条件地使用新 SDK 中存在但旧 SDK 中缺少的类和函数,则不再需要弱链接整个框架。如果您的目标是 4.0 和更高版本,链接器现在应该执行类和函数级的弱链接。

然而,这对于使用我的静态库的人来说是失败的,它会在运行时检查 iOS 5.0 中是否存在新的纹理缓存功能,但它只在这些归档版本中失败。我从未在针对 4.x 设备的所有测试中看到它,因为这是通过 Xcode 安装完成的。最后,我需要让用户明确地对整个 Core Video 框架进行弱链接,以便使用该框架的应用程序在通过 iTunes 归档和安装时能够正常运行。

请注意,这不是由于 Release vs. Debug 构建配置,因为当通过 Xcode 部署到设备时,我尝试在构建方案中在这些配置之间进行切换,并且在那里没有任何区别。归档应用程序的构建和链接方式也有所不同。

于 2012-04-22T04:06:20.053 回答