xcode – Mac SDK:使用最新的SDK,但确保与早期部署目标的向后兼容性

前端之家收集整理的这篇文章主要介绍了xcode – Mac SDK:使用最新的SDK,但确保与早期部署目标的向后兼容性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
苹果更新OS X时,最新的XCode 4.4会转储旧版本(10.6)SDK,我发现自己需要使用10.7 SDK(或10.8我想),并将我的部署目标设置为10.6以保持兼容性.

我更喜欢链接到旧的SDK,因为我知道我不能错误地介绍对尚不存在的API的调用.当我上次尝试逆向的方法时,我发现自己在做定期的事情.

我发现自己在做的是,我使用XCode中的代码完成功能为NSWorkspace这样的简单类选择“正确”调用,那么在开发过程中,一切都可以正常运行,我忘了它,当我发布一个新版本时:Kaboum!整个应用程序在早期的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

是的,唯一可行的解​​决方案,尽管苹果的建议,是复制旧的SDK和链接.

在WWDC 2012上,我花了很多时间与Xcode团队谈论这个问题.他们认为这是坏的.目前还没有解决这个问题的计划.升级雷达是我们如何影响苹果对这些事情.

猜你在找的iOS相关文章