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.

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.

Configuración de compilación de Xcode

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El problema puede ser debido a que los simuladores de iPhone más recientes no admiten la arquitectura arm64. Agregar la arquitectura arm64 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 bandera arch para especificar la arquitectura a utilizar durante la compilación. Por ejemplo, utilizando el comando:

    xcodebuild -arch x86_64 -sdk iphonesimulator
    

    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.

Comments are closed.