Когда нужно скомпилировать для i386 на iOS

Недавно я перешел в новую компанию и пытаюсь разобраться с настройками Xcode в проекте. В настоящее время проект компилируется для «armv7 armv7s arm64 armv8 i386». Может кто-нибудь объяснить, если необходимо для компиляции для i386 и почему?

Мой проект компилируется нормально, если я удалю его. Стоит отметить, что я ссылаюсь на библиотеку C ++, которая скомпилирована с той же архитектурой. I386 используется для симулятора или каких-либо конкретных устройств iOS?

Спасибо

6

Решение

Версия i386 необходима для запуска вашего приложения в симуляторе iOS, который изначально работает на OS X и использует базовое оборудование x86 / x64. Это намного быстрее, чем эмуляция ARM.

8

Другие решения

Вам не нужно специально указывать i386 в настройках сборки вашей архитектуры. В идеале, вы должны просто оставить ARCHS и VALID_ARCHS в качестве значений по умолчанию, и все должно «просто работать». Вы увидите только перечисленные архитектуры рук, но правильная вещь происходит за кулисами при сборке сима.

При сборке для симулятора ваш проект будет построен для i386, x86_64 или обоих (в зависимости от цели развертывания и настроек сборки ARCHS и ONLY_ACTIVE_ARCH). В симуляторе 32-разрядным устройствам разрешено выполнять только код i386, а 64-разрядным устройствам разрешается запускать как код i386, так и код x86_64b (так же, как на реальных устройствах, но с использованием Intel вместо arm).

0