﻿# В macOS 10\.15 более не поддерживаются 32\-битные приложения\. Что вы можете сделать?

7 октября 2019 года Apple выпустила в свет новую версию своей операционной системы для Mac,  macOS Catalina\. Версия 10\.15 содержит множество изменений и улучшений\. Одно из значимых – полный отказ от 32\-битных приложений\. Будучи разработчиком таких приложений для macOS, что вы можете сделать? Правильно, портировать приложение на 64\-битную платформу\. Будет ли приложение работать правильно с первого раза? Возможно\. Зависит от сложности и объёма кода\. Но, скорее всего, разработчики столкнутся с множеством неочевидных ошибок, которые можно заранее выявить с помощью PVS\-Studio\.

![0680_macOS_64bit_ru/image1.png](https://import.viva64.com/docx/blog/0680_macOS_64bit_ru/image1.png)

## Введение

Несмотря на то, что технически запуск 32\-битных приложений в 64\-битной среде возможен, Apple решила более не идти по этому пути и завершить процесс перехода на 64\-битную платформу, начатый ею ещё 10 лет назад\. Для пользователя это означает, что если разработчик их любимого приложения вовремя не озаботился его переводом на 64\-битную платформу, то приложение  просто перестанет работать в обновленной macOS Catalina\.

Нельзя сказать, что решение Apple было неожиданным: уже в 2018 году на конференции Worldwide Developers Conference компания говорила, что macOS Mojave станет последней версией macOS с поддержкой 32\-битных программ\. Вероятно, большинство разработчиков популярных приложений успешно мигрировали на 64\-разряда к выходу macOS Catalina, или завершают переход\.

Нужно отметить, что при кажущейся простоте, перевод приложения на 64\-битную платформу содержит массу "подводных камней"\. А если часть приложения написана с использованием языка С\+\+, то от разработчика может потребоваться глубокое понимание механизмов работы с памятью и указателями, а также учет многих неочевидных нюансов\. В данном случае полезно воспользоваться инструментом, позволяющим проконтролировать корректность кода именно с учетом перехода с 32 на 64\-битную платформу\. Например, статическим анализатором кода PVS\-Studio\.

## 64\-битные диагностики

Анализатор PVS\-Studio содержит в своем составе специальную [группу диагностик](https://pvs-studio.ru/ru/docs/warnings/#64CPP) для этого случая\. Вообще, PVS\-Studio как инструмент изначально создавался для целей анализа С/C\+\+ кода при поиске именно ошибок миграции на 64 бита, и только впоследствии развился в анализатор более общего назначения: были добавлены языки C\# и Java, появилась возможность поиска потенциальных уязвимостей, поддержка стандартов безопасного кодирования \(MISRA, например\) и многое другое\.

За прошедшее время нами накоплен большой опыт по вопросам перехода на 64\-битную платформу, написаны статьи\. Одна из хороших статей на эту тему: "[Коллекция примеров 64\-битных ошибок в реальных программах](https://pvs-studio.ru/ru/blog/posts/cpp/a0065/)"\. Статья довольно старая, но проблемы, описанные в ней, не теряют актуальности и сегодня\. Рекомендую к прочтению, особенно если вы планируете или уже работаете над переводом своих приложений на 64 бита \(будь то приложения на С\+\+ для macOS или любой другой операционной системы\)\.

Включить 64\-битные предупреждения можно следующим образом:

**Windows/Visual Studio**

В окне просмотра предупреждений есть кнопка включения всей группы 64\-битных диагностик:

![0680_macOS_64bit_ru/image2.png](https://import.viva64.com/docx/blog/0680_macOS_64bit_ru/image2.png)

**Linux/macOS**

При запуске анализатора из консоли необходимо включить 64\-битные диагностики как в анализаторе, так и в генераторе отчётов:

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

## Заключение

Ну и, конечно, ничто не мешает вам [скачать и попробовать](https://pvs-studio.ru/ru/pvs-studio/download/) анализатор PVS\-Studio на своем коде\. Удачи в борьбе с 64\-битными и другими ошибками\!