Skip to content

الترجمة 🌍

ساهم في ترجمة هذه الصفحة أو تحسينها.

ساهم

من تويست v3 إلى v4

مع إصدار [تويست 4] (https://github.com/tuist/tuist/releases/tag/4.0.0)، انتهزنا الفرصة لإدخال بعض التغييرات العاجلة على المشروع، والتي نعتقد أنها ستجعل المشروع أسهل في الاستخدام والصيانة على المدى الطويل. يوضح هذا المستند التغييرات التي ستحتاج إلى إجرائها على مشروعك للترقية من تويست 3 إلى تويست 4.

إدارة الإصدار المسقط من خلال tuistenv

قبل تويست 4، كان البرنامج النصي للتثبيت يقوم بتثبيت أداة tuistenv ، والتي ستتم إعادة تسميتها إلى tuist في وقت التثبيت. كانت الأداة تهتم بتثبيت وتفعيل إصدارات تويست لضمان الحتمية عبر البيئات. وبهدف الحد من سطح ميزات تويست، قررنا التخلي عن tuistenv لصالح [Mise] (https://mise.jdx.dev/)، وهي أداة تقوم بنفس المهمة ولكنها أكثر مرونة ويمكن استخدامها عبر أدوات مختلفة. إذا كنت تستخدم tuistenv ، فسيتعين عليك إلغاء تثبيت الإصدار الحالي من تويست عن طريق تشغيل curl -Ls https://uninstall.tuist.io | bash ثم تثبيته باستخدام طريقة التثبيت التي تختارها. نحن نوصي بشدة باستخدام Mise لأنه قادر على تثبيت الإصدارات وتفعيلها بشكل حتمي عبر البيئات.

bash
curl -Ls https://uninstall.tuist.io | bash

الاختلاط في بيئات CI ومشاريع XCODE

إذا قررت أن تتبنى الحتمية التي يجلبها Mise في جميع المجالات، نوصي بالاطلاع على الوثائق الخاصة بكيفية استخدام Mise في [بيئات CI] (https://mise.jdx.dev/continuous-integration.html) و [مشاريع Xcode] (https://mise.jdx.dev/ide-integration.html#xcode).

مدعومة من المنزل

لاحظ أنه لا يزال بإمكانك تثبيت تويست باستخدام Homebrew، وهو مدير حزم شهير لنظام macOS. يمكنك العثور على الإرشادات الخاصة بكيفية تثبيت Tuist باستخدام Homebrew في دليل التثبيت

.

تم إسقاط بدء المنشئات من وصف المشروع النماذج

بهدف تحسين سهولة القراءة والتعبير عن واجهات برمجة التطبيقات، قررنا إزالة مُنشئات init من جميع نماذج ProjectDescription. يوفر كل نموذج الآن منشئ ثابت يمكنك استخدامه لإنشاء مثيلات للنماذج. إذا كنت تستخدم مُنشئ init البادئ ، فسيتعين عليك تحديث مشروعك لاستخدام المنشئات الثابتة بدلاً من ذلك.

تسمية الاتفاقية

اصطلاح التسمية الذي نتبعه هو استخدام اسم النموذج كاسم المنشئ الثابت. على سبيل المثال، المنشئ الثابت للنموذج Target هو Target.target.target.

تمت إعادة تسمية --لا ذاكرة تخزين مؤقت إلى --لا ذاكرة تخزين مؤقت ثنائية

نظرًا لأن العلامة --no-cache كانت غامضة، قررنا إعادة تسميتها إلى --no-cache لتوضيح أنها تشير إلى ذاكرة التخزين المؤقت الثنائية. إذا كنت تستخدم العلامة --لا-لا-ذاكرة تخزين مؤقت ، فسيتعين عليك تحديث مشروعك لاستخدام العلامة --لا-ذاكرة تخزين مؤقت ثنائية بدلاً من ذلك.

أعيدت التسمية tuist fetch إلى tuist install

لقد أعدنا تسمية الأمر tuist fetch إلى الأمر tuist install ليتماشى مع العرف السائد في المجال. إذا كنت تستخدم الأمر tuist fetch ، فسيتعين عليك تحديث مشروعك لاستخدام الأمر tuist install بدلاً من ذلك.

[اعتماد Package.swift.swift كـ DSL للتبعيات] (https://github.com/tuist/tuist/pull/5862)

قبل تويست 4، كان بإمكانك تحديد التبعيات في ملف Dependencies.swift.. هذه الصيغة الخاصة عطلت الدعم في أدوات مثل [Dependabot] (https://github.com/dependabot) أو [Renovatebot] (https://github.com/renovatebot/renovate) لتحديث التبعيات تلقائيًا. وعلاوةً على ذلك، فقد أدخلت عمليات توجيه غير ضرورية للمستخدمين. ولذلك، قررنا اعتماد Package.swift كطريقة وحيدة لتحديد التبعيات في تويست. إذا كنت تستخدم ملف Dependencies.swift.swift ، فسيتعين عليك نقل المحتوى من ملف Tuist/Dependencies.swift إلى Package.swift في الجذر، واستخدام التوجيه #f TUIST لتهيئة التكامل. يمكنك قراءة المزيد حول كيفية دمج تبعيات حزمة سويفت

هنا

أعيدت تسميته ذاكرة التخزين المؤقت الدافئة إلى ذاكرة التخزين المؤقت الدافئة

للإيجاز، قررنا إعادة تسمية الأمر tuist cache warm إلى الأمر tuist cache. إذا كنت تستخدم الأمر tuist cache warm ، فسيتعين عليك تحديث مشروعك لاستخدام الأمر tuist cache بدلاً من ذلك.

أعيدت التسمية tuist cache print-hashes إلى tuist cache --print-hashes

لقد قررنا إعادة تسمية الأمر tuist cache print-hashes إلى الأمر tuist cache --print-hashes لتوضيح أنه علم للأمر tuist cache. إذا كنت تستخدم الأمر tuist cache print-hashes ، فسيتعين عليك تحديث مشروعك لاستخدام العلامة tuist cache --print-hashes بدلاً من ذلك.

ملفات تعريف التخزين المؤقت التي تمت إزالتها

قبل تويست 4، كان بإمكانك تحديد ملفات تعريف التخزين المؤقت في Tuist/Config.swift والتي كانت تحتوي على تكوين لذاكرة التخزين المؤقت. لقد قررنا إزالة هذه الميزة لأنها قد تؤدي إلى حدوث ارتباك عند استخدامها في عملية الإنشاء مع ملف تعريف آخر غير الذي تم استخدامه لإنشاء المشروع. علاوة على ذلك، يمكن أن يؤدي ذلك إلى استخدام المستخدمين لملف تعريف التصحيح لإنشاء إصدار من التطبيق، مما قد يؤدي إلى نتائج غير متوقعة. بدلاً من ذلك، قدمنا الخيار --configuration ، والذي يمكنك استخدامه لتحديد التكوين الذي تريد استخدامه عند إنشاء المشروع. إذا كنت تستخدم ملفات تعريف التخزين المؤقت، فسيتعين عليك تحديث مشروعك لاستخدام الخيار -- التكوين بدلاً من ذلك.

تمت الإزالة ---تخطي ذاكرة التخزين المؤقت لصالح الحجج

لقد أزلنا العلامة -تخطي ذاكرة التخزين المؤقت من الأمر توليد لصالح التحكم في الأهداف التي يجب تخطي ذاكرة التخزين المؤقت الثنائية لها باستخدام الوسيطات. إذا كنت تستخدم العلامة -تخطي ذاكرة التخزين المؤقت ، فسيتعين عليك تحديث مشروعك لاستخدام الوسيطات بدلاً من ذلك.

bash
tuist generate --skip-cache Foo
bash
tuist generate Foo

[إمكانيات التوقيع المسقطة] (https://github.com/tuist/tuist/pull/5716) {#1}

تم حل مشكلة التوقيع بالفعل من خلال أدوات المجتمع مثل [Fastlane] (https://fastlane.tools/) و Xcode نفسه، والتي تقوم بعمل أفضل بكثير في ذلك. شعرنا أن التوقيع كان هدفًا ممتدًا لـ Tuist، وأنه من الأفضل التركيز على الميزات الأساسية للمشروع. إذا كنت تستخدم إمكانيات توقيع تويست، والتي تتألف من تشفير الشهادات والملفات الشخصية في المستودع وتثبيتها في الأماكن الصحيحة في وقت الإنشاء، فقد ترغب في تكرار هذا المنطق في البرامج النصية الخاصة بك التي تعمل قبل إنشاء المشروع. على وجه الخصوص:

  • برنامج نصي يقوم بفك تشفير الشهادات وملفات التعريف باستخدام مفتاح مخزن إما في نظام الملفات أو في متغير بيئة، وتثبيت الشهادات في سلسلة المفاتيح، وملفات تعريف التزويد في الدليل ~ / Library/MobileDevice/Provisioning\ Profile.
  • برنامج نصي يمكنه أخذ ملفات التعريف والشهادات الموجودة وتشفيرها.

::: متطلبات توقيع الإكرامية

يتطلب التوقيع أن تكون الشهادات الصحيحة موجودة في سلسلة المفاتيح وأن تكون ملفات تعريف التزويد موجودة في الدليل ~/مكتبة/مكتبة/موبايل ديفيديفيس/ملفات تعريف التزويد. يمكنك استخدام أداة سطر الأوامر الأمان لتثبيت الشهادات في سلسلة المفاتيح والأمر cp لنسخ ملفات تعريف التزويد إلى الدليل الصحيح.

:::

تم إسقاط تكامل قرطاج عبر Dependendenciesswift.swift

قبل تويست 4، كان يمكن تعريف تبعيات قرطاج في ملف Dependencies.swift ، والذي يمكن للمستخدمين بعد ذلك جلبه عن طريق تشغيل tuist fetch. لقد شعرنا أيضًا أن هذا كان هدفًا ممتدًا لـ Tuist، خاصةً بالنظر إلى المستقبل حيث سيكون Swift Package Manager هو الطريقة المفضلة لإدارة التبعيات. إذا كنت تستخدم تبعيات قرطاج، فسيتعين عليك استخدام قرطاج مباشرةً لسحب الأطر المجمعة مسبقًا و XCFrameworks إلى دليل قرطاج القياسي، ثم الرجوع إلى تلك الثنائيات من التاغيتات الخاصة بك باستخدام TargetDependency.xcframework و TargetDependency.framework.

لا يزال CARTHAGE مدعومًا

فهم بعض المستخدمين أننا أسقطنا دعم قرطاج. لم نفعل ذلك. العقد بين تويست ومخرجات قرطاج هو للأطر المخزنة في النظام و XCFrameworks. الشيء الوحيد الذي تغير هو من المسؤول عن جلب التبعيات. كان تويست من خلال قرطاج، والآن قرطاج.

تم إسقاط TargetDependency.packagePlugin API

قبل تويست 4، كان بإمكانك تحديد تبعية مكون إضافي للحزمة باستخدام حالة TargetDependency.packagePlugin. بعد رؤية مدير حزم Swift Package Manager يقدم أنواعًا جديدة من الحزم، قررنا أن نكرر واجهة برمجة التطبيقات نحو شيء أكثر مرونة وملائمًا للمستقبل. إذا كنت تستخدم TargetDependency.packagePlugin ، فسيتعين عليك استخدام TargetDependency.package بدلاً من ذلك، وتمرير نوع الحزمة التي تريد استخدامها كوسيطة.

[واجهات برمجة التطبيقات المهملة] (https://github.com/tuist/tuist/pull/5560) (https://github.com/tuist/tuist/pull/5560)

لقد أزلنا واجهات برمجة التطبيقات التي تم تمييزها على أنها مهملة في Tuist 3. إذا كنت تستخدم أيًا من واجهات برمجة التطبيقات المهملة، فسيتعين عليك تحديث مشروعك لاستخدام واجهات برمجة التطبيقات الجديدة.

Released under the MIT License.