Требования
- Система Apple Mac OS X
- Последняя версия Xcode
- JDK JDK 11 установлен
- Апач Мавен
- (Рекомендуется, но не обязательно) Источник буфера протокола Google
Настройка Mac
- Установите инструменты командной строки Xcode, выполнив:
sudo xcode-select --install
- Добавьте в свой
.bash_profile
:
export JAVA_HOME=`/usr/libexec/java_home -v 11`
Создайте вилку проекта J2ObjC.
Чтобы создать форк проекта J2ObjC, откройте его главную страницу и нажмите кнопку «Разветвить»:
Выберите имя своей учетной записи GitHub, и форк будет создан через несколько секунд.
Затем клонируйте копию своего форка в локальную систему для разработки. Сначала нажмите кнопку [Клонировать или загрузить], затем нажмите кнопку «Копировать в буфер обмена»:
Затем клонируйте в локальный каталог:
git clone (Command-V) # Paste the copied URL
Установить протобуф
Прежде чем вы сможете собрать J2ObjC, вам необходимо установить protobuf C++.
Чтобы установить двоичный пакет protobuf, используйте Homebrew:
brew install protobuf
Вам необходимо установить PROTOBUF_ROOT_DIR
в корень, где установлен protobuf. Обычно это /usr/local
по умолчанию для Homebrew. Добавьте следующее в свой .bash_profile
:
export PROTOBUF_ROOT_DIR=/usr/local # or your custom Homebrew dir
Чтобы проверить, запустите $PROTOBUF_ROOT_DIR/bin/protoc --version
.
Здание J2ObjC
Чтобы выполнить сборку из командной строки в окне терминала, запустите:
# 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
Дополнительная настройка буферов протокола
Компилятор и среда выполнения J2ObjC Protocol Buffers требуют, чтобы были установлены Protocol Buffers (по крайней мере 3.21.3):
- Загрузите исходный код из версии Protocol Buffers 3.21.7 .
- Следуйте инструкциям по установке C++ из README . Обратите внимание на параметр
--prefix
, чтобы указать место установки. - Определите переменную среды
PROTOBUF_ROOT_DIR
, чтобы указать место установки буферов протокола.
Возможности языка Post Java 8.
Смотрите объявление . В дополнение к шагам, описанным в предыдущем разделе, модуль JRE необходимо собрать с помощью JDK 11:
JAVA_HOME=`/usr/libexec/java_home -v 11` \
make -C jre_emul/ -f java.mk emul_module_dist
Тестирование J2ObjC
Чтобы протестировать из командной строки в окне терминала, запустите:
# Run translator and library unit tests
make test
# Run all unit tests, including for protocol buffers
make test_all
Очистка/сброс сборки
# Remove all files generated by the build
make clean
Параллельные сборки
Сборка J2ObjC поддерживает параллельные сборки, которые указываются с помощью флага -j<n>
, где n — максимальное количество одновременных задач. Максимум зависит от того, насколько быстрая/мощная ваша система; мы предлагаем начать с -j4
. Увеличьте это число, чтобы сократить время сборки, если ваша система может справиться с этим, и уменьшите его, если make завершится сбоем из-за системных ошибок.
Создание архитектур процессоров
Начиная с версии j2objc 2.3, 32-битные архитектуры iOS («iphone» и «симулятор») не включены в общедоступный дистрибутив. Вы можете собрать j2objc с их помощью, сначала указав переменную среды J2OBJC_ARCHS:
$ export J2OBJC_ARCHS="iphone simulator macosx iphone64 watchv7k watch64 watchsimulator simulator64"
$ make -j8 all_dist
Это также можно использовать для ускорения сборки, указав только те архитектуры, которые нужны вашему приложению. Например, чтобы собрать только 64-разрядную версию iOS («iphone64») и связанный с ней симулятор («simulator64»), определите J2OBJC_ARCHS="iphone64 simulator64"
перед запуском make.