MacOS 10.15不再支持32位应用程序。 你能做什么?

图片2

苹果于2019年10月7日发布了Mac操作系统macOS Catalina的新版本。 版本10.15包含许多更改和改进。 重要的功能之一是完全拒绝32位应用程序。 作为此类macOS应用程序的开发人员,您可以做什么? 没错,将应用程序移植到64位平台。 该应用程序能否在第一时间正常运行? 可能吧 取决于代码的复杂性和大小。 但是,最有可能的是,开发人员会遇到许多不明显的错误,可以使用PVS-Studio预先检测到这些错误。

引言


尽管实际上可以在64位环境中启动32位应用程序,但是Apple决定不遵循这条道路,而是完成向十年前开始的向64位平台过渡的过程。 对于用户来说,这意味着如果他们最喜欢的应用程序的开发人员没有费心地按时切换到64位平台,则该应用程序将仅停止在更新的macOS Catalina中工作。

这并不是说苹果的决定出乎意料:在2018年的全球开发者大会上,该公司表示macOS Mojave将是支持32位程序的最新macOS版本。 可能,大多数流行应用程序的开发人员已成功迁移到64位,以发布macOS Catalina或正在完成过渡。

应当指出,在明显的简化下,在64位平台上进行应用程序的转换会带来很多“陷阱”。 而且,如果应用程序的一部分是使用C ++语言编写的,那么开发人员可能需要对使用内存和指针的机制有深刻的理解,并要考虑许多明显的细微差别。 在这种情况下,使用一种工具可以使您准确地验证代码的正确性,同时考虑从32位平台到64位平台的过渡。 例如,PVS-Studio静态代码分析器。

64位诊断


PVS-Studio分析仪包含针对此情况的一特殊诊断 。 通常,PVS-Studio作为工具最初是为了在搜索64位迁移错误时分析C / C ++代码而创建的,后来才发展成为更通用的分析器:添加了C#和Java语言,就可以搜索潜在的漏洞,支持标准安全编码(例如,MISRA)等等。

在过去的时间里,我们在过渡到64位平台方面获得了丰富的经验,并撰写了文章。 关于这个主题的好文章之一:“ 真实程序中64位错误的示例集合 。” 这篇文章已经很老了,但是其中所描述的问题今天并没有失去意义。 我建议您阅读它,特别是如果您正在计划或正在努力将应用程序转换为64位(适用于macOS或任何其他操作系统的C ++应用程序)时,尤其如此。

您可以按如下所示启用64位警告:

Windows / Visual Studio

在警报查看窗口中,有一个按钮可启用整个64位诊断组:

图片3

Linux / macOS

从控制台启动分析器时,必须在分析器和报告生成器中都启用64位诊断:

pvs-studio-analyzer analyze ... -a 5 ... plog-converter ... -a "64:1,2,3" 

结论


好吧,当然,没有什么可以阻止您在代码上下载并尝试使用 PVS-Studio分析仪。 祝您在对抗64位错误和其他错误时好运!



如果您想与说英语的读者分享这篇文章,请使用以下链接:Sergey Khrenov。 MacOS 10.15不再支持32位应用程序。 你能做什么?

Source: https://habr.com/ru/post/zh-CN471596/


All Articles