Есть ли какой-либо способ скомпилировать универсальные двоичные файлы x86-64 arm64 в macOS 10.14?

#macos #universal-binary #apple-silicon

#macos #универсальный-двоичный #apple-silicon

Вопрос:

Официальный способ компиляции универсальных двоичных файлов, предназначенных для нового процессора Apple M1, — использовать Xcode 12, для которого требуется как минимум macOS 10.15.4. В настоящее время я использую macOS 10.14.6 и не хочу обновляться, если смогу этого избежать. Есть ли неофициальный способ скомпилировать такой универсальный двоичный файл при запуске macOS 10.14?

Комментарии:

1. Вы можете попробовать загрузить Xcode с веб-сайта разработчика Apple и вызвать утилиты командной строки, поставляемые с ним… но вам, вероятно, придется создавать много сценариев вокруг них.

Ответ №1:

Короткий ответ: Нет

Почему? Apple сделала это. Здесь есть документ от Apple

Вам придется использовать Xcode 12.2 и выше. Вы должны обновиться до macOS 10.15.4 или 11, чтобы воспользоваться последней функцией. Apple предлагает инструмент lipo для преобразования двоичных файлов для архитектур ARM64 и AMD64.

С помощью Apple silicon вы можете скомпилировать двоичные файлы для ARM64 и AMD64. Вы можете отлаживать двоичные файлы ARM64 естественным образом. Вы можете отлаживать двоичные файлы AMD64 с помощью перевода Rosetta.

С чипами Intel x86 вы можете скомпилировать двоичные файлы для ARM64 и AMD64. Вы можете отлаживать двоичные файлы AMD64 естественным образом. Но вы не можете отлаживать двоичные файлы ARM64 при переводе Rosetta.

Это означает, что архитектура Apple Silicon ARM64 может сделать больше в macOS. Это несправедливо для чипов AMD64. Типичный Apple. Надеюсь, кто-нибудь сможет выйти и распечатать секретный Apple silicon. Но я не думаю, что Apple хотела бы поделиться. Если Intel / AMD проснутся и принесут нам более мощные чипы, которые могут компилировать / отлаживать двоичные файлы ARM64 для macOS, apple не будет довольна их продажами. В долгосрочной перспективе мы не сможем этого сделать (по-видимому). Apple выгнала Nvidia несколько лет назад, теперь Intel, скоро AMD. Отметьте это здесь. 10 лет спустя, давайте посмотрим.