Pourquoi le simulateur iOS nécessite-t-il les symboles i386 et x86 64 alors que je suis sur un système x86 64 seulement?

j'essaie de faire fonctionner une application sur le simulateur qui a eu quelques problèmes auparavant. Nous n'avons pas libjpeg.construit pour i386, mais il a x86_64. C'est la seule dépendance qui reste, mais je me demande pourquoi j'ai besoin de i386 Symboles, si je cours sur un x86_64 mac.

18
demandé sur Syed Ali Salman 2015-01-20 00:18:56

4 réponses

le simulateur iOS peut faire fonctionner votre application en mode 32 et 64 bits. Cela vous permet de travailler sur un grand nombre de problèmes 64 bits et assurez-vous qu'il est prêt pour armv7 et arm64. Pour ce faire, il compile votre application pour i386 et x86_64 et nécessite les bibliothèques pour les deux architectures.

19
répondu Variable Length Coder 2015-01-19 21:52:40

en fait, i386 l'architecture est pour le simulateur d'iPhone, où que x86_64 l'architecture est pour les simulateurs iPad, les deux sont compatibles 32 et 64bit.

12
répondu Syed Ali Salman 2015-01-21 12:01:35

Les Applications iOS doivent fonctionner sur de nombreuses architectures différentes:

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
9
répondu Naishta 2017-04-20 16:37:44

alors que ces jours-ci j'ai essayé de lancer Fastlane pour obtenir la capture d'écran iOS, j'ai trouvé la même situation:parce qu'il y a .a bibliothèque contient seulement x86_64 l'architecture,mais sans i386 l'architecture,et puis j'ai eu cette erreur:

Undefined symbol(s) for architecture i386

C'est en cours d'exécution sur iPhone 8 simulateur avec iOS 11.4.

mais vous pouvez forcer le simulateur à fonctionner sur 64-bit ou seulement 32-bit comme suit:

Project -> Architectures -> set the value as:$(ARCHS_STANDARD_32_BIT) or $(ARCHS_STANDARD_64_BIT)
0
répondu ifeegoo 2018-08-09 09:11:43