Почему для iOS-симулятора требуются символы i386 и x86_64, хотя я только в системе x86_64?

Я пытаюсь получить приложение, работающее на симуляторе, у которого были некоторые проблемы, связанные с этим раньше. У нас нет libjpeg.a, построенного для i386, но у него есть x86_64. Это единственная зависимость, но мне интересно, зачем мне на самом деле нужны символы i386, если я запускаю макрос x86_64.

Ответы

Ответ 1

iOS-симулятор может запускать ваше приложение в 32-х и 64-битных режимах. Это позволяет вам выработать много 64-битных проблем и убедиться, что он готов как для armv7, так и для arm64. Для этого он компилирует ваше приложение для i386 и x86_64 и требует библиотеки для обеих архитектур.

Ответ 2

На самом деле архитектура i386 для симулятора iPhone, где архитектура x86_64 предназначена для симуляторов iPad, совместима с 32 и 64 бит.

Ответ 3

Приложения iOS должны работать на разных архитектурах:

arm7: Used in the oldest iOS 7-supporting devices
arm7s: As used in iPhone 5 and 5C
arm64: For the 64-bit ARM processor in iPhone 5S
i386: For the 32-bit simulator
x86_64: Used in 64-bit simulator