دليل التطوير على منصة iOS في كوردوفا

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث

يوضح هذا الدليل كيفية إعداد بيئة تطوير SDK لنشر تطبيقات كوردوفا للأجهزة التي تعمل على أنظمة iOS مثل iPhone و iPad وكيفية استخدام أدوات سطر الأوامر المرتكزة على منصة iOS بشكل اختياري في سير عمل التطوير الخاص بك. تحتاج إلى تثبيت أدوات SDK بغض النظر عما إذا كنت ترغب في استخدام أدوات الصدفة (shell) هذه المرتكزة على منصة ios فقط أو استخدام سطر أوامر كوردوفا العابر للمنصات في عملية التطوير. وللمقارنة بين مساري التطوير، راجع صفحة نظرة عامة. للحصول على تفاصيل حول سطر أوامر كوردوفا، اطلع على صفحة واجهة سطر الأوامر في كوردوفا.

المتطلبات والدعم

تعمل أدوات Apple®‎ اللازمة لإنشاء تطبيقات iOS فقط على نظام التشغيل OS X على أجهزة Mac المستندة إلى Intel. Xcode® 8.0 (الإصدار الأدنى المطلوب) والذي يعمل فقط على الإصدار OS X 10.11.5 (الذي يدعى El Capitan) أو ما بعده، ويتضمن iOS 10 SDK (مجموعة تطوير البرامج). ولإرسال التطبيقات إلى متجر Apple App Store℠‎، يجب أن تستعمل أحدث إصدار من أدوات Apple.

يمكنك اختبار العديد من ميزات كوردوفا باستخدام محاكي iOS المثبت مع iOS SDK و Xcode، ولكنك تحتاج إلى جهاز حقيقي لاختبار التطبيق مع كامل ميزات الجهاز قبل رفعه على متجر التطبيقات. يجب أن يكون مثبتا على الجهاز الإصدار iOS 9 على الأقل، وهو الإصدار الأدنى لنظام iOS المدعوم من كوردوفا 4.4.0.

تثبيت المتطلبات

Xcode

هناك طريقتان لتنزيل Xcode همها:

  • تنزيله من المتجر App Store، إذ يمكن العثور عليه عبر البحث عنه "Xcode" في قسم التطبيقات في المتجر App Store.
  • تنزيله من صفحة التنزيلات لمطوري تطبيقات Apple، وهذا يتطلب التسجيل كمطور Apple.

بمجرد تثبيت Xcode، يجب تمكين العديد من أدوات سطر الأوامر لتشغيل كوردوفا. نفذ الأمر التالي من سطر الأوامر:

$ xcode-select --install

أدوات النشر

تتيح لك أدوات نشر التطبيق على منصة ios تشغيل تطبيقات iOS على جهاز iOS من سطر الأوامر. لتثبيته، قم بتنفيذ الأمر التالي من سطر الأوامر:

$ npm install -g ios-deploy

ضبط المشروع

سيعمل تثبيت Xcode على ضبط كل شيء مطلوب للبدء مع الجانب الأصلي من الأشياء. فيجب أن تكون الآن قادرًا على إنشاء مشروع كوردوفا وبنائه. ولمزيد من التفاصيل حول تثبيت CLI واستخدامه، ارجع إلى إنشاء صفحة إنشاء التطبيق الأول في كوردوفا.

النشر إلى المحاكي

لمعاينة التطبيق في محاكي iOS، اتبع الخطوات التالية:

  1. افتح الملف workspace من platforms/ios/HelloWorld.xcworkspace من Xcode، أو من سطر الأوامر:
    $ open ./platforms/ios/HelloWorld.xcworkspace/
    
  2. تأكد من تحديد المشروع HelloWorld في اللوحة اليمنى (الخطوة 1):
    تحديد المشروع HelloWorld وفتحه لمعاينة التطبيق في محاكي iOS.
    تحديد المشروع HelloWorld وفتحه لمعاينة التطبيق في محاكي iOS.
  3. حدد الجهاز المقصود من القائمة Scheme في شريط الأدوات، مثل محاكي iPhone 7 Plus كما هو موضح في الخطوة (2) في الصورة السابقة.
  4. اضغط على الزر Run (الخطوة 3) في نفس شريط الأدوات على يسار Scheme. هذا الزر يبني وينشر ويدير التطبيق في جهاز المحاكاة. يفتح عندئذ تطبيق المحاكاة بشكل منفصل لعرض التطبيق.
    تشغيل التطبيق HelloWorld المنشأ باستعمال كوردوفا في محاكي iOS.
    تشغيل التطبيق HelloWorld المنشأ باستعمال كوردوفا في محاكي iOS.

يمكن تشغيل جهاز محاكاة واحد فقط في كل مرة، لذلك إذا كنت ترغب في اختبار التطبيق في محاكي مختلف، فإنك تحتاج إلى إنهاء تطبيق جهاز المحاكاة الحالي وتشغيل محاكي آخر ضمن Xcode.

تأتي Xcode مجمعة مع أجهزة محاكاة لأحدث إصدارات iPhone و iPad. وقد تكون الإصدارات الأقدم متاحة من Xcode. يمكنك التحقق من ذلك عبر Xcode ‏← Preferences...‎ ‏← Components.

النشر على الجهاز

للحصول على تفاصيل حول المتطلبات المتعددة لنشرها على الجهاز، ارجع إلى قسم "تشغيل تطبيقك على الأجهزة" في هذه الصفحة. باختصار، يلزمك إجراء ما يلي قبل النشر:

1- إنشاء ملف شخصي لإدارة الحسابات في iOS Provisioning Portal. يمكنك استخدام مساعد إدارة التطوير (Development Provisioning Assistant) لإنشاء وتثبيت الملف الشخصي والشهادة التي يطلبها Xcode.

2- تحقق من تعيين إعداد "هوية توقيع الشيفرة" (Code Signing Identity) داخل قسم "توقيع الشيفرة" ضمن إعدادات الإنشاء إلى اسم ملف التعريف الخاص بك المقدم (الخطوة 1).

للنشر على الجهاز، اتبع الخطوات التالية:

1- استخدم كابل USB لتوصيل حاسوبك بالجهاز Mac

2- اختر اسم المشروع من القائمة المنسدلة Scheme لنافذة Xcode

3- اختر جهازك من القائمة المنسدلة Device. وإذا تم توصيله عبر USB ولكن لا يزال غير موجود، فاضغط على الزر Organizer لحل أي أخطاء.

4- اضغط على الزر Run لإنشاء التطبيق ونشره على جهازك

توقيع التطبيق

أولاً، يجب أن تقرأ من خلال صفحة دعم توقيع الشيفرة ومسار عمل توزيع التطبيقات.

استخدام الرايات

لتسجيل تطبيق، فإنك  تحتاج إلى المعاملات التالية:

المعامل الراية الوصف
معرف شيفرة الدخول ‎--codeSignIdentity معرِّف توقيع الشفرة لاستخدامها للتوقيع. فيمكن إنشاؤها مع Xcode وإضافتها إلى سلسلة المفاتيح الخاصة بك. بدءًا من Xcode 8 يجب عليك استخدام "‎--codeSignIdentity = "iPhone Developer كلاهما من أجل debug و release.
فريق التطوير ‎--developmentTeam فريق التطوير (معرف الفريق) لاستخدامه لتوقيع الشيفرة. يمكنك استخدام هذا الإعداد ومعرف توقيع شيفرة مبسط (مثل "iPhone Developer" فقط) للدخول على تطبيقاتك، ولا يلزمك تقديم ملف شخصي لإدارة الحسابات.
نوع الحزمة ‎--packageType سيحدد هذا نوع البنية التي يتم إنشاؤها بواسطة Xcode، إذ تتمثل الخيارات الصالحة في development (الخيار الافتراضي) و enterprise و ad-hoc و app-store.
ملف التطوير ‎--provisioningProfile (اختياري) GUID لملف التعريف الشخصي الذي سيتم استخدامه للتوقيع اليدوي حيث يتم نسخها هنا على جهاز Mac الخاص بك: ‎~/Library/MobileDevice/Provisioning\Profiles/‎. عبر فتحه في محرر نصي، يمكنك العثور على المعرف GUID العمومي الذي يحتاج إلى تحديد هنا إذا كنت تستخدم الدخول اليدوي.
قواعد مصدر توقيع الشيفرة ‎--codesignResourceRules (اختياري) يستخدم للتحكم في الملفات الموجودة في الحزمة التي يجب أن تكون مختومة بواسطة توقيع الشيفرة. وللحصول على مزيد من التفاصيل، اقرأ هذه المقالة.
معرف التزويد التلقائي --automaticProvisioning (اختياري) فعله ليتمكك Xcode من إدارة ملفات تعريف التوفير (provisioning profiles) تلقائيًا. الخيارات الصالحة هي false (الافتراضي) و true.

استخدام build.json

بدلاً من ذلك، يمكنك تحديدها في ملف الضبط (build.json) باستخدام الوسيط ‎--buildConfig إلى نفس الأوامر.  إليك عينة من ملف ضبط البناء:

للدخول التلقائي، حيث تتم إدارة ملفات التخصيص تلقائيًا بواسطة Xcode (موصى به):

{
    "ios": {
        "debug": {
            "codeSignIdentity": "iPhone Developer",
            "developmentTeam": "FG35JLLMXX4A",
            "packageType": "development",
            "automaticProvisioning": true,
            "buildFlag": [
                "EMBEDDED_CONTENT_CONTAINS_SWIFT = YES",
                "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES=NO",
                "LD_RUNPATH_SEARCH_PATHS = \"@executable_path/Frameworks\""
            ]
        },
        "release": {
            "codeSignIdentity": "iPhone Developer",
            "developmentTeam": "FG35JLLMXX4A",
            "packageType": "app-store",
            "automaticProvisioning": true,
            "buildFlag": [
                "EMBEDDED_CONTENT_CONTAINS_SWIFT = YES",
                "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES=NO",
                "LD_RUNPATH_SEARCH_PATHS = \"@executable_path/Frameworks\""
            ]
        }
    }
}

للدخول اليدوي، حدد ملفات التوفير المتوفرة بواسطة UUID:

{
    "ios": {
        "debug": {
            "codeSignIdentity": "iPhone Development",
            "provisioningProfile": "926c2bd6-8de9-4c2f-8407-1016d2d12954",
            "developmentTeam": "FG35JLLMXX4A",
            "packageType": "development"
        },
        "release": {
            "codeSignIdentity": "iPhone Distribution",
            "provisioningProfile": "70f699ad-faf1-4adE-8fea-9d84738fb306",
            "developmentTeam": "FG35JLLMXX4A",
            "packageType": "app-store"
        }
    }
}

رايات بناء Xcode

إذا كان لديك حالة مخصصة حيث تحتاج إلى تمرير رايات بناء إضافية إلى Xcode، فيمكنك عندئذٍ استخدام واحد أو أكثر من خيارات ‎--binildFlag لتمرير هذه الرايات إلى xcodebuild. وإذا استخدمت الراية xcodebuild المضمنة، فسيظهر تحذير لك.  

cordova build --device --buildFlag="MYSETTING=myvalue" --buildFlag="MY_OTHER_SETTING=othervalue"
cordova run --device --buildFlag="DEVELOPMENT_TEAM=FG35JLLMXX4A" --buildFlag="-scheme TestSchemeFlag"

يمكنك أيضًا تحديد الخيار buildFlag في build.json أعلاه (تكون قيمة المفتاح buildFlag عبارة عن سلسلة نصية أو مصفوفة من السلاسل النصية).

التنقيح

للحصول على تفاصيل حول أدوات تنقيح وتصحيح الأخطاء التي تأتي مع Xcode، راجع هذه المقالة وهذا الفيديو.

فتح مشروع ضمن Xcode

يمكن فتح مشروع كوردوفا لمنصة iOS في Xcode. و يمكن لذلك ان يكون مفيدًا إذا كنت ترغب في استخدام Xcode المدمج في أدوات تصحيح الأخطاء/الصياغة أو إذا كنت تقوم بتطوير الإضافات لنظام iOS. يرجى عندئذٍ ملاحظة أنه عند فتح مشروعك في Xcode، يوصى بعدم تحرير شيفرتك في IDE لأنَّ ذلك سيؤدي إلى تعديل الشيفرة في المجلد platforms في مشروعك (وليس في المجلد www)، وستكون التغييرات قابلة للكتابة والاستبدال. فبدلًا من ذلك، قم بتحرير المجلد www ونسخ التغييرات التي أجريتها عن طريق تنفيذ الأمر cordova build.

يجب على مطوري البرامج الإضافية الراغبين في تحرير شيفرتهم الأصلية في بيئة تطوير متكاملة (IDE) استخدام الراية ‎ --linkعند إضافة إضافة للمشروع عن طريق cordova plugin add. سيؤدي هذا إلى ربط الملفات بحيث التغييرات التي تطرأ على ملفات الإضافات في المجلد platforms تنعكس في مجلد المصدري للإضافة (والعكس صحيح).

بمجرد إضافة منصة ios إلى مشروعك وبناءها باستخدام cordova build، يمكنك فتحه من داخل Xcode. انقر نقرًا مزدوجًا لفتح الملف ‎${PROJECT_NAME}/platforms/ios/${PROJECT_NAME}.xcworkspace أو افتح Xcode من الطرفية:

$ open -a Xcode platforms/ios

يجب أن تكون الشاشة كالشكل التالي:

فتح المشروع helloworld الذي بني في كوردوفا لمنصة iOS على Xcode. 
فتح المشروع helloworld الذي بني في كوردوفا لمنصة iOS على Xcode. 

سير العمل المرتكز على منصة واحدة

يشمل cordova-ios عددًا من النصوص البرمجية التي تسمح باستخدام المنصة دون الاعتماد كليًّا على سطر أوامر كوردوفا. وقد يوفر لك مسار التطوير هذا مجموعة أكبر من خيارات التطوير في مواقف معينة غير لا يوفرها مسار العمل العابر للمنصات باستعمال سطرالأوامر. على سبيل المثال، تحتاج إلى استخدام أدوات الصدفة (shell) عند نشر عارض WebView مخصص إلى جانب المكونات الأصلية. وقبل استخدام مسار التطوير هذا، يجب عليك تهيئة بيئة SDK كما هو موضح في قسم المتطلبات والدعم أعلاه.

لكل من النصوص الموضحة أدناه، ارجع إلى واجهة سطر أوامر كوردوفا للحصول على مزيد من المعلومات حول الوسائط والاستخدام. يملك كل برنامج نصي اسمًا يطابق أمرًا في سطر الأوامر؛ فعلى سبيل المثال، cordova-ios/bin/create يكافئ cordova create.

للبدء، إما قم بتنزيل حزمة cordova-ios من npm أو من Github. لإنشاء مشروع باستخدام هذه الحزمة، قم بتشغيل البرنامج النصي create في المجلد bin:

$ cordova-ios/bin/create ...

لتشغيل التطبيق، استخدم النص البرمجي للتشغيل run في المجلد bin:

$ cordova-ios/bin/run

سيكون للمشروع الذي تم إنشاؤه مجلدًا باسم cordova بداخله يحتوي على برامج نصية لأوامر Cordova الخاصة بالمشروع (مثل run، و build ...إلخ).

لتثبيت الإضافات في هذا المشروع، استخدم الأداة المساعدة Plugman.

الترقية

اطلع على هذه المقالة للحصول على تعليمات لترقية إصدار cordova-ios الخاص بك.

(إنَّ Mac®‎ و OS X®‎ و Apple®‎ و Xcode®‎ و App Store℠‎ و iPad®‎ و iPhone®‎ و iPod®‎ و Finder®‎ هي علامات تجارية لشركة Apple Inc.)

مصادر