11 votos

Ejecutar condicionalmente un programa utilizando Rosetta 2 en un Mac M1

¿Es posible iniciar un programa usando la línea de comandos de manera que se ejecute mediante Rosetta 2, sin tener la configuración de la aplicación que obliga al programa a ejecutarse siempre bajo Rosetta 2?

por ejemplo

  • hacer clic en el ícono del dock para Xcode lanza Xcode NO a través de Rosetta 2
  • ejecutar open -a xcode --rosetta2 lanza Xcode a través de Rosetta 2

19voto

rybosome Puntos 1829

Puedes usar el comando arch para forzar un orden de carga de slices preferido para binarios universales. En tu caso particular, primero asegúrate de obtener información sobre Xcode y desmarcar la casilla "Abrir con Rosetta" en Finder. Luego, a través de la línea de comandos, puedes forzar la carga de la slice x86_64:

arch -x86_64 /Applications/Xcode.app/Contents/MacOS/Xcode

Consulta man arch para más detalles.

Ejemplo:

echo "arch" > build.sh
arch -arm64 /bin/bash ./build.sh 
arch -x86_64 /bin/bash ./build.sh

Salidas:

arm64
i386

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X