Requisitos
- Sistema Apple Mac OS X
- La versión más reciente de Xcode
- JDK 11 instalado
- Apache Maven
- Fuente de búfer de protocolo de Google (recomendado, pero no obligatorio)
Configuración de Mac
- Para instalar las herramientas de línea de comandos de Xcode, ejecuta lo siguiente:
sudo xcode-select --install
- Agrega a
.bash_profile
:
export JAVA_HOME=`/usr/libexec/java_home -v 11`
- Si Maven no está instalado (prueba
mvn -version
en una terminal), usa Homebrew:
brew install maven
Crea una bifurcación del proyecto J2ObjC
Para bifurcar el proyecto de J2ObjC, abre su página principal y haz clic en el botón Fork:
Selecciona el nombre de tu cuenta de GitHub y la bifurcación se creará en unos segundos.
A continuación, clona una copia de la bifurcación en tu sistema local para el desarrollo. Primero, haz clic en el [botón Clonar o descargar] y, luego, en el botón Copiar en el portapapeles:
Luego, clona en un directorio local:
git clone (Command-V) # Paste the copied URL
Instala protobuf y abseil
Debes tener instalado protobuf C++ para poder compilar J2ObjC.
Para instalar el paquete binario de protobuf, usa Homebrew:
brew install protobuf
La compilación de Protobuf C++ ahora depende de la biblioteca de Abseil, así que instálala también:
brew install abseil
Debes establecer PROTOBUF_ROOT_DIR
en la raíz donde está instalado protobuf.
Por lo general, ese es el /usr/local
predeterminado de Homebrew. Agrega lo siguiente a tu .bash_profile
:
export PROTOBUF_ROOT_DIR=/usr/local # or your custom Homebrew dir
Para verificarlo, ejecuta $PROTOBUF_ROOT_DIR/bin/protoc --version
.
Cómo compilar J2ObjC
Para compilar desde una línea de comandos en una ventana de Terminal, ejecuta lo siguiente:
# 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
Pruebas de J2ObjC
Para probar desde una línea de comandos en una ventana de Terminal, ejecuta lo siguiente:
# Run translator and library unit tests
make test
# Run all unit tests, including for protocol buffers
make test_all
Cómo limpiar una compilación
# Remove all files generated by the build
make clean
Compilaciones en paralelo
La compilación de J2ObjC admite compilaciones en paralelo, que se especifican con la marca -j<n>
, donde n es la cantidad máxima de tareas simultáneas. El máximo depende de la velocidad de tu sistema. Te sugerimos que comiences con -j4
.
Aumenta la cantidad para acortar los tiempos de compilación si tu sistema puede manejarla y disminuyela si make falla con errores del sistema.
Cómo compilar arquitecturas de iOS de 32 bits
Las arquitecturas de iOS de 32 bits ("iphone" y "simulator") no se compilan de forma predeterminada. Para compilar j2objc con estos, primero especifícalos en la variable de entorno J2OBJC_ARCHS:
$ export J2OBJC_ARCHS="iphone simulator"
$ make -j8 all_dist
En general, especificar un subconjunto de arquitecturas compatibles puede usarse para acelerar las compilaciones locales, ya que solo se especifican las arquitecturas que necesita tu app.
Para compilar solo iOS de 64 bits ("iphone64") y su simulador asociado ("simulator64"), por ejemplo, define J2OBJC_ARCHS="iphone64 simulator64"
antes de ejecutar make.
Cómo compilar la distribución completa
Aunque el equipo de j2objc ya no publica distribuciones precompiladas en GitHub debido a las limitaciones de tamaño de los archivos, aún se puede usar la secuencia de comandos "compila todo en un solo paso":
$ scripts/build_distribution.sh HEAD-<current-date> $PROTOBUF_ROOT_DIR
Esta secuencia de comandos tarda mucho tiempo en ejecutarse porque se compila cada arquitectura para cada paquete de j2objc. Sin embargo, es muy útil si hay fallas generales de compilación, ya que se compila solo con el conjunto mínimo de variables de entorno. Si la secuencia de comandos build_distribution se realiza correctamente, pero los pasos de compilación normales no, revisa si alguna variable de entorno local está configurada de forma incorrecta.