我可以将使用ARC的静态库链接到项目目标iOS 3.2吗?

时间:2012-02-10 07:56:55

标签: ios hyperlink automatic-ref-counting

我正在制作一个静态库产品。我想使用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不起作用,但我无法测试的事实让我担心。请告诉我你的经历。

2 个答案:

答案 0 :(得分:3)

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

将支持ARC的静态库部署到iOS 4.x时,您应该注意一点。正如我在this answer中所描述的那样,如果有人在非ARC应用程序中使用启用ARC的静态库,则如果他们在iOS 4上定位此应用程序,则需要在libarclite_iphoneos.a库中手动链接。 X。默认情况下,这包含在启用ARC的应用程序中,但在与ARC启用的库链接的非ARC应用程序中将丢失。

答案 1 :(得分:0)

ARC可用于SDK 5.0和iOS 4.3运行时

您可能需要查看http://clang.llvm.org/docs/AutomaticReferenceCounting.html了解详情

在这篇文章中有很多关于构建静态库的好信息:http://blog.stormyprods.com/2008/11/using-static-libraries-with-iphone-sdk.html