J2ObjC erstellen

Voraussetzungen

  • Apple Mac OS X-System
  • Die aktuelle Version von Xcode
  • JDK 17 installiert
  • Apache Maven
  • (Empfohlen, aber nicht erforderlich) Google Protocol Buffer-Quelle

Mac-Einrichtung

  • Installieren Sie die Xcode-Befehlszeilentools mit dem folgenden Befehl:
sudo xcode-select --install
  • Zum .bash_profile hinzufügen:
export JAVA_HOME=`/usr/libexec/java_home -v 17`
  • Wenn Maven nicht installiert ist (versuchen Sie es mit mvn -version in einem Terminal), verwenden Sie Homebrew:
brew install maven

Fork des J2ObjC-Projekts erstellen

So forken Sie das J2ObjC-Projekt: Öffnen Sie die Hauptseite und klicken Sie auf die Schaltfläche „Fork“:

Chat kopieren und anders fortfahren

Wählen Sie den Namen Ihres GitHub-Kontos aus. Die Fork wird in wenigen Sekunden erstellt.

Klonen Sie als Nächstes eine Kopie Ihrer Verzweigung auf Ihr lokales System, um sie zu entwickeln. Klicken Sie zuerst auf die Schaltfläche [Clone or download] (Klonen oder herunterladen) und dann auf die Schaltfläche „In die Zwischenablage kopieren“:

Klonen

Klonen Sie das Repository dann in ein lokales Verzeichnis:

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

protobuf und abseil installieren

Sie müssen protobuf C++ installiert haben, bevor Sie J2ObjC erstellen können.

So installieren Sie das binäre Protobuf-Paket mit Homebrew:

brew install protobuf

Für den Protobuf C++-Build ist jetzt die Abseil-Bibliothek erforderlich. Installieren Sie sie also auch:

brew install abseil

Sie müssen PROTOBUF_ROOT_DIR auf das Stammverzeichnis festlegen, in dem protobuf installiert ist. Normalerweise ist das der Homebrew-Standard /usr/local. Fügen Sie Folgendes zu .bash_profile hinzu:

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

Führen Sie zur Überprüfung $PROTOBUF_ROOT_DIR/bin/protoc --version aus.

J2ObjC erstellen

Wenn Sie einen Build über die Befehlszeile in einem Terminalfenster erstellen möchten, führen Sie Folgendes aus:

# 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

J2ObjC testen

Führen Sie Folgendes aus, um über die Befehlszeile in einem Terminalfenster zu testen:

# Run translator and library unit tests
make test

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

Build bereinigen

# Remove all files generated by the build
make clean

Parallele Builds

Der J2ObjC-Build unterstützt parallele Builds, die mit dem Flag -j<n> angegeben werden. Dabei ist n die maximale Anzahl gleichzeitiger Aufgaben. Der Maximalwert hängt von der Geschwindigkeit Ihres Systems ab. Wir empfehlen, mit -j4 zu beginnen. Erhöhen Sie die Zahl, um die Build-Zeiten zu verkürzen, wenn Ihr System dies zulässt. Verringern Sie sie, wenn „make“ mit Systemfehlern fehlschlägt.

32-Bit-iOS-Architekturen erstellen

Die 32-Bit-iOS-Architekturen („iphone“ und „simulator“) werden nicht standardmäßig erstellt. Sie können j2objc damit erstellen, indem Sie sie zuerst in der Umgebungsvariable J2OBJC_ARCHS angeben:

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

Wenn Sie eine Teilmenge der unterstützten Architekturen angeben, können Sie lokale Builds in der Regel beschleunigen, indem Sie nur die Architekturen angeben, die Ihre App benötigt. Wenn Sie beispielsweise nur die 64-Bit-iOS-Version („iphone64“) und den zugehörigen Simulator („simulator64“) erstellen möchten, definieren Sie J2OBJC_ARCHS="iphone64 simulator64", bevor Sie „make“ ausführen.

Vollständige Bereitstellung erstellen

Obwohl das j2objc-Team aufgrund der Dateigrößenbeschränkungen keine vorgefertigten Distributionen mehr auf GitHub veröffentlicht, kann das Skript „build everything in one step“ (alles in einem Schritt erstellen) weiterhin verwendet werden:

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

Die Ausführung dieses Skripts dauert lange, da jede Architektur für jedes j2objc-Paket erstellt wird. Sie ist jedoch sehr nützlich, wenn es allgemeine Build-Fehler gibt, da sie nur mit der Mindestanzahl an Umgebungsvariablen erstellt wird. Wenn das build_distribution-Skript erfolgreich ausgeführt wird, die normalen Build-Schritte jedoch nicht, prüfen Sie, ob lokale Umgebungsvariablen falsch festgelegt sind.