Edificio J2ObjC

Requisiti

  • Sistema Apple Mac OS X
  • L'ultima versione di Xcode
  • JDK 21 installato
  • Apache Maven
  • (Consigliato ma non obbligatorio) Origine Google Protocol Buffer

Configurazione del Mac

  • Installa gli strumenti a riga di comando di Xcode eseguendo:
sudo xcode-select --install
  • Aggiungi al tuo .bash_profile:
export JAVA_HOME=`/usr/libexec/java_home -v 21`
  • Se Maven non è installato (prova mvn -version in un terminale), utilizza Homebrew:
brew install maven

Crea un fork del progetto J2ObjC

Per creare un fork del progetto J2ObjC, apri la pagina principale e fai clic sul pulsante Fork:

Crea nuova conversazione

Seleziona il nome del tuo account GitHub e il fork verrà creato in pochi secondi.

Poi, clona una copia del fork sul sistema locale per lo sviluppo. Innanzitutto, fai clic sul [pulsante Clona o scarica], poi sul pulsante Copia negli appunti:

Clona

Poi clona in una directory locale:

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

Installa protobuf e abseil

Prima di poter creare J2ObjC, devi installare protobuf C++.

Per installare il pacchetto binario protobuf, usa Homebrew:

brew install protobuf

La build C++ di Protobuf ora dipende dalla libreria Abseil, quindi installala:

brew install abseil

Devi impostare PROTOBUF_ROOT_DIR sulla radice in cui è installato protobuf. Normalmente, è l'impostazione predefinita di Homebrew /usr/local. Aggiungi quanto segue al tuo .bash_profile:

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

Per verificare, esegui $PROTOBUF_ROOT_DIR/bin/protoc --version.

Creazione di J2ObjC

Per eseguire la build da una riga di comando in una finestra del terminale, esegui:

# 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

Test di J2ObjC

Per eseguire il test da una riga di comando in una finestra del terminale, esegui:

# Run translator and library unit tests
make test

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

Pulizia di una build

# Remove all files generated by the build
make clean

Build parallele

La build J2ObjC supporta le build parallele, specificate utilizzando il flag -j<n>, dove n è il numero massimo di attività simultanee. Il valore massimo dipende dalla velocità del sistema. Ti consigliamo di iniziare con -j4. Aumenta il numero per ridurre i tempi di compilazione se il sistema è in grado di gestirlo e diminuiscilo se make non riesce a compilare a causa di errori di sistema.

Creazione di architetture iOS a 32 bit

Le architetture iOS a 32 bit ("iphone" e "simulator") non vengono create per impostazione predefinita. Puoi creare j2objc con questi specificandoli prima nella variabile di ambiente J2OBJC_ARCHS:

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

La specifica di un sottoinsieme di architetture supportate può essere generalmente utilizzata per velocizzare le build locali, specificando solo le architetture di cui la tua app ha bisogno. Per creare solo la versione iOS a 64 bit ("iphone64") e il relativo simulatore ("simulator64"), ad esempio, definisci J2OBJC_ARCHS="iphone64 simulator64" prima di eseguire make.

Creazione della distribuzione completa

Sebbene il team di j2objc non pubblichi più distribuzioni precompilate su GitHub a causa dei limiti di dimensione dei file, lo script "build everything in one step" può ancora essere utilizzato:

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

L'esecuzione di questo script richiede molto tempo perché viene creata ogni architettura per ogni pacchetto j2objc. Tuttavia, è molto utile in caso di errori di compilazione generali, in quanto la compilazione viene eseguita solo con il set minimo di variabili di ambiente. Se lo script build_distribution ha esito positivo, ma i normali passaggi di build no, controlla se le variabili di ambiente locali sono impostate in modo errato.