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

图片2

2019年10月7日,苹果发布了Mac操作系统macOS Catalina的新版本。 版本10.15包含许多更改和改进。 其中一项重要功能是完全淘汰了32位应用程序。 作为此类macOS应用程序的开发人员,您可以做什么? 没错,将应用程序移植到64位平台。 从第一次尝试开始,该应用程序就能正常运行吗? 也许有可能。 取决于代码的复杂性和数量。 但是最有可能的是,开发人员将面临很多非显而易见的错误,以前使用PVS-Studio可以检测到这些错误。

引言


尽管从技术上讲,可以在64位环境中运行32位应用程序,但是Apple决定不走这条路,并完成切换到10年前开始的64位平台的过程。 对于用户来说,这意味着如果用户最喜欢的应用程序的开发人员没有及时将其移植到64位平台上,则该应用程序将仅停止在更新的macOS Catalina中工作。

并非苹果的决定出乎意料:2018年,在全球开发者大会上,该公司表示macOS Mojave将成为具有32位软件支持的macOS的最新版本。 可能大多数流行应用程序的开发人员已经成功升级到macOS Catalina版本的64位,或者正在完成过渡。

应该注意的是,尽管应用程序看起来很简单,但将其移植到64位平台上却有很多陷阱。 如果应用程序的某些部分是使用C ++语言编写的,则开发人员可能需要对内存和指针的处理有深刻的理解,并要考虑许多不明显的细微差别。 在这种情况下,使用该工具监视从32移植到64位平台时的代码正确性将非常有帮助。 PVS-Studio是此类工具的示例之一。

64位诊断


PVS-Studio分析仪包括针对此类情况的一特殊诊断 。 最初,PVS-Studio旨在分析C / C ++代码,并搜索移植到64位的结果中出现的错误。 只有在PVS-Studio演变为通用分析器之后,才能提供支持: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位错误和其他错误,祝您好运!

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


All Articles