Forcer à ouvrir une app Universelle avec Rosetta… en ligne de commande

J’ai quelques applications chez certains de mes clients qui nécessitent d’être encore ouvertes avec Rosetta 2, souvent parce qu’elles utilisent un plug-in spécifique qui n’est pas encore compatible Apple Silicon. Pour cela, il faut cocher cette foutue case.

Comment cocher cette foutue case ?

J’avais trouvé une parade en affichant un message invitant l’utilisateur à cocher la case Ouvrir avec Rosetta de la fenêtre d’information, en m’appuyant sur IBM Notifier et un peu d’AppleScript pour ouvrir les fenêtres d’informations des apps concernées.

Pas mal, mais ça nécessitait une manipulation de l’utilisateur, qui peut toujours se tromper. En cherchant un peu plus, je suis tombé sur le binaire SetArchPrefForURL, qui permet de faire exactement cela. Une fois installé (par exemple dans /usr/local/bin), il suffit d’appeler le binaire de la façon suivante :

SetArchPrefForURL /chemin/de/application.app x86_64

Et hop, la case est cochée.

Pour la faire revenir en version Apple Silicon :

SetArchPrefForURL /chemin/de/application.app arm64

Et comme il n’y a pas de package fourni pour installer le binaire ci-dessus, je vous le fournis, signé et notarié, c’est cadeau, vous pouvez le télécharger en cliquant ici.