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:
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:
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.