Uso de mtouch para agrupar aplicaciones Xamarin.iOS
Las aplicaciones de iPhone se incluyen como conjuntos de aplicaciones. Son directorios con la extensión .app
que contienen código, datos, archivos de configuración y un manifiesto que iPhone usa para obtener información sobre la aplicación.
El proceso de convertir un ejecutable de .NET en una aplicación suele controlarse con el comando mtouch
, una herramienta que integra muchos de los pasos necesarios para convertir la aplicación en un grupo. Esta herramienta también se utiliza para iniciar la aplicación en el simulador e implementar el software en un dispositivo iPhone o iPod Touch real.
Instrucciones detalladas
Consulte la página del manual mtouch(1) para saber todos los posibles usos de la herramienta mtouch.
Instalación
En un equipo Mac, mtouch
se integra con Xamarin.iOS. Se puede encontrar en el siguiente directorio:
/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin
Para que mtouch
resulte más cómodo de utilizar, agregue su directorio principal a la variable de entorno PATH
.
Por ejemplo, para hacer esto en Bash, agregue la siguiente línea al final del archivo ~/.bash_profile:
export PATH=$PATH:/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin
Advertencia
Para usar mtouch
, no se base en la existencia de /Developer/MonoTouch/usr/bin, un vínculo simbólico que apunta a /Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin. Dicho vínculo simbólico existe solo para mantener la compatibilidad con versiones de MonoTouch anteriores que no se instalaron en /Library/Frameworks/... y pueden desaparecer en una versión futura.
Creación
El comando mtouch
puede compilar el código de tres formas diferentes:
- Compilación para pruebas del simulador
- Compilación para la implementación de dispositivos
- Implementación del ejecutable en el dispositivo
Compilación para el simulador
Para empezar, el escenario más habitual es probar la aplicación en el simulador, por lo que usará mtouch -sim
para compilar el código en un paquete del simulador. Esto se hace como sigue:
$ mtouch -sim Hello.app hello.exe
Compilación para dispositivos
Para compilar software para el dispositivo, compile la aplicación con la opción mtouch -dev
; además, necesita proporcionar el nombre del certificado usado para firmar la aplicación. A continuación se muestra cómo se compila la aplicación para el dispositivo:
$ mtouch -dev -c "iPhone Developer: Miguel de Icaza" foo.exe
En este caso concreto, se usa el certificado "iPhone Developer: Miguel de Icaza" para firmar la aplicación. Este paso es muy importante, ya que, sin él, el dispositivo físico se negará a cargar la aplicación.
Ejecución de la aplicación
Inicio en el simulador
El inicio en el simulador es muy sencillo una vez que disponga de un conjunto de aplicaciones:
$ mtouch --sdkroot /Applications/Xcode.app -launchsim Hello.app
Si la marca --sdkroot
no se define, el resultado predeterminado será la ruta de acceso xcode-select, con la siguiente advertencia:
Por ejemplo: advertencia MT0061: Ningún Xcode.app especificado (uso de --sdkroot); uso de Xcode del sistema según se indica en "xcode-select --print-path": /Applications/Xcode.app/Contents/Developer
La línea de comandos anterior generará un resultado como este:
Launching application
Application launched
PID: 98460
Press enter to terminate the application
Se recomienda encarecidamente que también mantenga un registro de la salida estándar y de los archivos de errores estándar para facilitar la depuración. La salida de Console.WriteLine
es stdout
, y la salida de Console.Error.WriteLine
y cualquier otro mensaje de error en tiempo de ejecución es stderr
.
Para ello, use las marcas --stdout
y --stderr
:
../../tools/mtouch/mtouch --launchsim=Hello.app --stdout=output --stderr=error
Si se produce un error en la aplicación, puede ver la salida y el error para diagnosticar el problema.
Implementar en un dispositivo
Para implementar en el dispositivo, necesita aprovisionar el dispositivo según se describe en el documento sobre administración de dispositivos de Apple. Una vez aprovisionado correctamente el dispositivo, puede usar el comando mtouch para implementar una ".app" compilada en el dispositivo. Para ello, use este comando:
$ mtouch —sdkroot /Applications/Xcode.app -installdev=MyApp.app
Si la marca --sdkroot
no se define, el resultado predeterminado será la ruta de acceso xcode-select, con la siguiente advertencia:
Por ejemplo: advertencia MT0061: Ningún Xcode.app especificado (uso de --sdkroot); uso de Xcode del sistema según se indica en "xcode-select --print-path": /Applications/Xcode.app/Contents/Developer
Estos pasos se realizan normalmente en Visual Studio para Mac.
Referencia
Consulte la página del manual mtouch(1) para obtener información detallada sobre las otras opciones de la línea de comandos.