J2ObjC erstellen

Voraussetzungen

  • Apple Mac OS X-System
  • Neueste Version von Xcode
  • JDK JDK 11 installiert
  • Apache Maven
  • (Empfohlen, aber nicht erforderlich) Quelle für Google-Protokollzwischenspeicher

Mac-Einrichtung

  • Installieren Sie die Xcode-Befehlszeilentools mit folgendem Befehl:
sudo xcode-select --install
  • Zum .bash_profile hinzufügen:
export JAVA_HOME=`/usr/libexec/java_home -v 11`

Fork des J2ObjC-Projekts erstellen

Um das J2ObjC-Projekt abzuspalten, öffnen Sie die Hauptseite und klicken Sie auf die Schaltfläche Fork:

Fork

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

Klonen Sie als Nächstes eine Kopie der Verzweigung zur Entwicklung auf Ihrem lokalen System. Klicken Sie zuerst auf die Schaltfläche „Clone or download“ (Klonen oder herunterladen) und dann auf „Copy to Clipboard“ (In Zwischenablage kopieren):

Klonen

Klonen Sie dann in ein lokales Verzeichnis:

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

protobuf installieren

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

Verwenden Sie Homebrew, um das protobuf-Binärpaket zu installieren:

brew install protobuf

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 Ihrem .bash_profile Folgendes hinzu:

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

Führen Sie zur Bestätigung $PROTOBUF_ROOT_DIR/bin/protoc --version aus.

J2ObjC-Gebäude

Führen Sie folgenden Befehl aus, um einen Build über eine Befehlszeile in einem Terminalfenster zu erstellen:

# Build just the translator and libraries
make dist

# Build the full distribution (including frameworks)
make frameworks

# 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

Optionale Einrichtung für Protokollzwischenspeicher

Für den Compiler und die Laufzeit J2ObjC Protocol Buffers muss Protocol Buffers (mindestens 3.21.3) installiert sein:

  • Laden Sie den Quellcode aus der Version Protocol Buffers 3.21.7 herunter.
  • Folgen Sie der Installationsanleitung für C++ in der Readme-Datei. Achten Sie auf die Option --prefix, um den Installationsort anzugeben.
  • Definieren Sie die Umgebungsvariable PROTOBUF_ROOT_DIR, um auf den Installationsspeicherort für Protocol Buffers zu verweisen.

Veröffentlichung der Java 8-Sprachfunktionen.

Siehe Ankündigung. Zusätzlich zu den Schritten im vorherigen Abschnitt muss ein JRE-Modul mit dem JDK 11 erstellt werden:

JAVA_HOME=`/usr/libexec/java_home -v 11` \
make -C jre_emul/ -f java.mk emul_module_dist

J2ObjC testen

Führen Sie folgenden Befehl aus, um einen Test über eine Befehlszeile in einem Terminalfenster durchzuführen:

# Run translator and library unit tests
make test

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

Build bereinigen/zurücksetzen

# 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, wobei n die maximale Anzahl gleichzeitiger Aufgaben ist. Der Höchstwert hängt davon ab, wie schnell/leistungsfähig Ihr System ist. Wir empfehlen, mit -j4 zu beginnen. Erhöhen Sie die Anzahl, um die Build-Dauer zu verkürzen, sofern Ihr System den Build verarbeiten kann, und verringern Sie ihn, wenn der Vorgang aufgrund von Systemfehlern fehlschlägt.

Prozessorarchitekturen

Ab j2objc-Version 2.3 sind 32-Bit-iOS-Architekturen ("iphone" und "simulator") nicht in der öffentlichen Distribution enthalten. Um j2objc mit diesen Variablen zu erstellen, geben Sie zuerst die Umgebungsvariable J2OBJC_ARCHS an:

$ export J2OBJC_ARCHS="iphone simulator macosx iphone64 watchv7k watch64 watchsimulator simulator64"
$ make -j8 all_dist

Dies kann auch verwendet werden, um den Build zu beschleunigen, indem Sie nur die Architekturen angeben, die Ihre App benötigt. Wenn Sie beispielsweise nur das 64-Bit-iOS („iphone64“) und den zugehörigen Simulator („simulator64“) erstellen möchten, definieren Sie J2OBJC_ARCHS="iphone64 simulator64", bevor Sie „make“ ausführen.