Перевірка універсального бінарного файлу
Вставте те, що lipo або file друкує для вашого застосунку. Текст читається прямо на цій сторінці, і нічого нікуди не надсилається.
Спробуйте приклад:
Що робить
Код застосунку для Mac може містити одну або кілька архітектур: arm64 для Apple silicon і x86_64 для Intel. Файл з обома це універсальний бінарний файл. Цей інструмент читає текст, який друкують lipo або file, знаходить у ньому назви архітектур і каже, на яких Mac працює кожна частина. Якщо вставити кілька частин одного застосунку, він також скаже, чи універсальний застосунок загалом, бо одного допоміжного модуля або фреймворку, зібраного під одну архітектуру, досить, щоб це порушити.
Команди для запуску
lipo -archs YourApp.app/Contents/MacOS/YourApp file YourApp.app/Contents/MacOS/YourApp
Щоб перевірити одразу всі виконувані частини пакета, включно з фреймворками й допоміжними модулями:
find YourApp.app/Contents -type f -perm +111 -exec file {} +Запускайте це на тій самій збірці, яку випускаєте, а не на налагоджувальній: у ній може бути лише архітектура Mac, на якому її зібрали.
Що означає кожен результат
| Результат | Що це означає |
|---|---|
| Універсальний | Є arm64 і x86_64. Працює нативно на Mac з Apple silicon та Intel. |
| Лише Apple silicon | Лише arm64. Не відкриється на Mac з Intel, тож скажіть про це на своєму сайті. |
| Лише Intel | Лише x86_64. На Apple silicon потрібен Rosetta 2, а Apple повідомила, що загальна підтримка Rosetta 2 для застосунків закінчиться після macOS 27. |
| Не запуститься | Лише код i386 або PowerPC. macOS не запускає 32-бітні застосунки з версії Catalina. |
Джерела: Apple Developer, Building a universal macOS binary та MacRumors про кінець підтримки Rosetta 2, обидва прочитані 3 листопада 2026 р..
Як це працює
Це кілька простих текстових правил, що працюють на цій сторінці. Він знає вивід lipo -archs, lipo -info, lipo -detailed_info і file, а також назви arm64, arm64e, x86_64, x86_64h, i386 і PowerPC. Якщо він не знаходить нічого з цього, він каже, що не розпізнає текст, а не вгадує. Він читає лише текст, тож не може знати, чи справді код усередині працює.
Запитання
Як дізнатися, чи універсальний застосунок для Mac?
Запустіть lipo -archs для бінарного файлу всередині застосунку, у Contents/MacOS. Якщо в списку є і arm64, і x86_64, застосунок універсальний. Також можна вибрати застосунок у Finder, натиснути Get Info і подивитися рядок «Вид».
Мій основний бінарний файл універсальний. А застосунок?
Не завжди. Кожному фреймворку, допоміжному модулю та плагіну всередині пакета потрібні ті самі архітектури. Вставте вивід file для всіх них, щоб перевірити.
Чи працюватимуть застосунки лише для Intel на Apple silicon?
Наразі через Rosetta 2. Apple повідомила, що загальна підтримка Rosetta 2 для застосунків закінчиться після macOS 27, з вузьким винятком для деяких старих ігор.
Чи надсилається кудись те, що я вставляю?
Ні. Текст читається на цій сторінці, і нічого не надсилається.