في هذه المقالة ، نشارك تجربة إنشاء تطبيقات iOS وتقديمها للمستخدمين ، والتي اكتسبها Plarium Krasnodar في عملية تصحيح أخطاء CI / CD.
تدريب
كل شخص مرتبط بشكل أو بآخر بتطوير تطبيقات لأجهزة Apple ، تمكن بالفعل من تقدير الراحة المثيرة للجدل للبنية التحتية. توجد التعقيدات في كل مكان ، من قائمة ملف تعريف المطور إلى أدوات التصحيح والبناء.
هناك الكثير من المقالات حول "الأساسيات" على الشبكة ، لذلك سنحاول تسليط الضوء على الشيء الرئيسي. إليك ما تحتاجه لبناء التطبيق بنجاح:
ولدت شهادة المطور، والتي سيتم استخدامها أيضًا للتوقيع على الطلب ؛
التطبيق الذي تم إنشاؤه باستخدام ملف ID (يجب ملاحظة أهمية معرف الحزمة ، لأن استخدام معرف حرف البدل يجعل من المستحيل استخدام العديد من وظائف التطبيق ، على سبيل المثال: المجالات المرتبطة وإشعارات الدفع و Apple تسجيل الدخول وغيرها) ؛
يجب إنشاء شهادة مطور عبر Keychain على أي جهاز macOS. نوع الشهادة مهم جدا. اعتمادًا على بيئة التطبيق (Dev ، QA ، Staging ، Production) ، ستختلف (التطوير أو التوزيع) ، بالإضافة إلى نوع ملف تعريف توقيع التطبيق.
الأنواع الرئيسية للملفات الشخصية:
التطوير - مصمم للتوقيع على طلب فريق التطوير ، يتم استخدام شهادة التطوير (اكتب اسم iPhone Developer: XXXXX) ؛
Ad Hoc - مخصص لتوقيع تطبيق الاختبار والتحقق الداخلي من قبل قسم ضمان الجودة ، باستخدام شهادة التوزيع الخاصة بالمطور (اسم النوع iPhone Distribution: XXXXX) ؛
App Store هو إصدار إصدار للاختبار الخارجي عبر TestFlight وتحميله إلى App Store ، باستخدام شهادة توزيع المطور.
عند إنشاء ملفات تعريف التطوير والمخصصة ، يشار إليها أيضًا قائمة الأجهزة، حيث يمكنك تثبيت الإصدار ، والذي يسمح لك بمزيد من تقييد الوصول للمستخدمين. لا توجد قائمة بالأجهزة في ملف تعريف App Store ، نظرًا لأن TestFlight ، الذي ستتم مناقشته لاحقًا ، مسؤول عن التحكم في الوصول أثناء الاختبار التجريبي المغلق.
من أجل الوضوح ، يمكنك تقديم ملف تعريف المطور في شكل جدول أدناه. هذا يجعل من السهل فهم معلمات التجميع التي نحتاجها ومن أين نحصل عليها.
جمعية
لتسهيل فصل التجميعات حسب المشروع والبيئة ، نستخدم أسماء ملفات تعريف النموذج ${ProjectName}_${Instance}، أي اسم المشروع + مثيل (اعتمادًا على بيئة التطبيق: Dev و QA و GD و Staging و Live وما إلى ذلك).
عند الاستيراد إلى خادم الإنشاء ، يغير ملف التعريف اسمه إلى معرف فريد وينتقل إلى المجلد /Users/$Username/Library/MobileDevice/Provisioning Profiles (أين $Username يطابق اسم حساب المستخدم لخادم الإنشاء).
هناك طريقتان لتجميع ملف * .ipa - ملف قديم (PackageApplication) وحديث (من خلال إنشاء XcAchive وتصديره). تعتبر الطريقة الأولى قديمة ، حيث تمت إزالة وحدة حزم ملف التطبيق من توزيع Xcode منذ الإصدار 8.3. لاستخدامه ، تحتاج إلى نسخ الوحدة النمطية من Xcode القديم (الإصدار 8.2 وما قبله) إلى المجلد: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/
$Method - طريقة التسليم ، تتوافق مع نوع ملف تعريف توقيع التطبيق ، أي بالنسبة للتطوير ، ستكون القيمة هي التطوير ، لـ Ad Hoc - ad-hoc ، و App Store - متجر التطبيقات.
$BundleID - معرف التطبيق المحدد في إعدادات التطبيق. يمكنك التحقق من الأمر:
defaults read $ProjectDir/Info CFBundleIdentifier
$DevAccName и $ProfileId - إعدادات اسم المطور ومعرف ملف تعريف التوقيع التي تم استخدامها مسبقًا ويجب أن تتطابق مع القيم الموجودة في إعدادات التصدير.
$TeamID - معرف مكون من عشرة أرقام بين قوسين بعد اسم المطور ، على سبيل المثال: iPhone Developer: ...... (XXXXXXXXXX) ؛ يمكن التحقق منها في Keychain.
بعد ذلك ، باستخدام أمر التصدير ، نحصل على ملف * .ipa الضروري:
كما ترى ، يحتوي البيان تقريبًا على جميع المعلمات المتضمنة في إنشاء التطبيق.
إصدار التطبيق ($AppVersion) باستخدام الأمر:
defaults read $ProjectDir/Info CFBundleVersion
المعلمة $ipaUrl يحتوي على ارتباط مباشر لتنزيل ملف * .ipa. من الإصدار السابع لنظام iOS ، يجب تثبيت التطبيق عبر HTTPS. في الإصدار الثامن ، تغير تنسيق البيان بشكل طفيف: تمت إزالة الكتل التي تحتوي على إعدادات رموز التطبيقات الخاصة بالعرض.
<images>
<image>...</image>
</images>
وبالتالي ، لتثبيت التطبيق ، يكفي وجود صفحة html بسيطة مع ارتباط مثل هذا:
كقيمة معلمة -p يمكنك أن تأخذ القيمة $AppPswd في شكل غير مشفر (صريح).
ومع ذلك ، كما ذكرنا سابقًا ، من وجهة نظر الأداء ، من الأفضل اختيار مفتاح API لترخيص altool ، نظرًا لأن الإصدارات المختلفة من Xcode بها مشكلات معينة ("لا ترى" سلسلة المفاتيح ، وأخطاء التفويض عند التحميل ، وما إلى ذلك. ).
هذا ، في الواقع ، كل شيء. أتمنى أن يشارك كل شخص في إنشاءات ناجحة وإصدارات خالية من المتاعب في متجر التطبيقات.