قم بتطوير وتوزيع تطبيقات iOS بدون Mac باستخدام Flutter
نشرت: 2019-08-23ملاحظة من المحرر: في M Liquido ، ندعم مجتمع عشاق Flutter ويسعدنا دائمًا المساهمة في مشاركة المعرفة عبر شبكة Flutter. اليوم ، نقدم مقال الضيف بواسطة Codemagic ، الذي تناول موضوع تطوير تطبيق iOS باستخدام Flutter و ... بدون جهاز macOS. استمتع بكل قطعة منها!
في معظم الأوقات ، يتم تطوير تطبيقات iOS وتوزيعها من أجهزة macOS. من الصعب تخيل تطوير تطبيقات لمنصة iOS بدون macOS. ومع ذلك ، مع الجمع بين Flutter و Codemagic ، يمكنك تطوير وتوزيع تطبيقات iOS دون استخدام macOS. في منشورنا السابق ، أوضحنا عملية توقيع التعليمات البرمجية لتطبيقات iOS بدون جهاز Mac. في هذا المنشور ، سنغطي بالتفصيل عملية تطوير تطبيقات Flutter على نظام Linux واستخدام توقيع رمز مخصص / يدوي باستخدام Codemagic للتحكم الكامل في توقيع التطبيق على مثال تطبيق Comagic-Demo.
تطوير تطبيقات Flutter على Linux
Flutter عبارة عن إطار عمل لتطوير تطبيقات الأجهزة المحمولة عبر الأنظمة الأساسية والذي يمكّن من تطوير تطبيقات iOS و Android من نفس كود المصدر. ومع ذلك ، لا يمكن تجميع أطر عمل Apple الأصلية المستخدمة لتطوير تطبيقات iOS على أنظمة أساسية أخرى مثل Linux أو Windows. تتطلب مكونات iOS الأصلية نظام macOS أو Darwin لتطوير وتوزيع تطبيقات iOS. ومع ذلك ، تسمح لنا تقنيات مثل Flutter بتطوير تطبيقات عبر الأنظمة الأساسية على Linux أو Windows ويمكننا بعد ذلك توزيع التطبيقات على متجر Google Play أو Apple App Store باستخدام حل Codemagic CI / CD.
الحصول على تطبيق Flutter على نظام Linux
يمكن إنشاء تطبيقات Android واختبارها ونشرها من نظام Linux الأساسي. يمكننا الاستفادة من ميزة Android هذه لتمكين تطوير تطبيق Flutter على Linux. يُطلق على تطبيق Flutter اسم Comagic-Demo. سنستخدم هذا التطبيق لإظهار كيفية الإنشاء لنظامي التشغيل Android و iOS على نظام Linux. ومع ذلك ، ضع في اعتبارك أنه لا يمكننا التطوير إلا مقابل Android على Linux وليس iOS. سنستمر في الحصول على تطبيق iOS الذي يمكن نشره في App Store أثناء تطوير تطبيق Android على Linux. يمكننا الحصول على Comagic-Demo الخاص بنا على Linux باستخدام طرق مختلفة.
احصل على جهاز لينوكس
إذا كان لديك بالفعل جهاز كمبيوتر مثبت عليه نظام Linux ، فستكون العملية برمتها سهلة. عليك فقط تثبيت Android SDK و Flutter على جهاز Linux. بمجرد استنساخ تطبيق Comagic-Demo ، يمكننا البدء في العمل عليه على الفور.
إنشاء حاويات Docker
هناك طريقة أخرى للحصول على تطبيق Flutter على Linux وهي استخدام Docker. إذا كنت معتادًا على نظام Docker البيئي ، فيمكنك إنشاء Dockerfile الذي تم تثبيت Android SDK و Flutter عليه. هناك العديد من ملفات Android Dockerfiles على Dockerhub ، نحتاج فقط إلى توسيع هذه الصور باستخدام Flutter SDK. دعنا ننشئ Dockerfile بسيطًا يمد نموذجًا لصورة عامل إرساء Android هنا للحصول على بيئة Android و Flutter في حاوية Docker. يجب أن يقوم Dockerfile بنسخ التطبيق إلى الحاوية وتشغيل بيئة Flutter Android. سيبدو مثال Dockerfile لـ Comagic-Demo كما يلي:
من runmymind / docker-android-sdk تشغيل mkdir / codemagic-demo WORKDIR / codemagic-demo يضيف . / codemagic-demo قم بتشغيل apt-get update && \ apt-get install -y lcov git-core curl unzip && \ بوابة استنساخ https://github.com/flutter/flutter.git && \ / flutter / bin / flutter doctor && \ apt-get remove -y curl unzip && \ apt autoremove -y && \ rm -rf / var / lib / apt / list / * مسار ENV $: / flutter / bin / cache / dart-sdk / bin: / flutter / bin طبيب رفرفة RUN
مقتطف الشفرة هذا مخصص لأغراض التوضيح فقط ، ولكن يمكنك تخصيص Dockerfile وفقًا لاحتياجاتك. بمجرد تثبيت Dockerfile و Docker ، يمكنك الحصول على تطبيق Codemagic باستخدام Docker.
بناء عامل ميناء -t codemagic-demo. تشغيل docker $ - الاسم codemagic-demo
بمجرد تشغيل هذه الأوامر ، سيكون لدينا حاوية Docker تعمل مع بيئة Flutter.
سيكون تطبيق Dockerising Futter موضوعًا مختلفًا وسنقوم بتغطيته بالتفصيل في منشور مستقبلي.
إنشاء أصول توقيع التعليمات البرمجية من App Store Connect
لتوقيع تطبيقات iOS ، تحتاج إلى حساب مطور Apple ، وشهادة تطوير وتوزيع ، ومعرف التطبيق الخاص بك ، وملفات تعريف التوفير التي تم إنشاؤها للتطبيق. لقد قمنا بتغطية تفاصيل أنشطة توقيع الرمز في منشور سابق. من أجل تكوين توقيع التعليمات البرمجية يدويًا لتطوير أو تصحيح أخطاء تطبيقات iOS على Codemagic ، نحتاج إلى الأشياء التالية:
- شهادة تطوير أو توزيع بصيغة P12
- ملف التوفير الذي تم تنزيله من App Store Connect أو بوابة Apple Developer
- معرّف حزمة تطبيق iOS
يمكننا تنزيل كل من الشهادة وملفات تعريف التوفير من أقسام الشهادات والمعرفات وملفات التعريف في بوابة مطوري Apple. في
وبالمثل ، يمكننا تنزيل ملفات تعريف التوفير من بوابة مطوري Apple.
نحتاج إلى شهادة وملف تعريف توفير لتوقيع تطبيق iOS الخاص بنا على Codemagic ، لذا احفظ هذه الملفات لاستخدامها لاحقًا.
تحديث ملفات مشروع Xcode
الآن ، لدينا جميع أصول توقيع الكود من بوابة مطوري Apple. بعد ذلك ، نحتاج إلى فرز ملف مشروع Xcode لاستخدام توقيع الكود اليدوي مع الفريق الصحيح وملف تعريف التزويد. يمكننا القيام بذلك باستخدام برنامج نصي من Ruby باستخدام Xcodeproj Gem أو يمكننا فقط تغيير الحقول التالية في ملف i os / YOUR_APP.xcodeproj / project.pbxproj .

- DevelopmentTeam = YOUR_DEVELOPMENT_TEAM_ID
- ProvisioningStyle = يدوي
- PROVISIONING_PROFILE_SPECIFIER = NAME_OF_YOUR_PROVISIONING_PROFILE
في تطبيق Codemagic-Demo الخاص بنا ، يتعين علينا تحرير ملف مشروع Xcode هنا على GitHub. يجب أن نتأكد من إجراء هذه التغييرات لتكوين تصحيح الأخطاء للبنيات الداخلية وتكوين الإصدار لإصدارات App Store. بمجرد تعيين القيم في project.pbxproj ، نكون مستعدين لنشر تطبيق iOS من Codemagic دون أي مشاكل.
إعداد تسجيل التعليمات البرمجية يدويًا في Codemagic
عند التطوير على Linux ، يمكننا فقط رؤية حالة تطبيق Android حيث لا يمكن تثبيت أدوات Xcode و iOS أو تشغيلها على Linux. هناك بعض الجهود المستمرة لجلب أدوات Swift و iOS على نظام Linux ولكن الأمر سيستغرق الكثير من الوقت. عندما نكون مستعدين لتوزيع التطبيقات ، يمكننا بسهولة إعداد CI / CD للتطبيق باستخدام Codemagic ، انظر دليل البدء هنا. OnCodemagic ، يمكننا تمكين توقيع رمز iOS من قسم النشر عن طريق تحميل الشهادة وملف تعريف التوفير الذي قمنا بتنزيله من بوابة مطوري Apple. في تطبيق Codemagic ، انتقل إلى الإعدادات ← نشر ← توقيع رمز iOS ← يدوي وتحميل شهادتك وملف تعريف التوفير هناك.
عند تشغيل الإصدار الآن ، ستحصل على تطبيق iOS في شكل ملف IPA والذي يمكن نشره على الأجهزة المتوفرة. ستبدو قائمة عناصر البناء على Codemagic كما يلي:
كما يمكن رؤيته في قسم العناصر الأثرية ، حصلنا على codemagic_demo.ipa بالإضافة إلى ملفات dSYM لتقارير الأعطال. يمكننا تثبيت هذا التطبيق على أي جهاز iOS تمت إضافته إلى ملف تعريف التوفير واختبار تطبيق iOS الخاص بنا. إذا رأينا أي أخطاء هناك ، فيمكننا دائمًا العودة إلى بيئة Linux وإصلاح هذه الأخطاء.
توزيع تطبيق iOS على متجر التطبيقات
اعتبارًا من الآن ، قمنا ببناء إصدار تصحيح الأخطاء من تطبيق iOS للاختبار داخليًا. بطريقة مماثلة ، يمكننا توزيع تطبيق iOS على متجر التطبيقات. عندما نكون مستعدين لنشر التطبيق في متجر التطبيقات ، نحتاج إلى إنشاء التطبيق في وضع الإصدار . يمكننا القيام بذلك باستخدام شهادة التوزيع وملف تعريف توفير الإنتاج. يمكننا إنشاء الشهادة والملفات الشخصية بطريقة مماثلة. ولكن يتعين علينا التأكد من اختيار توزيع App Store أثناء إنشاء ملف تعريف التوفير.
سيعمل ملف تعريف توفير التوزيع على تشغيل تطبيق iOS على أي جهاز ولا نحتاج إلى إضافة الأجهزة بشكل صريح في ملف تعريف التوفير. سيبدو ملف تعريف توفير متجر التطبيقات كما يلي:
بمجرد حصولنا على شهادة توزيع iOS وملف تعريف توفير الإنتاج في متناول اليد ، يمكننا تحديد وضع الإصدار في ملف قسم البناء في Codemagic كما هو موضح أدناه.
لقد قمنا أيضًا بتعيين وسيطات الإنشاء لإصدارها بدلاً من تصحيحها. في قسم النشر ، نحتاج إلى تحميل شهادة التوزيع وملف تعريف توفير الإنتاج لإنشاء إصدار App Store من التطبيق.
بمجرد قيام Codemagic بإنشاء عناصر الإنشاء ، يمكننا إنشاء App Store Connect ، المعروف سابقًا باسم iTunesConnect ، باتباع إرشادات متجر التطبيقات وإرسال التطبيق للمراجعة.
استنتاج
من خلال الجمع بين إطار عمل تطوير تطبيقات الأجهزة المحمولة عبر الأنظمة الأساسية وحل CI / CD السحري مثل Codemagic ، فإن امتلاك جهاز Mac لتطوير تطبيقات iOS ليس إلزاميًا على الإطلاق. قد تكون هناك بعض المشكلات في تصحيح أخطاء التطبيق أثناء التطوير لنظام التشغيل iOS ، ولكن من الممكن تمامًا تطوير تطبيقات iOS ونشرها في متجر التطبيقات باستخدام مزيج من Flutter و Codemagic.
هل تريد إنشاء تطبيق متوافق مع المستقبل لعملك؟
لنعمل معا