تدعم معظم أنواع مشاريع Xcode قواعد الإصدار، التي تسمح للمطورين بتعديل وكيف يتم إنشاء أنواع الملفات الحالية، وتحديد كيفية إنشاء أنواع الملفات الجديدة. تم تصميم النصوص البرمجية J2ObjC عمدًا للتوصيل بأنظمة إنشاء مثل Xcode.
يُعد مشروع j2objc- sample-reversi مثال على كيفية إضافة مصادر Java إلى لعبة iOS بسيطة.
يتطلب الإصدار البسيط تحديث إعدادات الإصدار، ثم إضافة قاعدة إصدار J2ObjC.
تعديل إعدادات الإصدار
- انقر على المشروع في Project Navigator (أداة التنقّل في المشروع) لفتح محرِّر المشروع وتأكَّد من تم تحديد هدف التطبيق.
- انقر على علامة التبويب إعدادات الإصدار.
- يمكنك ربط مكتبة محاكاة JRE (
jre_emul
) من خلال إضافة-ljre_emul
إلى علامات ربط أخرى. من المفترض أن يظهر على النحو التالي: - انقر على + لاختيار إضافة إعداد من تحديد المستخدم.
- أدخِل اسمًا للإعداد
J2OBJC_HOME
واضبط قيمته على موقع J2ObjC. من المفترض أن يؤدي هذا المجلد الناتج عن فك ضغط الإصدار المضغوط أو المجلدj2objc/dist
إذا أجريت التجميع من المصدر وكان الجذر هوj2objc
. - ضمن مسارات البحث، عدِّل ما يلي:
- مسارات بحث الإطار إضافة
${J2OBJC_HOME}/frameworks
- أضِف
${J2OBJC_HOME}/lib
في مسارات البحث في المكتبة (لكل إعدادات عملية الإنشاء). - أضِف مسارات البحث في عناوين المستخدمين
${J2OBJC_HOME}/include
.
- مسارات بحث الإطار إضافة
- أكِّد إعداداتك من خلال البحث عن "
J2OBJC_HOME
". من المفترض أن يظهر لك محتوى مشابه لما يلي:
إضافة قاعدة بناء J2ObjC
حدِّد الدليل الجذري لملفات مصدر Java، والذي سنسميه
$source-root
الدليل الجذر هو الدليل الذي يحتوي على الجزء العلوي حزمة ملفات المصدر.إذا كنت تستخدم git وتود سحب ملفات Java من مشروع git آخر، فيمكنك إضافة وحدة فرعية لتتبّع المشروع باستخدام Java المصادر. على سبيل المثال، لنفترض أن مشروع Xcode (xcodeproj) في
~/dev/MyProject
، ثم من المحتمل أن يحتوي على دليلMyProject
آخر مع مصدر Objective-C الخاص بك. في جلسة المعمل، تشغيل الدليل~/dev/MyProject/MyProject
منgit submodule add git@github.com:user/javaproject
إلى إنشاء دليل~/dev/MyProject/MyProject/javaproject
يتضمّن مصدر مشروع Java بجانب مصادر الهدف-ج. يمكنك بعد ذلك سحب هذا المجلد إلى مشروع Xcode ضمن المجموعةMyProject
، التي تتضمن ميزة Xcode النسخ المطابق لنظام الملفات.${PROJECT_DIR}/MyProject/javaproject/src
هي$source-root
.إذا كانت مصادر Java ضمن مجموعة أو دليل في مشروع Xcode، سيتم تغيير السمة
$source-root
${PROJECT_DIR}/__group_or_directory_name__
.إذا كنت في حيرة من أمرك، فانقر بزر الماوس الأيمن فوق هذه المجموعة أو الدليل وحدد "عرض" في "الباحث" (Finder) الدليل واستخدام المسار المطلق.
على سبيل المثال، إذا كان لديك حزمة Java
foo.bar
في دليل يُسمى~/myproject/src
، يجب أن تكون ملفات Java لهذه الحزمة في~/myproject/src/foo/bar/**.java
-- وهذا يعني~/myproject/src
هو الدليل الجذري لمشروعك.إذا كانت ملفات مصدر Java خارجية عن مشروع Xcode، أدخِل المسار الكامل المستخدَم عند وإدراجها في نافذة طرفية.
انقر على المشروع في Project Navigator (أداة التنقّل في المشروع) لفتح محرِّر المشروع وتأكَّد من تم تحديد هدف التطبيق.
انقر على علامة التبويب إنشاء القواعد.
انقر على + لإضافة قاعدة إصدار.
بالنسبة إلى خيار المعالجة للقاعدة الجديدة، اختَر "ملفات مصدر جافا". يجب أن يكون الخيار استخدام هو "نص برمجي مخصص:".
في مربّع نص النص البرمجي المخصّص، أضِف ما يلي (تذكر استبدال
$source-root
):if [ ! -f "${J2OBJC_HOME}/j2objc" ]; then echo "J2OBJC_HOME is not correctly defined, currently set to '${J2OBJC_HOME}'"; exit 1; fi; "${J2OBJC_HOME}/j2objc" -d ${DERIVED_FILE_DIR} -sourcepath "$source-root" --no-package-directories -g ${INPUT_FILE_PATH};
في لوحة "ملفات الإخراج"، انقر على الزر + وأضِف:
${DERIVED_FILE_DIR}/${INPUT_FILE_BASE}.h
.انقر على الزر + مرة أخرى وأضِف
${DERIVED_FILE_DIR}/${INPUT_FILE_BASE}.m
.
عند الانتهاء، يُفترض أن تبدو لوحة الإعدادات على النحو التالي (ملاحظة: اعتبارًا من 10.2، لا يزال Xcode يحدد المتغير DERIVED_Files_DIR هو نفسه المتغير DERIVED_FILE_DIR للتوافق مع الأنظمة القديمة):
ربط المكتبات الإضافية
تحتاج خطوة إنشاء الرابط (مرحلة إنشاء "Link Binary With Libraries" في Xcode) إلى علامات خاصة بـ J2ObjC، والتي تختلف بناءً على كيفية استخدام تطبيقك لفئات Java المترجمة. للحصول على قائمة كاملة، راجِع إعدادات الروابط المطلوبة. إليك بعض الأمثلة أمثلة للمكتبات الإضافية التي قد تحتاج إلى ربطها:
- لاستخدام حزمة
java.util.zip
، يجب ربط مكتبة libz.dylib عن طريق إضافة-ljre_zip
إلى علامات الروابط الأخرى. - لإنشاء تجزئة آمنة، يجب إضافة إطار عمل الأمان إلى مشروعك.
تصحيح أخطاء الإصدار
إذا أبلغ Xcode عن تعذُّر إنشاء الإصدار باتّباع هذه الخطوات، افتح أداة استكشاف المشاكل. والنقر فوق الخطأ لفحص التفاصيل. سيعرض هذا تفاصيل سطر الأوامر تم توقيعه. في ما يلي بعض الأخطاء الشائعة:
لا يمكن حلّ الفئة: على الأرجح، كانت قيمة
$source-path
التي استخدمتها غير صحيحة. ابحث عن الخيار-sourcepath
في الأمر الذي تم تنفيذه وتأكَّد من أنّه يشير إلى الدليل الجذري لملفات مصدر Java."JreEmulation.h" لم يتم العثور على الملف - على الأرجح ستكون المشكلة مشكلة بحث في عناوين المستخدم "المسارات". ابحث في أمر الإصدار عن الخيار
-I
الذي يتضمّن المسار. إذا بدا الأمر على ما يرام، انسخ المسار (وليس -I) وفي نافذة طرفية، نفِّذls
مع هذا المسار للتحقّق منه. ليس خطأ إملائيًا."_IOSClass_FromClass" ، المُشار إليها من: أو "_OBJCClass$_Java"، أو المكتبة مسارات البحث غير صحيحة أو نسيت ربط مكتبة محاكاة JRE من خلال الإعداد غير ذلك يُعلم الرابط عن
-ljre_emul
. قد تحتاج أيضًا إلى ربط مكتبات إضافية.الرموز غير المحدّدة: _iconv* - رابط في مكتبة الرموز المطلوبة
إذا استمرّت المشكلة، يمكنك طلب مجموعة مناقشة j2objc.