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.