Como criar o J2ObjC

Requisitos

  • Sistema Apple Mac OS X
  • Versão mais recente do Xcode
  • JDK 11 instalado
  • Apache Maven
  • (recomendado, mas não obrigatório) Origem do buffer de protocolo do Google

Configuração do Mac

  • Instale as ferramentas de linha de comando do Xcode executando:
sudo xcode-select --install
  • Adicione ao seu .bash_profile:
export JAVA_HOME=`/usr/libexec/java_home -v 11`
  • Se o Maven não estiver instalado (tente mvn -version em um terminal), use o Homebrew:
brew install maven

Criar um fork do projeto J2ObjC

Para bifurcar o projeto J2ObjC, abra a página principal dele e clique no botão Fork:

Fork

Selecione o nome da sua conta do GitHub e a bifurcação será criada em alguns segundos.

Em seguida, clone uma cópia da bifurcação para o sistema local para desenvolvimento. Primeiro, clique no botão [Clone ou download] e, em seguida, clique no botão Copiar para a área de transferência:

Clonar

Em seguida, clone em um diretório local:

git clone (Command-V)  # Paste the copied URL

Instalar o protobuf e o abseil

Você precisa ter o protobuf C++ instalado antes de criar o J2ObjC.

Para instalar o pacote binário do protobuf, use o Homebrew:

brew install protobuf

O build do Protobuf C++ agora depende da biblioteca Abseil. Portanto, instale-a também:

brew install abseil

Defina PROTOBUF_ROOT_DIR como a raiz em que o protobuf está instalado. Normalmente, esse é o /usr/local padrão do Homebrew. Adicione o seguinte ao .bash_profile:

export PROTOBUF_ROOT_DIR=/usr/local # or your custom Homebrew dir

Para verificar, execute $PROTOBUF_ROOT_DIR/bin/protoc --version.

Como criar o J2ObjC

Para criar em uma linha de comando em uma janela do Terminal, execute:

# Build just the translator and libraries
make dist

# Build the protocol buffer compiler and runtime for J2ObjC
make protobuf_dist

# Build everything that is included in the project's
distribution bundles
make all_dist

Como testar o J2ObjC

Para testar em uma linha de comando em uma janela do Terminal, execute:

# Run translator and library unit tests
make test

# Run all unit tests, including for protocol buffers
make test_all

Como limpar um build

# Remove all files generated by the build
make clean

Compilações paralelas

O build J2ObjC oferece suporte a builds paralelos, que são especificados usando a flag -j<n>, em que n é o número máximo de tarefas simultâneas. O valor máximo depende da velocidade do sistema. Sugerimos começar com -j4. Aumente o número para encurtar os tempos de build se o sistema puder lidar com ele e diminua se o make falhar com erros do sistema.

Como criar arquiteturas de 32 bits para iOS

As arquiteturas iOS de 32 bits ("iphone" e "simulator") não são criadas por padrão. É possível criar o j2objc com eles especificando-os na variável de ambiente J2OBJC_ARCHS:

$ export J2OBJC_ARCHS="iphone simulator"
$ make -j8 all_dist

Especificar um subconjunto de arquiteturas com suporte geralmente pode ser usado para acelerar builds locais, especificando apenas as arquiteturas necessárias para o app. Para criar apenas o iOS de 64 bits ("iphone64") e o simulador associado ("simulator64"), por exemplo, defina J2OBJC_ARCHS="iphone64 simulator64" antes de executar o make.

Como criar a distribuição completa

Embora a equipe do j2objc não publique mais distribuições pré-criadas no GitHub devido às limitações de tamanho de arquivo, o script "build everything in one step" ainda pode ser usado:

$ scripts/build_distribution.sh HEAD-<current-date> $PROTOBUF_ROOT_DIR

Esse script leva muito tempo para ser executado porque todas as arquiteturas de cada pacote j2objc são criadas. No entanto, ele é muito útil se houver falhas gerais de build, já que ele é criado com apenas o conjunto mínimo de variáveis de ambiente. Se o script build_distribution for bem-sucedido, mas as etapas normais de build não forem, verifique se alguma variável de ambiente local está definida incorretamente.