MacOS 10.15 ne prend plus en charge les applications 32 bits. Que pouvez-vous faire?

Image 2

Le 7 octobre 2019, Apple a publié une nouvelle version de son système d'exploitation Mac, macOS Catalina. La version 10.15 contient de nombreuses modifications et améliorations. L'un des plus importants est la suppression complète des applications 32 bits. En tant que développeur de telles applications macOS, que pouvez-vous faire? C'est vrai, portez l'application sur la plate-forme 64 bits. L'application fonctionnera-t-elle correctement dès la première tentative? Peut-être que c'est possible. Dépend de la complexité et de la quantité du code. Mais le plus probable, les développeurs seront confrontés à de nombreuses erreurs non évidentes, qui peuvent déjà être détectées à l'aide de PVS-Studio.

Présentation


Bien qu'il soit techniquement possible d'exécuter des applications 32 bits dans l'environnement 64 bits, Apple a décidé de ne pas suivre cette voie et de terminer le processus de passage à la plate-forme 64 bits qui a commencé il y a 10 ans. Pour l'utilisateur, cela signifie que si le développeur de l'application préférée de l'utilisateur n'a pas pris soin de la porter à temps sur la plate-forme 64 bits, l'application cessera simplement de fonctionner dans la mise à jour de macOS Catalina.

Ce n'est pas que la décision d'Apple était inattendue: en 2018, lors de la conférence mondiale des développeurs, la société a déclaré que macOS Mojave serait la dernière version de macOS avec un support logiciel 32 bits. La plupart des développeurs d'applications populaires ont probablement déjà réussi la mise à niveau vers 64 bits vers la version macOS Catalina, ou terminent la transition.

Il convient de noter qu'avec toute sa simplicité apparente, le portage de l'application sur une plate-forme 64 bits présente de nombreux pièges. Si une partie d'une application est écrite en utilisant le langage C ++, le développeur peut avoir besoin d'une compréhension approfondie de la gestion de la mémoire et des pointeurs, ainsi que de la prise en compte de nombreuses nuances non évidentes. Dans ce cas, l'utilisation de l'outil, la surveillance de l'exactitude du code lors du portage de 32 vers une plate-forme 64 bits, sera extrêmement utile. PVS-Studio est l'un des exemples de tels outils.

Diagnostics 64 bits


L'analyseur PVS-Studio comprend un groupe spécial de diagnostics pour un tel cas. Au départ, PVS-Studio était censé analyser le code C / C ++ et rechercher les erreurs survenant directement à la suite du portage sur 64 bits. Ce n'est qu'après que PVS-Studio est devenu l'analyseur à usage général: prise en charge des langages C # et Java, recherche de vulnérabilités potentielles, prise en charge des normes de codage sécurisées (par exemple, MISRA) et de nombreuses autres fonctionnalités sont devenues disponibles.

Depuis lors, nous avons accumulé une grande expertise sur le portage vers une plate-forme 64 bits. Notre équipe a écrit de nombreux articles sur ce sujet. Un des articles sur ce sujet: " Une collection d'exemples d'erreurs 64 bits dans les programmes réels ". L'article est assez ancien, mais les problèmes qui y sont décrits sont également pertinents aujourd'hui. Je vous recommande de le lire, surtout si vous prévoyez ou travaillez déjà à la mise à niveau de vos applications vers 64 bits (soit des applications en C ++ pour macOS ou tout autre système d'exploitation).

Vous pouvez activer les avertissements 64 bits de la manière suivante:

Windows / Visual Studio

Dans la fenêtre d'avertissement, un bouton permet d'activer l'ensemble du groupe de diagnostics 64 bits:

Image 3

Linux / macOS

Lorsque vous démarrez l'analyseur à partir de la console, vous devez activer les diagnostics 64 bits à la fois dans l'analyseur et dans le générateur de rapports:

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

Conclusion


Et, bien sûr, rien ne vous empêche de télécharger et d'essayer l'analyseur PVS-Studio sur votre code. Bonne chance dans la lutte contre les erreurs 64 bits et autres!

Source: https://habr.com/ru/post/fr471592/


All Articles