Skip to main content

Возможно, вы знаете некоторые неофициальные приложения для iOS, которые предлагают какую-то эмуляцию. Эти приложения работают на основе взломов и эксплойтов, что значительно снижает производительность, но это скоро изменится. Apple незаметно представила поддержку компиляции Just-In-Time (JIT) в iOS 14.2, которая позволит приложениям эмуляции работать на полной скорости на iPhone и iPad.

Райли Тестут, разработчик AltStore, поделился с более подробной информацией о том, как это изменение повлияет на эти неофициальные приложения, которые предлагают эмуляцию консоли и виртуальных машин. Но сначала позвольте мне кратко объяснить, что такое JIT и как он работает на iOS.

JIT или компиляция Just-In-Time — это способ запуска программного обеспечения, которое будет скомпилировано во время его выполнения, в то время как традиционное программное обеспечение полностью компилируется перед выполнением. С помощью JIT исходный код транслируется в машинный код в реальном времени.

Apple никогда не предлагала официальную поддержку JIT-компиляции на iOS, но некоторые разработчики нашли способы запускать ее с помощью хаков, за что пришлось заплатить несколько ошибок и низкую производительность. Однако эти эксплойты полностью удалены в iOS 14. По крайней мере, до сих пор.

Как описано Testut, Apple добавила поддержку JIT-компиляции в iOS 14.2 beta 2, но компания никогда публично не упоминала об этом. Поддержка была сохранена на протяжении всех бета-версий и сохранена в финальной версии. Разработчик считает, что это официальная реализация, а не ошибка Apple, но пока нет возможности подтвердить это.

Благодаря поддержке JIT-компиляции в iOS 14.2 приложения эмуляции теперь могут работать на полной скорости без взломов, взлома и других компромиссов.

Например, с помощью JIT Delta теоретически может эмулировать более мощные системы, такие как PS2, GameCube и Wii; без JIT нам пришлось бы подождать еще несколько лет, прежде чем оборудование будет на это способно. Сначала я был настроен скептически, но теперь склоняюсь к мысли, что это намеренное изменение.

Однако это не означает, что вы увидите приложения для эмуляции в App Store или даже любое другое приложение, использующее JIT. Testut сообщил нам, что текущая реализация работает только для загруженных неопубликованных приложений, которые обычно устанавливаются через Xcode и другие инструменты разработчика вместо App Store. Другими словами, это функция, предназначенная для разработчиков, занимающихся отладкой.

Я сомневаюсь, что ограничение JIT только загруженными неопубликованными приложениями было намерением за этим (и, скорее всего, связано с необходимостью для приложений запускать неподписанный код при отладке с помощью Xcode), но мне было бы любопытно узнать, останется ли это ограничение долгосрочным.

Но если у вас есть AltStore, вы скоро сможете пользоваться такими приложениями, как UTM, который предлагает виртуальные машины на iOS, и DolphiniOS, который по сути представляет собой эмулятор GameCube и Wii для iPhone и iPad, работающий с максимальной производительностью.

На видео ниже вы можете увидеть, насколько плавно DolphiniOS работает на iOS 14.2 без джейлбрейка с использованием собственной реализации JIT:

Есть новая версия AltStore, совместимая с приложениями JIT, которая в настоящее время находится в стадии бета-тестирования, но скоро она будет доступна всем пользователям AltStore. Если вы хотите узнать больше о том, как установить и использовать AltStore, ознакомьтесь с нашей специальной статьей об этом.