Generalidades

Cómo configurar Kotlin Multiplatform en M1 y obtener los mejores resultados. | Robin | Agosto 2021

Suponga que acaba de comprar una nueva Mac M1 y está feliz de subirse al tren multiplataforma de kotlin, ya usa Android y ha configurado su Mac para ejecutar Brazo 64 Admite JDK, como azul JDK.

Ya tiene un proyecto multiplataforma que desea ver, o acaba de crear un nuevo proyecto usted mismo utilizando el complemento KMM.

Todo está bien, ejecuta la aplicación de Android (en Android Studio), trata el módulo multiplataforma kotlin como una biblioteca y todo funciona bien.

vos tambienustedn Utilice kotlin native para agrupar el módulo como una aplicación iOS (en XCode) … ¿falló? 😲

Buscó en Google como loco una solución, pero rápidamente encontró varias de estas soluciones aquí, esta vieja pregunta de youtrack sugiere que debe usar una Intel x64 jdk.

También puede encontrar este artículo detallado sobre el tema y comprenderá que es posible que deba renunciar a algunas de las ventajas de rendimiento de M1 que disfruta actualmente.

Si te quejas como yo (tengo 😂), hay una manera de obtener los beneficios del nativo mientras haces multiplataforma. En primer lugar, debe comprender que este problema existe porque la versión del compilador nativo konan kotlin no es compatible con arm64 jdk, lo que causa problemas con la máquina virtual de bajo nivel (llvm).

Después de investigar un poco, descubrí que hay una manera de obtener soporte de acceso anticipado para M1 en el blog de jetbrains.

Por lo tanto, cambiar el complemento gradle de koltin multiplataforma para que apunte a la dependencia 1.5.30-M1 debería resolver el problema, ¿verdad?

bien…. no completamente. Si ejecuta la aplicación en un iPhone, la compilación no debería ser un problema, pero si su dispositivo de destino es un emulador, encontrará este problema.

ld: Advertencia: Creado para iOS Simulator-arm64, pero intente vincular archivos creados para iOS Simulator-x86_64

Conmocionado porque el artículo expresa claramente su apoyo iosSimulatorArm64 Buscó frenéticamente otras soluciones, pero rápidamente encontró aquellas que decían que debería ejecutar XCode bajo rosetta para que funcione.

Si vuelve a quejarse, existe una solución para excluir arm64 de la compilación del emulador. Esto debería poner su aplicación en funcionamiento en XCode.

Entonces, en pocas palabras, no necesita cambiar su jdk, solo necesita cambiar la versión del complemento. Además, si desea ejecutar el simulador mientras conserva el rendimiento nativo de M1, solo necesita hacer un pequeño ajuste en XCode.

¡Gracias por leer y quédate con la cafeína!

LEER  ¿Qué es Appium Studio? Appium Studio es una versión mejorada

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba