-1

因此,我使用 Kyle 在此处发布的通用框架项目将许多类捆绑在一起作为静态框架:https ://github.com/kstenerud/iOS-Universal-Framework

事情在 iOS 5.0 到 6.0 上编译和运行都很好,现在已经有几个月了——我通常只是将生成的框架复制到我的项目中,链接起来,然后使用它。它对大多数类使用 ARC。

最近,我在 xcode 4.5 中从头开始创建了一个静态库项目,并将框架中的所有类复制到其中。它直接编译,就像我将它添加到的项目(以前与框架一起使用)一样,但是当我在带有 iOS 5.1.1 的 iPhone 4 上运行它时,它在运行时崩溃并显示 EXC_BAD_ACCESS 消息并且不突出显示与崩溃相关的任何特定代码。一切都在 iOS 6.0 模拟器上运行良好,我拥有运行 iOS 6 的 iPhone 4S。

我发现的最多的是错误发生在一个(相当大的)块中,该块注册为后台进程并使用位置管理器。我目前正在重新安装 5.1 模拟器,看看它是否也崩溃了。

处理静态库和静态框架的方式是否存在我可能不知道的重大差异?iOS 5 和 6 在这方面有什么显着差异吗?我已经使用了一些链接器标志,包括 -ObjC 和 -all_load。是否有任何有助于我发布的代码或错误字符串?我还没有包括任何东西,因为我不完全确定问题出在哪里......

4

1 回答 1

2

在 Apple 开发板上进行了一些讨论后,我们发现我在项目构建设置中使用 iOS 6.0 的 iOS 部署目标来编译静态库。将其切换到 iOS 5.0,瞧,它无处不在。

为了让以后遇到这种情况的人清楚(使用 Xcode 4.5:在文件树中单击您的根 Xcode 项目,然后单击您的项目名称(而不是您的目标),然后在“信息”选项卡下查看拉动-向下显示“iOS 部署目标”并将其切换到您想要支持的最低操作系统版本。

于 2012-10-16T18:23:13.840 回答