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