Xây dựng J2ObjC

Yêu cầu

  • Hệ thống Apple Mac OS X
  • Phiên bản mới nhất của Xcode
  • Đã cài đặt JDK 11
  • Apache Maven
  • (Nên dùng nhưng không bắt buộc) Nguồn Google Protocol Buffer

Thiết lập máy Mac

  • Cài đặt các công cụ dòng lệnh Xcode bằng cách chạy:
sudo xcode-select --install
  • Thêm vào .bash_profile:
export JAVA_HOME=`/usr/libexec/java_home -v 11`
  • Nếu bạn chưa cài đặt Maven (hãy thử mvn -version trong một thiết bị đầu cuối), hãy sử dụng Homebrew:
brew install maven

Tạo một nhánh của dự án J2ObjC

Để phân nhánh dự án J2ObjC, hãy mở trang chính của dự án rồi nhấp vào nút Fork (Phân nhánh):

Nhánh

Chọn tên tài khoản GitHub của bạn và nhánh sẽ được tạo trong vài giây.

Tiếp theo, hãy nhân bản một bản sao của nhánh bạn đã tạo vào hệ thống cục bộ để phát triển. Trước tiên, hãy nhấp vào [nút Sao chép hoặc tải xuống], sau đó nhấp vào nút Sao chép vào bảng nhớ tạm:

Nhân bản

Sau đó, hãy nhân bản vào một thư mục cục bộ:

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

Cài đặt protobuf và abseil

Bạn cần cài đặt protobuf C++ thì mới có thể tạo J2ObjC.

Để cài đặt gói nhị phân protobuf, hãy sử dụng Homebrew:

brew install protobuf

Bản dựng Protobuf C++ hiện phụ thuộc vào thư viện Abseil, vì vậy, hãy cài đặt thư viện đó:

brew install abseil

Bạn cần đặt PROTOBUF_ROOT_DIR thành thư mục gốc nơi cài đặt protobuf. Thông thường, đó là /usr/local mặc định của Homebrew. Thêm nội dung sau vào .bash_profile:

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

Để xác minh, hãy chạy $PROTOBUF_ROOT_DIR/bin/protoc --version.

Xây dựng J2ObjC

Để tạo bản dựng từ dòng lệnh trong cửa sổ dòng lệnh, hãy chạy:

# 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

Kiểm thử J2ObjC

Để kiểm thử qua dòng lệnh trong cửa sổ dòng lệnh, hãy chạy:

# Run translator and library unit tests
make test

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

Dọn dẹp bản dựng

# Remove all files generated by the build
make clean

Bản dựng song song

Bản dựng J2ObjC hỗ trợ các bản dựng song song được chỉ định bằng cờ -j<n>, trong đó n là số lượng tác vụ đồng thời tối đa. Giá trị tối đa phụ thuộc vào tốc độ của hệ thống; bạn nên bắt đầu với -j4. Tăng số lượng để rút ngắn thời gian tạo bản dựng nếu hệ thống của bạn có thể xử lý được, và giảm số lượng nếu quá trình tạo không thành công do lỗi hệ thống.

Xây dựng cấu trúc iOS 32 bit

Cấu trúc iOS 32 bit ("iphone" và "trình mô phỏng") không được tạo theo mặc định. Bạn có thể tạo j2objc bằng các cấu hình này bằng cách chỉ định các cấu hình đó trong biến môi trường J2OBJC_ARCHS:

$ export J2OBJC_ARCHS="iphone simulator"
$ make -j8 all_dist

Thông thường, bạn có thể chỉ định một tập hợp con các cấu trúc được hỗ trợ để tăng tốc các bản dựng cục bộ, bằng cách chỉ chỉ định các cấu trúc mà ứng dụng của bạn cần. Ví dụ: để chỉ tạo iOS 64 bit ("iphone64") và trình mô phỏng liên kết với iOS 64 bit ("simulator64"), hãy xác định J2OBJC_ARCHS="iphone64 simulator64" trước khi chạy make.

Xây dựng bản phân phối đầy đủ

Mặc dù nhóm j2objc không đăng các bản phân phối tạo sẵn lên GitHub nữa do giới hạn về kích thước tệp, nhưng bạn vẫn có thể sử dụng tập lệnh "tạo mọi thứ trong một bước":

$ scripts/build_distribution.sh HEAD-<current-date> $PROTOBUF_ROOT_DIR

Tập lệnh này mất nhiều thời gian để chạy vì mọi cấu trúc cho mọi gói j2objc đều được tạo. Tuy nhiên, tính năng này rất hữu ích nếu có lỗi bản dựng chung, vì tính năng này chỉ tạo bằng tập hợp biến môi trường tối thiểu. Nếu tập lệnh build_distribution thành công nhưng các bước xây dựng thông thường không thành công, hãy kiểm tra xem có biến môi trường cục bộ nào được đặt không chính xác hay không.