es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No se puede compilar archivos .a de arm64 de dispositivos iOS en el simulador de iOS en Apple Silicon.

Comandos de Shell como se muestra a continuación:

$ lipo -info libyuv-device.a
Las arquitecturas en el archivo universal: device/libyuv.a son: armv7 arm64
$ lipo -info libyuv-simulator.a
Las arquitecturas en el archivo universal: simulator/libyuv.a son: arm64 x86_64
$ lipo -create libyuv-device.a libyuv-simulator.a -output libyuv.a
Error fatal: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo: libyuv-device.a y libyuv-simulator.a tienen las mismas arquitecturas (arm64) y no pueden estar en el mismo archivo universal de salida

¿Cómo fusionar múltiples archivos .a de arm64 de iOS device y iOS simulator (en Apple Silicon, por ejemplo, M1) en un solo archivo .a?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Desafortunadamente, no es posible utilizar el comando lipo para crear un único archivo .a a partir de múltiples archivos .a arm64 que ya han sido creados para el dispositivo iOS y el simulador iOS en Apple Silicon (por ejemplo, M1). Esto se debe a que la arquitectura arm64 es la misma tanto para las versiones del dispositivo como para las del simulador, y por lo tanto no se pueden combinar en un único archivo de salida.

    Si aún necesitas combinar ambas versiones, es posible que debas volver al código fuente y generar una nueva versión que esté explícitamente construida tanto para el dispositivo como para el simulador. Alternativamente, podrías crear dos archivos .a separados, uno para el dispositivo y otro para el simulador, y utilizarlos según corresponda en tus proyectos.

Comments are closed.