Ce que vous devez faire est de simplement définir l' ONLY_ACTIVE_ARCH
de NO
(au moins fonctionne pour moi). Ci-dessous est une capture d'écran:
![]()
EDIT:
Autant que je sache (veuillez indiquer si il ya quelque chose de mal, merci), si vous définissez ONLY_ACTIVE_ARCH
de YES
, cela signifie que le Xcode ne fera que renforcer l'architecture (qui fait référence à l'appareil qui est actif dans Xcode actuellement). Semble Xcode par défaut du paramètre est défini Debug YES
, afin de ne pas créer des binaires pour les autres architectures quand vous voulez le construire pour un appareil spécial qui est connecté à votre Mac.
La raison n'a pas de construire peut-être que, le projet ne prend pas en charge l'architecture de l'appareil connecté. Donc, la meilleure solution est d'ajouter le droit d'architecture pour votre appareil. Ci-dessous est une liste pour les architectures et les périphériques qui prennent en charge:
- ARMv8/ARM64:
iPhone 5s
, iPad Air
, Retina iPad Mini
- ARMv7s:
iPhone 5
, iPhone 5c
, iPad 4
- ARMv7:
iPhone 3GS
, iPhone 4
, iPhone 4S
, iPod 3G/4G/5G
, iPad
, iPad 2
, iPad 3
, iPad Mini
- ARMv6:
iPhone
, iPhone 3G
, iPod 1G/2G
Alors pourquoi "jeu de l' ONLY_ACTIVE_ARCH
de NO
" fonctionne? Parce que l'appareil peut toujours exécuter le binaire construit pour toutes les architectures que vous avez ajouté (pass), mais perd un peu de performance. C'est juste une solution rapide, mais pas mieux.
Remarque: Le plus d'architectures que vous avez ajouté, le plus grand que le binaire est généré. Il est donc bon de choisir le droit d'architectures pour votre projet. ;)