Usando mtouch para o agrupar aplicativos Xamarin.iOS

Aplicativos do iPhone são enviados como pacotes de aplicativo. Estes são os diretórios com a extensão .app que contêm seu código, dados, arquivos de configuração e um manifesto que usa o iPhone para saber mais sobre o seu aplicativo.

O processo de transformar um executável .NET em um aplicativo geralmente é controlado pelo comando mtouch, uma ferramenta que se integra a muitas das etapas necessárias para transformar o aplicativo em um pacote. Essa ferramenta também é usada para iniciar o aplicativo no simulador e implantar o software em um dispositivo iPhone ou iPod Touch real.

Instruções detalhadas

Verifique nossa página de manual do mtouch(1) com todos os possíveis usos da ferramenta mtouch.

Instalação

Em um Mac, o mtouch é fornecido com o Xamarin.iOS. Ele pode ser encontrado no seguinte diretório:

/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin

Para facilitar o uso do mtouch, adicione o diretório pai dele à variável de ambiente PATH do seu sistema.

Por exemplo, para fazer isso no Bash, adicione a seguinte linha ao final do arquivo ~/.bash_profile:

export PATH=$PATH:/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin

Aviso

Para usar o mtouch, não dependa da existência do /Developer/MonoTouch/usr/bin, um link simbólico que aponta para /Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin. Esse link simbólico existe apenas para manter a compatibilidade com versões mais antigas do MonoTouch que não foram instaladas em /Library/Frameworks/... e pode desaparecer em uma versão futura.

Compilando

O comando mtouch pode compilar o código de três maneiras diferentes:

  • Compilar para testes do simulador.
  • Compilar para implantação no dispositivo.
  • Implante o executável no dispositivo.

Compilar para o simulador

Quando você começar, o cenário de uso mais comum será testar o aplicativo no simulador, de modo que você usará o mtouch -sim para compilar o código em um pacote do simulador. Isso é feito da seguinte maneira:

$ mtouch -sim Hello.app hello.exe

Compilar para o dispositivo

Para compilar software para o dispositivo, você compilará seu aplicativo usando a opção mtouch -dev e, além disso, você precisará fornecer o nome do certificado usado para assinar seu aplicativo. O exemplo a seguir mostra como o aplicativo é compilado para o dispositivo:

$ mtouch -dev -c "iPhone Developer: Miguel de Icaza" foo.exe

Nesse caso específico, estamos usando o certificado "iPhone Developer: Miguel de Icaza" para assinar o aplicativo. Essa etapa é muito importante, ou o dispositivo físico não aceitará carregar o aplicativo.

Executar o aplicativo

Iniciar no simulador

Iniciar o simulador é muito simples, uma vez que você tem um pacote de aplicativo:

$ mtouch --sdkroot /Applications/Xcode.app -launchsim Hello.app 

Se o sinalizador --sdkroot não está definido, ele assume o caminho xcode-select por padrão e isso resulta no aviso a seguir:

Por exemplo: aviso MT0061: Nenhum Xcode.app especificado (usando --sdkroot), usando o sistema do Xcode conforme relatado por 'xcode-select --print-path': /Applications/Xcode.app/Contents/Developer

A linha de comando acima produzirá uma saída como esta:

Launching application
Application launched
PID: 98460
Press enter to terminate the application

É altamente recomendável que você também mantenha um log dos arquivos de saída padrão e de erro padrão para ajudar na depuração. A saída de Console.WriteLine vai para stdout, enquanto a saída de Console.Error.WriteLine e eventuais outras mensagens de erro de runtime vai para stderr.

Para fazer isso, use os sinalizadores --stdout e --stderr:

../../tools/mtouch/mtouch --launchsim=Hello.app --stdout=output --stderr=error

Se o aplicativo falhar, você poderá ver a saída e o erro para diagnosticar o problema.

Implantação em um dispositivo

Para implantar seu dispositivo, você precisa provisionar seu dispositivo conforme descrito no documento Gerenciando dispositivos da Apple. Depois que o dispositivo tiver sido configurado corretamente, você poderá usar o comando mtouch para implantar um ".app" compilado em seu dispositivo. Você faz isso usando este comando:

$ mtouch —sdkroot /Applications/Xcode.app -installdev=MyApp.app

Se o sinalizador --sdkroot não está definido, ele assume o caminho xcode-select por padrão e isso resulta no aviso a seguir:

Por exemplo: aviso MT0061: Nenhum Xcode.app especificado (usando --sdkroot), usando o sistema do Xcode conforme relatado por 'xcode-select --print-path': /Applications/Xcode.app/Contents/Developer

Essas etapas são normalmente executadas pelo Visual Studio para Mac.

Referência

Consulte a página de manual do mtouch(1) para obter detalhes sobre as outras opções de linha de comando.