iPhone SDK 兼容性包括使用 __IPHONE_OS_VERSION_MIN_REQUIRED

发布于 2024-11-16 23:20:59 字数 329 浏览 3 评论 0原文

我已经搜索过包括 iOS SDK 兼容性指南在内的内容,但无法得到对此的解释。

我的理解是:

  • 部署目标是最早的操作系统 应用程序可以在
  • Base SDK 上运行的版本是该 SDK 的 版本 编译使用及其特点 如果运行时设备可以使用 支持它们

我正在努力解决的是当编译时修复并且设备的操作系统仅在运行时已知时如何使用 __IPHONE_OS_VERSION_MIN_REQUIRED 。所以我提交的代码将始终编译为相同的。

还是自动编译多个版本?

有人可以解释一下吗?

非常感谢,

克里斯。

I've searched around including the iOS SDK Compatibility Guide but cannot get an explanation of this.

I understand that:

  • Deployment target is the earliest OS
    version an App can run on
  • Base SDK is the SDK it will be
    compiled using and whose features
    can be used if the run time device
    supports them

What I'm struggling with is how __IPHONE_OS_VERSION_MIN_REQUIRED can be used when this is fixed at compile time and the device's OS is only known at run time. So the code that I submit will always compile the same.

Or are multiple versions compiled automatically?

Can someone please explain?

Many thanks,

Chris.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

全部不再 2024-11-23 23:21:00

IPHONE_OS_VERSION_MIN_REQUIRED 是一个定义 - 因此,虽然您的部署目标可能较低,但如果您的应用程序要与多个 iOS 版本高度兼容,您可能会使用一些重要的已弃用功能。

当然,您说设备的操作系统仅在运行时才知道是正确的。根据您的项目设置,Apple 将使用应用程序商店中的该信息来确保拥有正确设备的用户可以访问您的软件。据我所知,并未创建多个版本 - 如果您使用该定义来充分利用旧版 iOS 版本,那么您提交的代码将显示为动态的。

您可能还会发现这很有用:

如何定位特定的 iPhone 版本?

The IPHONE_OS_VERSION_MIN_REQUIRED is a define - so whilst your deployment target may be low, you may be using some important deprecated functions if your app is to be heavily compatible with a number of iOS versions.

You are - of course - correct in saying that the device's OS is only known at run time. Depending on your project settings, Apple will use that information on the app store to ensure that users with the correct device can access your software. Multiple versions are not created to my knowledge - the code that you submit will appear to be dynamic if you use that define to make the most of working with older iOS versions.

You may also find this useful:

How to target a specific iPhone version?

策马西风 2024-11-23 23:21:00

你是对的, __IPHONE_OS_VERSION_MIN_REQUIRED 在编译时是固定的。如果您为不同的平台和版本编译应用程序,这些内容和宏会变得有用。因此,如果您要为 iOS 3.0 编译一个版本的应用程序,为 iOS 4.0 编译一个版本,您可以使用 __IPHONE_OS_VERSION_MIN_REQUIRED 在编译时从 iOS 3.0 版本中删除所有 iOS 4.0 代码。

由于 AppStore 强制您使用某些最新的 SDK 版本,因此即使您的目标是 3.0 设备,您也被迫使用 4.0 SDK。 __IPHONE_OS_VERSION_MIN_REQUIRED 仅在使用较旧的 SDK 时才有用。由于您只能将部署目标设置为较低版本,因此您必须在运行时检查 iOS 版本。

您可以使用此处描述的方法来检查运行时的 iOS 版本

You're right that __IPHONE_OS_VERSION_MIN_REQUIRED is fixed at compile time. Those contants and macros can become useful if you compile your application for different platforms and versions. So if you would compile one version of your app for iOS 3.0 and one for iOS 4.0 you could use __IPHONE_OS_VERSION_MIN_REQUIRED to remove all iOS 4.0 code from your iOS 3.0 version at compile time.

Since the AppStore forces you to use some recent SDK version, you're forced to use the 4.0 SDK even if you target 3.0 devices. __IPHONE_OS_VERSION_MIN_REQUIRED would only be useful when using and older SDK. Since you just can set the deployment target to a lower version, you'll have to check for the iOS version during runtime.

You can use the method described here to check the iOS version during runtime

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文