Como criar o J2ObjC

Requisitos

  • Sistema Apple Mac OS X
  • A versão mais recente do Xcode
  • JDK 17 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 17`
  • 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 fazer um fork do projeto J2ObjC, abra a página principal dele e clique no botão "Fork":

Fork

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

Em seguida, clone uma cópia da sua bifurcação no sistema local para desenvolvimento. Primeiro, clique no botão [Clonar ou baixar] e depois em "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 protobuf e abseil

É necessário ter o protobuf C++ instalado antes de criar o J2ObjC.

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

brew install protobuf

O build do Protobuf C++ agora depende da biblioteca Abseil. Instale também:

brew install abseil

Defina PROTOBUF_ROOT_DIR como a raiz em que o protobuf está instalado. Normalmente, esse é o padrão do Homebrew /usr/local. 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 na 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

Teste do J2ObjC

Para testar em uma linha de comando em uma janela de 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 do 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 máximo depende da velocidade do seu sistema. Sugerimos começar com -j4. Aumente o número para reduzir os tempos de build se o sistema puder lidar com isso e diminua se o make falhar com erros do sistema.

Como criar arquiteturas iOS de 32 bits

As arquiteturas iOS de 32 bits ("iphone" e "simulator") não são criadas por padrão. Para isso, especifique-as primeiro na variável de ambiente J2OBJC_ARCHS:

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

Especificar um subconjunto de arquiteturas compatíveis geralmente pode ser usado para acelerar os builds locais, especificando apenas as arquiteturas de que seu app precisa. Para criar apenas o iOS de 64 bits ("iphone64") e o simulador associado ("simulator64"), por exemplo, defina J2OBJC_ARCHS="iphone64 simulator64" antes de executar make.

Como criar a distribuição completa

Embora a equipe do j2objc não poste 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 todos os pacotes j2objc são criadas. No entanto, é muito útil se houver falhas gerais de build, já que ele é criado apenas com o conjunto mínimo de variáveis de ambiente. Se o script build_distribution for concluído, mas as etapas normais de build não, verifique se alguma variável de ambiente local está definida incorretamente.