المبنى J2ObjC

المتطلبات

  • نظام التشغيل 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

لإنشاء نسخة من مشروع J2ObjC، افتح صفحته الرئيسية وانقر على الزر "إنشاء نسخة":

تشعّب

اختَر اسم حسابك على GitHub، وسيتم إنشاء النسخة المتفرّعة في غضون بضع ثوانٍ.

بعد ذلك، استنسِخ نسخة من الفرع إلى نظامك المحلي لتطويره. أولاً، انقر على الزر [Clone or download] (استنساخ أو تنزيل)، ثم انقر على الزر Copy to Clipboard (نسخ إلى الحافظة):

نسخة طبق الأصل

بعد ذلك، استنسِخها في دليل محلي:

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

تثبيت protobuf وabseil

يجب تثبيت protobuf C++ قبل أن تتمكّن من إنشاء J2ObjC.

لتثبيت حزمة 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 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

لاختبار ذلك من سطر الأوامر في نافذة "الوحدة الطرفية"، شغِّل ما يلي:

# Run translator and library unit tests
make test

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

تنظيف إصدار

# Remove all files generated by the build
make clean

عمليات الإنشاء المتوازية

يتيح إصدار J2ObjC إنشاء عمليات إنشاء متوازية، ويتم تحديدها باستخدام العلامة -j<n>، حيث يمثّل n الحد الأقصى لعدد المهام المتزامنة. يعتمد الحد الأقصى على سرعة نظامك، ونقترح البدء بـ -j4. يمكنك زيادة العدد لتقليل أوقات الإنشاء إذا كان نظامك يتحمّل ذلك، وتقليله إذا تعذّر الإنشاء بسبب أخطاء في النظام.

إنشاء بنى 32 بت لنظام التشغيل iOS

لا يتم إنشاء بنى iOS ذات 32 بت ("iphone" و "simulator") تلقائيًا. يمكنك إنشاء j2objc باستخدام هذه الخيارات من خلال تحديدها أولاً في متغيّر البيئة J2OBJC_ARCHS:

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

يمكن بشكل عام استخدام تحديد مجموعة فرعية من البِنى المتوافقة لتسريع عمليات الإنشاء المحلية، وذلك من خلال تحديد البِنى التي يحتاجها تطبيقك فقط. لإنشاء إصدار iOS بنظام 64 بت فقط ("iphone64") والمحاكي المرتبط به ("simulator64")، على سبيل المثال، حدِّد J2OBJC_ARCHS="iphone64 simulator64" قبل تشغيل make.

إنشاء التوزيع الكامل

على الرغم من أنّ فريق j2objc لم يعُد ينشر حِزمًا مسبقة الإنشاء على GitHub بسبب القيود المفروضة على حجم الملفات، يمكن الاستمرار في استخدام البرنامج النصي "إنشاء كل شيء في خطوة واحدة" باتّباع الخطوات التالية:

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

يستغرق تنفيذ هذا النص البرمجي وقتًا طويلاً لأنّه يتم إنشاء كل بنية لكل حزمة j2objc. ومع ذلك، يكون هذا الخيار مفيدًا جدًا في حال حدوث أخطاء عامة في الإنشاء، لأنّه يتم الإنشاء باستخدام الحد الأدنى فقط من مجموعة متغيرات البيئة. إذا نجح النص البرمجي build_distribution ولكن لم تنجح خطوات الإنشاء العادية، راجِع ما إذا تم ضبط أي متغيرات بيئة محلية بشكل غير صحيح.