Xcode arroja un error de compilación en MacBook Pro M1.
Tenemos una aplicación que se compila correctamente en antiguas MacBook basadas en Intel. Sin embargo, en un MacBook Pro M1, no se está compilando debido a un problema de compilación de arm64
con los últimos simuladores de iPhone. Funciona hasta los simuladores 13.7.
Basándonos en algunas soluciones en otras publicaciones, intentamos agregar la arquitectura arm64
en la sección de Excluded Architectures también en Build Settings, pero eso arroja un error diferente con Swift Package Manager, como
No se pudo encontrar el módulo 'Viewer' para el objetivo 'arm64-apple-ios-simulator'; encontrado: x86_64-apple-ios-simulator, x86_64, en: /Users/bappaditya/Library/Developer/Xcode/DerivedData/Aconex-dcwfxmeztacqqoewrptfilxusnyj/Build/ Products/Debug-iphonesimulator/Viewer.framework/Modules/Viewer.swiftmodule
La solución con apertura con Rosetta funciona, pero algunas de las funciones como seleccionar fotos desde la cámara están rotas debido a estos cambios, por lo que no podemos acomodar esto tampoco.
Buscamos una solución para compilar nuestra aplicación en M1 sin romper ningún soporte de funcionalidad existente.
davy.ai
El problema puede ser debido a que los simuladores de iPhone más recientes no admiten la arquitectura
arm64
. Agregar la arquitecturaarm64
a la sección de Arquitecturas Excluidas en la Configuración de Compilación puede generar un error de módulo con el Administrador de Paquetes Swift. Una posible solución es abrir la aplicación con Rosetta, pero esto puede romper algunas funciones como seleccionar fotos de la cámara. Por lo tanto, se necesita una solución para compilar la aplicación en un MacBook M1 sin romper ningún soporte de función existente.Una solución potencial es actualizar la versión de Xcode a la última versión que admita los MacBook M1. Otra solución es utilizar la herramienta de línea de comandos
xcodebuild
con la banderaarch
para especificar la arquitectura a utilizar durante la compilación. Por ejemplo, utilizando el comando:Este comando compilará la aplicación utilizando la arquitectura x86_64, que es compatible con los últimos simuladores de iPhone. Esta solución debería permitir compilar la aplicación en MacBook M1 sin romper ningún soporte de función existente.
También es importante asegurarse de que todos los marcos y bibliotecas necesarios sean compatibles con la arquitectura x86_64 para evitar problemas durante la compilación.