Wymagania
- System Apple Mac OS X
- Najnowsza wersja Xcode
- Zainstalowana wersja JDK 11
- Apache Maven
- (zalecane, ale nie wymagane) Źródło Google Protocol Buffer
Konfiguracja na Macu
- Zainstaluj narzędzia wiersza poleceń Xcode, wykonując te czynności:
sudo xcode-select --install
- Dodaj do
.bash_profile
:
export JAVA_HOME=`/usr/libexec/java_home -v 11`
- Jeśli Maven nie jest zainstalowany (spróbuj użyć
mvn -version
w terminalu), użyj Homebrew:
brew install maven
Tworzenie gałęzi projektu J2ObjC
Aby utworzyć fork projektu J2ObjC, otwórz jego stronę główną i kliknij przycisk Fork:
Wybierz nazwę swojego konta GitHub, a w kilka sekund utworzona zostanie kopia.
Następnie sklonuj kopię swojego forkowania do systemu lokalnego na potrzeby programowania. Najpierw kliknij [Clone or download button] (Klonuj lub pobierz), a potem kliknij przycisk Skopiuj do schowka:
Następnie sklonuj do katalogu lokalnego:
git clone (Command-V) # Paste the copied URL
Instalowanie protobuf i abseil
Zanim skompilujesz J2ObjC, musisz zainstalować protobuf C++.
Aby zainstalować pakiet binarny protobuf, użyj Homebrew:
brew install protobuf
Kompilacja Protobuf C++ zależy teraz od biblioteki Abseil, dlatego zainstaluj ją również:
brew install abseil
Musisz ustawić wartość PROTOBUF_ROOT_DIR
na katalog główny, w którym zainstalowano protobuf.
Zwykle jest to domyślne ustawienie Homebrew /usr/local
. Dodaj do pliku .bash_profile
te informacje:
export PROTOBUF_ROOT_DIR=/usr/local # or your custom Homebrew dir
Aby to sprawdzić, uruchom $PROTOBUF_ROOT_DIR/bin/protoc --version
.
Tworzenie J2ObjC
Aby skompilować z wiersza poleceń w oknie terminala, uruchom:
# 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
Testowanie J2ObjC
Aby przetestować wiersz poleceń w oknie terminala, uruchom:
# Run translator and library unit tests
make test
# Run all unit tests, including for protocol buffers
make test_all
Czyszczenie kompilacji
# Remove all files generated by the build
make clean
Kompilacje równoległe
Kompilacja J2ObjC obsługuje kompilacje równoległe, które są określane za pomocą parametru -j<n>
, gdzie n to maksymalna liczba równoczesnych zadań. Maksymalna wartość zależy od szybkości systemu. Zalecamy rozpoczęcie od -j4
.
Zwiększ tę liczbę, aby skrócić czas kompilacji, jeśli Twój system może ją obsłużyć, i zmniejszy ją, jeśli kompilacja zakończy się niepowodzeniem z powodu błędów systemowych.
Tworzenie 32-bitowych architektur iOS
32-bitowe architektury iOS („iPhone” i „symulator”) nie są domyślnie kompilowane. Aby skompilować j2objc, musisz najpierw określić te architektury w zmiennej środowiskowej J2OBJC_ARCHS:
$ export J2OBJC_ARCHS="iphone simulator"
$ make -j8 all_dist
Określanie podzbioru obsługiwanych architektur może przyspieszyć kompilację lokalną, ponieważ pozwala wskazać tylko architektury, których potrzebuje aplikacja.
Aby skompilować tylko 64-bitową wersję iOS („iphone64”) i powiązany z nią symulator („simulator64”), przed uruchomieniem make zdefiniuj J2OBJC_ARCHS="iphone64 simulator64"
.
Tworzenie pełnej dystrybucji
Chociaż zespół j2objc nie publikuje już gotowych dystrybucji na GitHubie ze względu na ograniczenia rozmiaru pliku, nadal można używać skryptu „build everything in one step”:
$ scripts/build_distribution.sh HEAD-<current-date> $PROTOBUF_ROOT_DIR
Uruchomienie tego skryptu trwa długo, ponieważ jest kompilowana każda architektura każdego pakietu j2objc. Jest ona jednak bardzo przydatna, gdy występują ogólne błędy kompilacji, ponieważ kompilacja jest tworzona z minimalnym zestawem zmiennych środowiskowych. Jeśli skrypt build_distribution zakończy się powodzeniem, ale normalne kroki kompilacji nie, sprawdź, czy zmienne środowiska lokalnego nie są ustawione nieprawidłowo.