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 21
  • Apache Maven
  • (Nên dùng nhưng không bắt buộc) Nguồn Google Protocol Buffer

Thiết lập Mac

  • Cài đặt công cụ dòng lệnh Xcode bằng cách chạy:
sudo xcode-select --install
  • Thêm vào .bash_profile của bạn:
export JAVA_HOME=`/usr/libexec/java_home -v 21`
  • 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 bản rẽ 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 Phân nhánh:

Rẽ nhánh

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

Tiếp theo, hãy sao chép một bản sao của nhánh rẽ 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 khay nhớ tạm:

Nhân bản

Sau đó, hãy sao chép 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++ trước khi có thể tạo J2ObjC.

Để cài đặt gói nhị phân protobuf, hãy 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 protobuf được cài đặt. 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.

Tạo J2ObjC

Để tạo từ dòng lệnh trong cửa sổ Terminal, 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

Thử nghiệm J2ObjC

Để kiểm thử qua dòng lệnh trong cửa sổ Terminal, 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ối đa các tác vụ đồng thời. Số lượng 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 xây dựng nếu hệ thống của bạn có thể xử lý, đồng thời giảm số lượng nếu quá trình tạo không thành công do lỗi hệ thống.

Tạo cấu trúc iOS 32 bit

Theo mặc định, các cấu trúc iOS 32 bit ("iphone" và "simulator") không được tạo. Bạn có thể tạo j2objc bằng cách trước tiên chỉ định các biến này trong biến môi trường J2OBJC_ARCHS:

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

Việc chỉ định một tập hợp con các cấu trúc được hỗ trợ thường có thể được dùng để tăng tốc các bản dựng cục bộ, bằng cá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 được liên kết ("simulator64"), hãy xác định J2OBJC_ARCHS="iphone64 simulator64" trước khi chạy lệnh make.

Xây dựng hình thức phân phối đầy đủ

Mặc dù nhóm j2objc không còn đăng các bản phân phối được 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 "build everything in one step" (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, điều này rất hữu ích nếu có lỗi chung khi tạo bản dựng, vì nó chỉ tạo bằng bộ 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 tạo bản 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.