我正在制作一个静态库产品。我想使用 ARC,但我的一位客户希望将他们的应用程序定位到 iOS 3.2。他们还希望瞄准 ARMv6 架构。
好的。我必须接受这个要求。据我所知,没有weak
引用的ARC只是编译器功能,所以我认为静态库本身没有区别,或者它不需要iOS 4.0。但据我所知,Apple 将最低 iOS 限制为 4.0。所以我自己无法决定,因为我没有 3.2 设备:(
有人在 iOS 3.2 上测试过 ARC 代码吗?如果运行良好,我将过渡到 ARC,并使用 ARC 编译我的库,并将该库传递给我的客户。我想我可以强制他们使用4.0,但我不确定ARMv6。当然,ARMv6 没有理由不工作,但我无法测试这一事实让我担心。请告诉我您的经历。
最佳答案
自动引用计数需要现代运行时才能工作(iOS 4.0 和 64 位 Snow Leopard 中存在),因此启用 ARC 的项目无法针对 iPhone OS 3.x。它们将在运行时失败。
将启用 ARC 的静态库部署到 iOS 4.x 有一个您应该注意的小问题。正如我在this answer中描述的那样,如果有人在非 ARC 应用程序中使用您的启用 ARC 的静态库,并且他们将此应用程序定位为 iOS 4.x,则需要手动链接到 libarclite_iphoneos.a
库。默认情况下,它包含在启用 ARC 的应用程序中,但在链接到启用 ARC 的库的非 ARC 应用程序中将缺失。
关于ios - 我可以将使用 ARC 的静态库链接到面向 iOS 3.2 的项目吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9224484/