Je viens de construire une bibliothèque statique pour iOS avec le paramètre de construction pour Architectures défini sur $(ARCHS_STANDARD_INCLUDING_64_BIT)
.
Je veux m'assurer que la bibliothèque .a inclut correctement cette architecture, mais quand j'exécute lipo -info
Dessus, je vois:
Les architectures du fichier fat: library.a sont les suivantes: armv7 armv7s (cputype (16777228) cpusubtype (0))
Est-ce que cela signifie qu'arm64 n'est pas inclus? Si la commande lipo ne peut pas me le dire, y a-t-il une autre façon de le dire?
J'utilise Xcode 5 avec les derniers outils de ligne de commande installés.
Oui, une tranche arm64 est là. Pour le voir, vous devez utiliser lipo
depuis la chaîne d’outils iOS, et non depuis le système hôte (qui ne connaît pas arm64):
xcrun -sdk iphoneos lipo -info $(FILENAME)
le bon vieux file
peut aussi faire l'affaire:
$ file libTestFlight.a
libTestFlight.a: Mach-O universal binary with 5 architectures
libTestFlight.a (for architecture armv7): current ar archive random library
libTestFlight.a (for architecture armv7s): current ar archive random library
libTestFlight.a (for architecture i386): current ar archive random library
libTestFlight.a (for architecture x86_64): current ar archive random library
libTestFlight.a (for architecture cputype (16777228) cpusubtype (0)): current ar archive random library
Il semble que personne à Apple ne se soit soucié d'ajouter le cputype arm64 à file
, pour le moment.
Fait intéressant, dans les vidéos techniques iOS 7 Talk Talk ("Architecture des applications modernes, 2ème partie", PDF page 35), elles affichent la sortie d'un outil de travail en cours:
Pour un .framework
lipo -info myFramework.framework/MyFramework