ios-simulator x86-64 i386

ios simulator - ¿Por qué el simulador de iOS requiere los símbolos i386 y x86_64 aunque solo estoy en un sistema x86_64?



ios-simulator x86-64 (4)

El simulador de iOS puede ejecutar su aplicación en modos de 32 y 64 bits. Esto le permite resolver muchos problemas de 64 bits y asegurarse de que esté listo para armv7 y arm64. Para hacer esto, compila tu aplicación para i386 y x86_64 y requiere las bibliotecas para ambas arquitecturas.

Estoy intentando que una aplicación se ejecute en el simulador que ha tenido algunos problemas para hacerlo antes. No tenemos libjpeg.a construido para i386 , pero sí tiene x86_64 . Esta es la única dependencia que queda, pero me pregunto por qué necesito realmente los símbolos i386 , si estoy ejecutando en un mac x86_64 .


Las aplicaciones de iOS deben ejecutarse en muchas arquitecturas diferentes:

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


Mientras estos días he intentado ejecutar Fastlane para obtener la captura de pantalla de iOS, encontré la misma situación: porque hay una biblioteca .a que contiene solo la arquitectura x86_64 , pero sin la arquitectura i386 , y luego recibí este error:

Undefined symbol(s) for architecture i386

Esto se está ejecutando en el simulador iPhone 8 con iOS 11.4 .

Pero puede forzar que el simulador se ejecute en solo 64-bit o solo 32-bit siguiente manera:

Project -> Architectures -> set the value as:$(ARCHS_STANDARD_32_BIT) or $(ARCHS_STANDARD_64_BIT)


en realidad, la arquitectura i386 es para el simulador de iPhone, mientras que la arquitectura x86_64 es para los simuladores de iPad, ambos son compatibles con 32 y 64 bits.