דרישות
- מערכת Apple Mac OS X
- הגרסה העדכנית ביותר של Xcode
- JDK JDK 11 מותקן
- Apache Maven
- (מומלץ, אבל לא חובה) מקור של Google Protocol Buffer
הגדרה ב-Mac
- כדי להתקין את כלי שורת הפקודה של Xcode, מריצים את הפקודה:
sudo xcode-select --install
- מוסיפים ל
.bash_profile
:
export JAVA_HOME=`/usr/libexec/java_home -v 11`
- אם Maven לא מותקן (אפשר לנסות להריץ את הפקודה
mvn -version
במסוף), משתמשים ב-Homebrew:
brew install maven
יצירת פורק (fork) של פרויקט J2ObjC
כדי ליצור פורק מקור של פרויקט J2ObjC, פותחים את הדף הראשי שלו ולוחצים על הלחצן Fork:
בוחרים את שם החשבון ב-GitHub, וההסתעפות תיווצר תוך כמה שניות.
בשלב הבא, משכפלים עותק של ההסתעפות למערכת המקומית לצורכי פיתוח. קודם לוחצים על [לחצן ההעתקה או ההורדה], ואז על הלחצן 'העתקה ללוח':
לאחר מכן, מעתיקים את המקור לספרייה מקומית:
git clone (Command-V) # Paste the copied URL
התקנה של protobuf ו-abseil
כדי ליצור J2ObjC, צריך להתקין את protobuf C++.
כדי להתקין את החבילה הבינארית של protobuf, משתמשים ב-Homebrew:
brew install protobuf
ה-build של 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
כדי לבנות משורת פקודה בחלון Terminal, מריצים את הפקודה:
# 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
בדיקת J2ObjC
כדי לבדוק משורת הפקודה בחלון Terminal, מריצים את הפקודה:
# Run translator and library unit tests
make test
# Run all unit tests, including for protocol buffers
make test_all
ניקוי build
# Remove all files generated by the build
make clean
פיתוח גרסאות build במקביל
ה-build של J2ObjC תומך ב-builds מקבילים, שמצוינים באמצעות הדגל -j<n>
, כאשר n הוא המספר המקסימלי של משימות בו-זמנית. הערך המקסימלי תלוי במהירות המערכת. מומלץ להתחיל ב--j4
.
אם המערכת שלכם יכולה להתמודד עם זה, תוכלו להגדיל את המספר כדי לקצר את זמני ה-build. אם הפקודה make נכשלת עם שגיאות מערכת, תוכלו להקטין את המספר.
פיתוח ארכיטקטורות של iOS ב-32 ביט
הארכיטקטורות של iOS ב-32 ביט ('iphone' ו-'simulator') לא נוצרות כברירת מחדל. כדי ליצור את j2objc באמצעות הערכים האלה, צריך לציין אותם קודם במשתנה הסביבה J2OBJC_ARCHS:
$ export J2OBJC_ARCHS="iphone simulator"
$ make -j8 all_dist
בדרך כלל, כדי לזרז את ה-build המקומי, אפשר לציין רק את הארכיטקטורות הנדרשות לאפליקציה, כקבוצת משנה של הארכיטקטורות הנתמכות.
כדי ליצור רק את גרסת iOS ל-64 ביט (iphone64) ואת הסימולטור המשויך לה (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 רק עם קבוצת משתני הסביבה המינימלית. אם הסקריפט build_distribution מצליח אבל שלבי ה-build הרגילים לא מצליחים, צריך לבדוק אם יש משתני סביבה מקומיים שהוגדרו באופן שגוי.