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

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

概述苹果更新OS X时,最新的XCode 4.4会转储旧版本(10.6)SDK,我发现自己需要使用10.7 SDK(或10.8我想),并将我的部署目标设置为10.6以保持兼容性. 我更喜欢链接到旧的SDK,因为我知道我不能错误地介绍对尚不存在的API的调用.当我上次尝试逆向的方法时,我发现自己在做定期的事情. 我发现自己在做的是,我使用XCode中的代码完成功能为NSWorkspace这样的简单类选择 苹果更新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团队谈论这个问题.他们认为这是坏的.目前还没有解决这个问题的计划.升级雷达是我们如何影响苹果对这些事情.

总结

以上是内存溢出为你收集整理的xcode – Mac SDK:使用最新的SDK,但确保与早期部署目标的向后兼容性全部内容,希望文章能够帮你解决xcode – Mac SDK:使用最新的SDK,但确保与早期部署目标的向后兼容性所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1110491.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存