gpt4 book ai didi

iphone - 如何使用 xcode 编译器警告来确定最小 IOS 部署目标

转载 作者:技术小花猫 更新时间:2023-10-29 10:27:17 25 4
gpt4 key购买 nike

我正在使用 Xcode 3.2.5 构建一个 iOS 应用程序,并将 Base SDK 设置为 iOS 4.2

我知道我使用了 4.0 和 4.1 中的一些 API,但不确定我是否真的需要 4.2。

根据 iOS 开发指南,“当 Xcode 检测到您的应用程序正在使用目标操作系统版本中不可用的功能时,它会显示构建警告”。

所以我希望使用编译器警告来推导我的最低操作系统要求。然而,即使我将我的 iOS 部署目标设置为 iOS 3.0,我仍然没有收到任何编译器警告。

我一定是做错了什么,但不确定是什么?当 iOS 部署目标小于基本 SDK 并且代码使用基本 SDK 函数时,任何人都可以确认他们收到编译器警告吗?或者编译器警告是否仅在您链接 iOS 部署目标版本中不存在的框架时显示?

最佳答案

它的行为符合预期:更改部署目标会影响您的应用运行的最低操作系统版本,而不是最高操作系统版本。

如果您使用 4.3 SDK 并将部署目标设置为 4.0,这仅意味着您的应用将硬链接(hard link)任何 4.0 之前的 API,并弱链接 4.0 和 4.3 之间引入的任何 API。您必须在运行时检查 API 是否存在(例如 C 函数的空指针)或操作系统版本。

部署目标确实会生成 Xcode 警告,但对于弃用的 API:例如,如果您使用 4.1 及更高版本中弃用的 API,并且部署目标是 4.1 或更高版本,您会收到警告,但如果是 4.0 或更早版本,则不会't.

看起来你真正需要的是 MAC_OS_X_VERSION_MAX_ALLOWED (它不是默认build设置的一部分,但你可以自定义它,它应该覆盖由SDK),但适用于 iOS SDK。我不确定它是否正式存在:我能够找到 __IPHONE_OS_VERSION_MAX_ALLOWED 但考虑到它以 __ 开头,我不确定它是否真的受支持。

正确的解决方案似乎只是针对以前版本的 SDK 构建(您始终可以在模拟器中这样做),如果使用缺少的 API,您将收到 Xcode 错误。

有关详细信息,请阅读此技术说明:http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/cross_development/Configuring/configuring.html

关于iphone - 如何使用 xcode 编译器警告来确定最小 IOS 部署目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4688333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com