Configurando um Ambiente de desenvolvimento Genexus IOS com uma máquina virtual MacOS

Pré-Requisitos: Conhecimento na ferramenta Genexus e familiaridade na geração de aplicativos mobile.

Uma dificuldade que encontrei quando comecei a desenvolver aplicativos para mobile no Genexus foi gerar uma versão para IOS. O Genexus tem uma dinâmica bem simples para aplicativos Android, basicamente é pressionar F5 (RUN) e podemos ver o aplicativo funcionando e até mesmo copiar a APK para um celular. Já para gerar apps IOS a dinâmica é um pouco diferente, tem uma série de pequenos procedimentos. Por exemplo, o primeiro deles é que a Apple solicita uma licença de desenvolvimento, caso contrário você não conseguirá ir muito longe. Essa licença pode ser adquirida na própria Apple e a mais simples tem um custo aproximado de 90 dólares. https://developer.apple.com/programs/

O primeiro desafio foi consolidar todo o material encontrado dentro do WIKI Genexus, além de consultar muita coisa fora desse contexto para conseguir gerar um APP para o IPHONE. Outro problema foi ter uma Máquina MAC para compilar o aplicativo, descobri que ela tem um custo razoável e eu não tinha um bom argumento que justificasse o investimento naquele momento.

Enfim, encontrei uma solução barata e eficaz: “MÁQUINA VIRTUAL MAC.” Importante lembrar que é uma solução para uso acadêmico e não a recomendo para uso profissional, pois além das questões legais, ela não apresenta uma boa performance e não atualiza facilmente (sempre que precisei atualizar a máquina, tive que montar uma nova).

Dentro desse cenário, estruturei um passo a passo para facilitar minha vida e resolvi compartilhar com quem tiver curiosidade de gerar um APP IOS utilizando Genexus.

1. Montar a máquina virtual MacOS

Montei uma máquina virtual MacOS High Sierra 10.13.6, a mais atual no momento em que estava escrevendo o post. Todas as dicas e instruções de como montar a máquina peguei nesse blog:

https://www.sysnettechsolutions.com/en/virtualbox/install-macos-high-sierra-10-13-6-virtualbox/

2.Configuração de Rede

A máquina virtual e o Genexus devem estar na mesma rede para que seja possível realizar o compartilhamento de arquivos. Por isso, configurei as propriedades de rede do Virtual Box em modo bridge.

* Placa em modo bridge: Neste modo o adaptador faz uma ponte com a interface “real” do host, conectando-se diretamente à rede deste. Passamos a ter mais um computador na rede do host, inclusive obtendo IP dinamicamente, caso a rede possua essa capacidade. Teremos uma rede entre host, guest e todos os equipamentos da rede como modem, switch, proxy, gateway padrão, etc… 

(fonte: https://br.answers.yahoo.com/question/index?qid=20120415123147AAdrbeH)

Configurar rede VirtualBox

O Genexus precisa dessa configuração porque ele transfere o todo código gerado para máquina virtual para que o APP seja gerado.

3. XCODE

Com da Máquina montada e a rede configurada será preciso identificar qual versão do XCODE é compatível com sua versão do Genexus. Isso pode ser visto na WIKI oficial da ferramenta: https://wiki.genexus.com/commwiki/servlet/wiki?19478,iOS+Requirements.

Neste post iremos utilizar o Genexus 15 upgrade 11 e consequentemente usaremos a versão 9.4.x do XCode.

Versões XCODE por versão GX

O XCODE pode ser encontrado na própria APP Store dentro da máquina virtual, mas por esse caminho só será possível baixar a ultima versão do aplicativo. Caso precise de uma versão especifica, basta acessar o caminho: https://developer.apple.com/download. Vale lembrar que será necessário inserir o usuário e senha do programa de desenvolvedor Apple.

4. Habilitar o compartilhamento de arquivos

O próximo passo é habilitar o MacOS para compartilhar arquivos, de forma que o Genexus consiga copiar os binários para a máquina virtual e para que o XCODE consiga compilar e executar o APP. Para fazer essa configuração, acesse a função Preferences / Sharing e libere acesso a pasta documentos.

Compartilhamento de Arquivos MAC

Se todas as configurações foram feitas corretamente, você deve conseguir “pingar” a máquina virtual a partir da sua máquina física.

Acesso ao MAC via rede via DOS

Outro teste interessante é tentar acessar o Mac pelo Windows explorer.

Acesso ao MAC via rede

5. Instalar COCOAPODS:

O COCOAPODS é um gerenciador de dependências utilizado pelo XCODE e precisamos instalá-lo para que seja possível compilar uma aplicação IOS. A instalação é feita pelo terminal no MacOS, disponível no caminho “Finder / Applications / Utilities / terminal”. Com o terminal aberto execute o comando “$ sudo gem install cocoapods”.

Obs: Nesta versão da máquina virtual não tive sucesso executando apenas esse comando (em versões anteriores funcionou corretamente) e após uma pesquisa rápida, descobri alguns parâmetros que facilitaram a minha vida:  “$ sudo gem install cocoapods –source http://rubygems.org”.

Para quem quiser saber mais sobre isso, acesse: https://cocoapods.org/

6. Configurar Genexus

Nas configurações do Genexus, acesse as propriedades do gerador SmartDevices coloque os seguintes parâmetros:

  • Generate IOS: TRUE
  • Services URL: “URL do local onde os serviços serão armazenados” – Mesmo padrão utilizado no android.
  • Execution Type: Eu usei o “Simulador (MAC)” que transfere todo o projeto para o MAC e posso abrir no Xcode identificar possíveis erros de compilação e simular no emulador.
  • IOS Simulador: Last used simulator
  • MacHost: Essa informação pode ser identificada na máquina virtual, no caminho: “Preferences / sharing / Computer Name” e adicione um “.local” ao final. No meu caso ficou IosMac.local;
  • MacUser: Login da máquina virtual
  • MacPassord: Senha da Máquina Virtual

(https://wiki.genexus.com/commwiki/servlet/wiki?18658,Execution+Type+property,)

Configuração IOS Genexus

Ao acompanhar a compilação você poderá perceber o Genexus conectando na máquina virtual, copiando os binários e solicitando a execução do APP no emulador.

7. Erro na compilação:

Na montagem dessa máquina tive um probleminha na configuração e consequentemente erro na compilação:

Updating spec repo `GXLocal`
fatal: ambiguous argument ‘HEAD’: unknown revision or path not in the working tree.
Use ‘–‘ to separate paths from revisions, like this:
‘git  
 — 
$ /usr/bin/git -C /Users/macuser/.cocoapods/repos/GXLocal fetch origin
–progress
$ /usr/bin/git -C /Users/macuser/.cocoapods/repos/GXLocal rev-parse
–abbrev-ref HEAD
fatal: ambiguous argument ‘HEAD’: unknown revision or path not in the working tree.
HEAD
Use ‘–‘ to separate paths from revisions, like this:
‘git  
 — 
! CocoaPods was not able to update the `GXLocal` repo. If this is an unexpected issue and persists you can inspect it running `pod repo update –verbose`

Para resolver esse problema entrei no terminal da máquina virtual (“Finder / Applications / Utilities / terminal” )  e executei os comandos (:

pod repo remove GXLocal

rm -rf /Users/Shared/Library/GeneXus/GeneXus/CocoaPods

 

mkdir -p /Users/Shared/Library/GeneXus/GeneXus/CocoaPods

cd /Users/Shared/Library/GeneXus/GeneXus/CocoaPods

git init

echo “GeneXus Local Repo” > README.md

git add README.md

git commit –allow-empty -n -m “Initial commit”.

pod repo add GXLocal /Users/Shared/Library/GeneXus/GeneXus/CocoaPods

 

Achei a resolução desse problema na wiki do Genexus, só tive que fazer uns pequenos ajustes para ajustar a minha realidade. A proposito, a wiki tem uma página que concentram vários erros do IOS e é muito útil para o dia a dia:

https://wiki.genexus.com/commwiki/servlet/wiki?14925,Apple+-+FAQ+and+Common+Issues,

Dicas e próximos passos

A última dica do post é que dá para alterar a resolução da máquina, originalmente o tamanho de tela vem muito pequeno, mas basta executar o comando na sua máquina física (não esqueça de desligar sua máquina e fechar o virtualbox):

Cd C:\Program Files\Oracle\VirtualBox

VBoxManage setextradata “sua máquina virtual” VBoxInternal2/EfiGraphicsResolution 1600×900

Para mim a resolução 1600 x 900 funcionou muito bem, você pode colocar a resolução que melhor se adapte a seu computador.

Bom, se você chegou até aqui, imagino que você já esteja com um app rodando no emulador na sua máquina virtual. Você irá perceber que não é possível transferir o app via cabo USB para o seu celular (se alguém resolver isso, me conte!). No próximo post iremos mostrar um exemplo de como fazer as configurações necessárias na APPLE e depois como disponibilizar um APP em um aparelho sem cabo USB.

Espero ter ajudado!! E toda contribuição é bem-vinda!!

Abraços.

309 Views
2018-10-01T17:50:47-03:00 By |iOS, Smart Devices|3 Comentários

Sobre o Autor:

Avatar
Trabalha na AGL Solutions e é entusiasta de Tecnologia e métodos ágeis, sua forma de interação e resultados que proporcionam.

3 Comments

  1. Avatar
    João da Silva setembro 5, 2018 em 10:11 - Responder

    Ótimo tutorial

  2. Avatar
    Thalyson Maio 31, 2019 em 15:39 - Responder

    tutorial muito bom, me ajudou bastante

  3. Avatar
    Márcio janeiro 9, 2020 em 13:41 - Responder

    Fabio ótimo tutorial, eu fiz tudo isto no VMware 15 e GxEv16 e funciona tudo até transferência para o celular, descobrimos que precisa ser USB 2.0, acho que não é compatível com a 3.
    Sobre a atualização aqui TB consegui, para mim era o tamanho do disco dentro do Mac tinha liberado 80Gb e o Mac estava com tamanho pequeno.
    Abraços

Deixar Um Comentário