المبنى J2ObjC

المتطلّبات

  • نظام Apple Mac OS X
  • أحدث إصدار من Xcode
  • تم تثبيت JDK JDK 11
  • Apache Maven
  • (مُوصى به ولكن غير مطلوب) مصدر مخزن البروتوكولات المؤقت من Google

إعداد Mac

  • ثبِّت أدوات سطر أوامر Xcode من خلال تنفيذ:
sudo xcode-select --install
  • الإضافة إلى .bash_profile:
export JAVA_HOME=`/usr/libexec/java_home -v 11`

إنشاء شوكة لمشروع J2ObjC

لتسجيل مشروع J2ObjC، افتح صفحته الرئيسية وانقر فوق الزر "Fork" (شوكة):

Fork

حدد اسم حسابك على جيت هب، وسيتم إنشاء الشوكة في بضع ثوانٍ.

بعد ذلك، انسخ نسخة من الشوكة إلى نظامك المحلي من أجل تطويرها. أولاً، انقر فوق [نسخ أو زر تنزيل]، ثم انقر فوق الزر نسخ إلى الحافظة:

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

ثم استنساخها في دليل محلي:

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

تثبيت Protobuf

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

لتثبيت حزمة protobuf الثنائية، استخدِم Homebrew:

brew install protobuf

يجب ضبط PROTOBUF_ROOT_DIR على الجذر حيث تم تثبيت protobuf. عادةً، هذا هو الإعداد التلقائي للبيرة /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 full distribution (including frameworks)
make frameworks

# 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 Protocol Buffers ووقت التشغيل تثبيت المخازن المؤقتة للبروتوكولات (على الأقل 3.21.3):

  • نزِّل رمز المصدر من إصدار Protocol Buffers 3.21.7.
  • اتَّبِع تعليمات تثبيت C++ من README. يُرجى الانتباه إلى خيار --prefix لتحديد موقع التثبيت.
  • حدِّد متغيّر بيئة PROTOBUF_ROOT_DIR للإشارة إلى موقع تثبيت البروتوكولات الاحتياطية.

نشر ميزات لغة Java 8.

يمكنك الاطّلاع على الإشعار. بالإضافة إلى الخطوات الواردة في القسم السابق، يجب إنشاء وحدة JRE باستخدام JDK 11:

JAVA_HOME=`/usr/libexec/java_home -v 11` \
make -C jre_emul/ -f java.mk emul_module_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. يمكنك زيادة العدد لتقصير أوقات الإصدار إذا كان نظامك قادرًا على التعامل معها، وتقليلها في حالة حدوث إخفاقات مع أخطاء في النظام.

بنية معالجات المباني

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

$ export J2OBJC_ARCHS="iphone simulator macosx iphone64 watchv7k watch64 watchsimulator simulator64"
$ make -j8 all_dist

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