2012-02-10 47 views
2

我正在制作一个静态库产品。我想使用ARC,但我的一位客户希望将其应用程序定位到iOS 3.2。他们也想要瞄准ARMv6架构。我可以将使用ARC的静态库链接到项目目标iOS 3.2吗?

好的。我必须接受这个要求。据我所知,没有weak引用的ARC只是编译器功能,所以我认为静态库本身没有区别,或者它不需要iOS 4.0。但据我所知,Apple将最低iOS限制为4.0。所以我不能自己决定,因为我没有3.2设备:(

是否有人在iOS 3.2上测试ARC代码?如果运行良好,我将转到ARC,并使用ARC编译我的库,并通过我认为我可以强制他们使用4.0,但我不确定ARMv6的来源,ARMv6没有任何理由不起作用,但是我无法测试的事实让我担心,请让我知道你的经历。

+1

正如我在回答何况,还有涉及在iOS 4.x的静态库的兼容性细微的差别,所以这个问题是不是你的完整副本。 – 2012-02-10 18:24:01

+0

谢谢@BradLarson。关闭投票无法删除:( – Eonil 2012-02-11 10:46:32

回答

3

自动引用计数需要现代运行时才能工作(iOS 4.0和64位Snow Leopard中存在),因此启用ARC的项目无法定位iPhone OS 3.x.它们在运行时会失败。

将启用ARC的静态库部署到iOS 4.x有一个小问题,你应该知道。正如我在this answer中所描述的,如果有人在非ARC应用程序中使用启用了ARC的静态库,则他们需要手动链接到libarclite_iphoneos.a库(如果它们的目标是在iOS 4.x上)。这在默认情况下包含在支持ARC的应用程序中,但在与支持ARC的库链接的非ARC应用程序中将缺失。

相关问题