gpt4 book ai didi

xcode - Mac SDK : using latest SDK but ensuring backwards compatibility with earlier deployment target

转载 作者:行者123 更新时间:2023-12-03 16:03:03 25 4
gpt4 key购买 nike

一如既往,当 Apple 更新 OS X 时,最新的 XCode 4.4 会转储旧版 (10.6) SDK,我发现自己需要使用 10.7 SDK(或者我想是 10.8)并将部署目标设置为 10.6 以保持兼容性。

我更喜欢链接到旧版 SDK,因为我知道我不会错误地引入对尚不存在的 API 的调用。当我上次尝试逆向方法时,我发现自己经常做的事情。

我发现自己在做的是,我使用 XCode 中的代码完成功能为 NSWorkspace 这样的简单类选择“正确”的调用,然后在开发过程中一切正常,我忘记了它,当我发布新版本时: 卡布姆!整个应用程序在早期的 OS X 版本上运行时会爆炸;通常在那些难以到达的地方:-)

或者至少这是我几年前的情况。

当然,现在有一种方法可以:

  • 确保您不会引入部署目标中尚不可用的 API 调用,即使它们已在 SDK 中定义

  • 在构建或静态分析期间检测此类调用

我确信我在沿线的某个地方错过了一些东西..请启发我!

最诚挚的问候,

弗兰克

最佳答案

Surely, by now there's a way to either:

  • making sure you don't introduce API calls that are not yet available in your deployment target even if though they are defined in the SDK

  • detecting such calls during build or static analysis time

不,没有。是的,您应该针对它打开雷达(bugreport.apple.com)。如果你愿意,你可以欺骗我的:rdar://11985733

是的,尽管 Apple 有建议,唯一可行的解​​决方案是复制旧的 SDK 并链接到它们。

我在 WWDC 2012 上花了相当多的时间与 Xcode 团队讨论这个问题。他们一致认为它已经被破坏了。目前尚无修复此问题的计划。升级雷达是我们在这些事情上影响苹果的方式。

关于xcode - Mac SDK : using latest SDK but ensuring backwards compatibility with earlier deployment target,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11684302/

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