דרישות
- מערכת 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יצירת Fork של פרויקט J2ObjC
כדי ליצור Fork של פרויקט J2ObjC, פותחים את הדף הראשי שלו ולוחצים על הלחצן Fork:

בוחרים את שם החשבון ב-GitHub, והמזלג ייווצר תוך כמה שניות.
לאחר מכן, משכפלים עותק של הפיצול למערכת המקומית לצורך פיתוח. קודם, לוחצים על [לחצן שיבוט או הורדה], ואז לוחצים על הלחצן 'העתקה ללוח':

לאחר מכן משכפלים לספרייה מקומית:
git clone (Command-V) # Paste the copied URLהתקנה של protobuf ו-abseil
כדי לבנות את J2ObjC, צריך להתקין את protobuf C++.
כדי להתקין את חבילת ה-protobuf הבינארית, משתמשים ב-Homebrew:
brew install protobufהגרסה של Protobuf 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 משורת פקודה בחלון Terminal, מריצים את הפקודה:
# 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
כדי לבדוק משורת פקודה בחלון Terminal, מריצים את הפקודה:
# Run translator and library unit testsmake test# Run all unit tests, including for protocol buffersmake test_all
ניקוי של Build
# Remove all files generated by the buildmake clean
פיתוח גרסאות build מקביליות
גרסת ה-build של J2ObjC תומכת בגרסאות build מקבילות, שמצוינות באמצעות הדגל -j<n>, כאשר n הוא המספר המקסימלי של משימות מקבילות. הערך המקסימלי תלוי במהירות המערכת. מומלץ להתחיל עם -j4.
כדי לקצר את זמני הבנייה, אפשר להגדיל את המספר אם המערכת יכולה להתמודד עם זה, ולהקטין אותו אם הפעולה make נכשלת בגלל שגיאות מערכת.
יצירת ארכיטקטורות iOS ב-32 ביט
ארכיטקטורות iOS 32 ביט (iphone ו-simulator) לא נוצרות כברירת מחדל. כדי לבצע build של j2objc באמצעות הארכיטקטורות האלה, צריך קודם לציין אותן במשתנה הסביבה J2OBJC_ARCHS:
$ export J2OBJC_ARCHS="iphone simulator"
$ make -j8 all_dist
בדרך כלל, אפשר לציין קבוצת משנה של ארכיטקטורות נתמכות כדי להאיץ את הבנייה המקומית, על ידי ציון רק הארכיטקטורות שהאפליקציה צריכה.
כדי ליצור רק את iOS (iphone64) 64 ביט ואת הסימולטור המשויך אליו (simulator64), לדוגמה, מגדירים את J2OBJC_ARCHS="iphone64 simulator64" לפני שמריצים את הפקודה make.
יצירת הפצה מלאה
צוות j2objc כבר לא מפרסם הפצות מוכנות מראש ב-GitHub בגלל מגבלות גודל הקובץ, אבל עדיין אפשר להשתמש בסקריפט 'build everything in one step':
$ scripts/build_distribution.sh HEAD-<current-date> $PROTOBUF_ROOT_DIR
הרצת הסקריפט הזה נמשכת זמן רב כי הוא בונה כל ארכיטקטורה לכל חבילת j2objc. עם זאת, הוא שימושי מאוד אם יש כשלים כלליים ב-build, כי הוא מתבצע רק עם קבוצת המינימום של משתני הסביבה. אם הסקריפט build_distribution מצליח אבל שלבי ה-build הרגילים לא, צריך לבדוק אם יש משתני סביבה מקומיים שהוגדרו בצורה שגויה.