Wymagania
- System Apple Mac OS X
- Najnowsza wersja Xcode
- Zainstalowano JDK 21
- Apache Maven
- (Zalecane, ale nie wymagane) Źródło bufora protokołu Google
Konfiguracja Maca
- Zainstaluj narzędzia wiersza poleceń Xcode, uruchamiając to polecenie:
sudo xcode-select --install- Dodaj do
.bash_profile:
export JAVA_HOME=`/usr/libexec/java_home -v 21`- Jeśli Maven nie jest zainstalowany (spróbuj wpisać
mvn -versionw terminalu), użyj Homebrew:
brew install mavenUtwórz fork projektu J2ObjC
Aby utworzyć fork projektu J2ObjC, otwórz jego stronę główną i kliknij przycisk Fork:

Wybierz nazwę konta GitHub, a fork zostanie utworzony w ciągu kilku sekund.
Następnie sklonuj kopię rozwidlenia do systemu lokalnego, aby rozpocząć programowanie. Najpierw kliknij [Clone or download button] (Sklonuj lub pobierz), a potem przycisk Copy to Clipboard (Skopiuj do schowka):

Następnie sklonuj go do katalogu lokalnego:
git clone (Command-V) # Paste the copied URLInstalowanie bibliotek protobuf i abseil
Aby skompilować J2ObjC, musisz najpierw zainstalować protobuf C++.
Aby zainstalować binarny pakiet protobuf, użyj Homebrew:
brew install protobufKompilacja Protobuf C++ zależy teraz od biblioteki Abseil, więc zainstaluj ją również:
brew install abseilMusisz ustawić PROTOBUF_ROOT_DIR na katalog główny, w którym zainstalowano protokół buforów.
Zwykle jest to domyślna wartość Homebrew /usr/local. Dodaj do pliku .bash_profile te informacje:
export PROTOBUF_ROOT_DIR=/usr/local # or your custom Homebrew dirAby to sprawdzić, uruchom polecenie $PROTOBUF_ROOT_DIR/bin/protoc --version.
Kompilowanie J2ObjC
Aby skompilować projekt z wiersza poleceń w oknie terminala, uruchom to polecenie:
# Build just the translator and librariesmake dist# Build the protocol buffer compiler and runtime for J2ObjCmake protobuf_dist# Build everything that is included in the project's distribution bundlesmake all_dist
Testowanie J2ObjC
Aby przetestować połączenie z wiersza poleceń w oknie terminala, uruchom to polecenie:
# Run translator and library unit testsmake test# Run all unit tests, including for protocol buffersmake test_all
Czyszczenie kompilacji
# Remove all files generated by the buildmake clean
Kompilacje równoległe
Kompilacja J2ObjC obsługuje kompilacje równoległe, które są określane za pomocą flagi -j<n>, gdzie n to maksymalna liczba równoczesnych zadań. Maksymalna wartość zależy od szybkości działania systemu. Zalecamy rozpoczęcie od -j4.
Zwiększ tę liczbę, aby skrócić czas kompilacji, jeśli Twój system to umożliwia. Zmniejsz ją, jeśli kompilacja kończy się niepowodzeniem z powodu błędów systemowych.
Kompilowanie 32-bitowych architektur iOS
Architektury 32-bitowe iOS („iphone” i „simulator”) nie są domyślnie kompilowane. Aby skompilować j2objc za pomocą tych architektur, najpierw określ je w zmiennej środowiskowej J2OBJC_ARCHS:
$ export J2OBJC_ARCHS="iphone simulator"
$ make -j8 all_dist
Określenie podzbioru obsługiwanych architektur może zwykle przyspieszyć lokalne kompilacje, ponieważ wystarczy podać tylko te architektury, których potrzebuje aplikacja.
Aby na przykład utworzyć tylko 64-bitową wersję iOS („iphone64”) i powiązany z nią symulator („simulator64”), przed uruchomieniem polecenia make zdefiniuj J2OBJC_ARCHS="iphone64 simulator64".
Tworzenie pełnej dystrybucji
Chociaż zespół j2objc nie publikuje już na GitHubie gotowych dystrybucji ze względu na ograniczenia rozmiaru plików, nadal można używać skryptu „build everything in one step” (skompiluj wszystko w jednym kroku):
$ scripts/build_distribution.sh HEAD-<current-date> $PROTOBUF_ROOT_DIR
Skrypt działa długo, ponieważ kompiluje każdą architekturę dla każdego pakietu j2objc. Jest to jednak bardzo przydatne w przypadku ogólnych błędów kompilacji, ponieważ kompilacja jest przeprowadzana tylko z minimalnym zestawem zmiennych środowiskowych. Jeśli skrypt build_distribution działa prawidłowo, ale normalne kroki kompilacji nie, sprawdź, czy zmienne środowiskowe lokalne są prawidłowo ustawione.