菜鸟教程小白 发表于 2022-12-13 11:33:55

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


                                            <p><p>我正在制作一个静态库产品。我想使用 ARC,但我的一位客户希望将他们的应用程序定位到 iOS 3.2。他们还希望针对 ARMv6 架构。 </p>

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

<p>这里有人在 iOS 3.2 上测试过 ARC 代码吗?如果运行良好,我将转移到 ARC,并使用 ARC 编译我的库,并将库传递给我的客户。我想我可以强制他们使用 4.0,但我不确定 ARMv6。当然,没有理由 ARMv6 不起作用,但我无法测试的事实让我担心。请告诉我您的经历。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>自动引用计数需要现代运行时才能工作(存在于 iOS 4.0 和 64 位 Snow Leopard 中),因此启用 ARC 的项目不能以 iPhone OS 3.x 为目标。它们会在运行时失败。</p>

<p>将启用 ARC 的静态库部署到 iOS 4.x 有一个小问题,您应该注意这一点。正如我在 <a href="https://stackoverflow.com/a/8000517/19679" rel="noreferrer noopener nofollow">this answer</a> 中描述的那样,如果有人在非 ARC 应用程序中使用您启用 ARC 的静态库,如果他们在 iOS 4.x 上针对此应用程序,他们将需要手动链接到 <code>libarclite_iphoneos.a</code> 库。这默认包含在启用 ARC 的应用程序中,但在链接到启用 ARC 的库的非 ARC 应用程序中会丢失。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 我可以将使用 ARC 的静态库链接到以 iOS 3.2 为目标的项目吗?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/9224484/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/9224484/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 我可以将使用 ARC 的静态库链接到以 iOS 3.2 为目标的项目吗?