需求條件
- Apple Mac OS X 系統
- 最新版 Xcode
- 已安裝 JDK 21
- Apache Maven
- (建議但不強制) Google Protocol Buffer 來源
Mac 設定
- 執行下列指令,安裝 Xcode 指令列工具:
sudo xcode-select --install- 將下列項目新增至
.bash_profile:
export JAVA_HOME=`/usr/libexec/java_home -v 21`- 如果未安裝 Maven (請在終端機中嘗試
mvn -version),請使用 Homebrew:
brew install maven建立 J2ObjC 專案的 Fork
如要分叉 J2ObjC 專案,請開啟其主要頁面,然後按一下「Fork」按鈕:

選取 GitHub 帳戶名稱,系統會在幾秒內建立分叉。
接著,將分支副本複製到本機系統進行開發。首先,點選「Clone or download」按鈕,然後點選「Copy to Clipboard」按鈕:

然後複製到本機目錄:
git clone (Command-V) # Paste the copied URL安裝 protobuf 和 abseil
您必須先安裝 protobuf C++,才能建構 J2ObjC。
如要安裝 protobuf 二進位套件,請使用 Homebrew:
brew install protobufProtobuf C++ 建構作業現在依附於 Abseil 程式庫,因此請一併安裝:
brew install abseil您必須將 PROTOBUF_ROOT_DIR 設為安裝 protobuf 的根目錄。
通常是 Homebrew 預設值 /usr/local。請將以下內容新增到 .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 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
測試 J2ObjC
如要在終端機視窗中透過指令列進行測試,請執行下列指令:
# Run translator and library unit testsmake test# Run all unit tests, including for protocol buffersmake test_all
清除建構作業
# Remove all files generated by the buildmake clean
平行建構
J2ObjC 建構作業支援平行建構,可使用 -j<n> 標記指定,其中 n 是並行工作數量上限。最大值取決於系統速度,建議從 -j4 開始。如果系統可以處理,請增加數量來縮短建構時間;如果 make 因系統錯誤而失敗,請減少數量。
建構 32 位元 iOS 架構
系統預設不會建構 32 位元 iOS 架構 (「iphone」和「simulator」)。如要使用這些架構建構 j2objc,請先在 J2OBJC_ARCHS 環境變數中指定這些架構:
$ export J2OBJC_ARCHS="iphone simulator"
$ make -j8 all_dist
一般來說,指定支援架構的子集,即可只指定應用程式需要的架構,加快本機建構速度。舉例來說,如要只建構 64 位元 iOS (「iphone64」) 和相關聯的模擬器 (「simulator64」),請在執行 make 前定義 J2OBJC_ARCHS="iphone64 simulator64"。
建立完整發布內容
雖然 j2objc 團隊已不再將預先建構的發布內容發布至 GitHub,因為檔案大小有限制,但您仍可使用「build everything in one step」指令碼:
$ scripts/build_distribution.sh HEAD-<current-date> $PROTOBUF_ROOT_DIR
由於系統會為每個 j2objc 套件的每個架構建構,因此這個指令碼需要很長時間才能執行。不過,如果發生一般建構失敗,這項功能就非常實用,因為它只會使用最少的環境變數集進行建構。如果 build_distribution 指令碼成功,但一般建構步驟失敗,請檢查是否有任何本機環境變數設定錯誤。