المبنى J2ObjC

المتطلبات

  • نظام التشغيل Apple Mac OS X
  • أحدث إصدار من Xcode
  • تثبيت 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

إنشاء نسخة من مشروع J2ObjC

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

Fork

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

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

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

بعد ذلك، يمكنك استنساخها في دليل على الجهاز:

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

للاختبار من سطر أوامر في نافذة Terminal، نفِّذ ما يلي:

# 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. يمكنك زيادة العدد لتقليل أوقات الإنشاء إذا كان النظام قادرًا على التعامل مع ذلك، ويمكنك خفضه إذا تعذّر إنشاء الإصدار بسبب أخطاء في النظام.

إنشاء تصاميم معمارية لنظام التشغيل iOS بإصدار 32 بت

لا يتم إنشاء معماريات iOS بنظام 32 بت ("iphone" و "محاكي") بشكلٍ تلقائي. يمكنك إنشاء 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 من إكمال الخطوات بنجاح ولكنّ خطوات الإنشاء العادية لم تنجح، راجِع ما إذا تم ضبط أي متغيّرات للبيئة المحلية بشكلٍ غير صحيح.