معاينات
متطلبات
عند إنشاء تطبيق ما، قد ترغب في مشاركته مع الآخرين للحصول على تعليقاتهم. تقليديًا، هذا شيء تقوم به الفرق من خلال بناء تطبيقاتها وتوقيعها ودفعها إلى منصات مثل [TestFlight] من Apple [TestFlight] (https://developer.apple.com/testflight/). ومع ذلك، يمكن أن تكون هذه العملية مرهقة وبطيئة، خاصةً عندما تبحث فقط عن تعليقات سريعة من زميل أو صديق.
لجعل هذه العملية أكثر بساطة، يوفر Tuist طريقة لإنشاء معاينات لتطبيقاتك ومشاركتها مع أي شخص.
يجب أن تكون الأجهزة المبنية بحاجة إلى توقيع
عند الإنشاء للجهاز، تقع على عاتقك حاليًا مسؤولية ضمان توقيع التطبيق بشكل صحيح. نخطط لتبسيط هذا الأمر في المستقبل.
bash
tuist build App # Build the app for the simulator
tuist build App -- -destination 'generic/platform=iOS' # Build the app for the device
tuist share Appbash
xcodebuild -scheme App -project App.xcodeproj -configuration Debug # Build the app for the simulator
xcodebuild -scheme App -project App.xcodeproj -configuration Debug -destination 'generic/platform=iOS' # Build the app for the device
tuist share App --configuration Debug --platforms iOS
tuist share App.ipa # Share an existing .ipa fileسينشئ الأمر رابطًا يمكنك مشاركته مع أي شخص لتشغيل التطبيق - إما على جهاز محاكاة أو جهاز فعلي. كل ما عليهم فعله هو تشغيل الأمر أدناه:
bash
tuist run {url}
tuist run --device "My iPhone" {url} # Run the app on a specific deviceعند مشاركة ملف .ipa ، يمكنك تنزيل التطبيق مباشرة من الجهاز المحمول باستخدام رابط المعاينة. تكون الروابط إلى .ipa معاينات بشكل افتراضي عام. في المستقبل، سيكون لديك خيار لجعلها خاصة، بحيث يحتاج مستلم الرابط إلى المصادقة باستخدام حساب Tuist الخاص به لتنزيل التطبيق.
يمكّنك tuist run أيضًا من تشغيل أحدث معاينة استنادًا إلى محدد مثل أحدث أو اسم الفرع أو تجزئة التزام معين:
bash
tuist run App@latest # Runs latest App preview associated with the project's default branch
tuist run App@my-feature-branch # Runs latest App preview associated with a given branch
tuist run App@00dde7f56b1b8795a26b8085a781fb3715e834be # Runs latest App preview associated with a given git commit shaالمسارات
تسمح لك المسارات بتنظيم معايناتك في مجموعات مسماة. على سبيل المثال، قد يكون لديك مسار بيتا للمختبرين الداخليين ومسار ليلاً للإصدارات الآلية. يتم إنشاء المسارات بشكل كسول - ما عليك سوى تحديد اسم المسار عند المشاركة، وسيتم إنشاؤه تلقائيًا إذا لم يكن موجودًا.
لمشاركة معاينة على مسار محدد، استخدم الخيار - المسار:
bash
tuist share App --track beta
tuist share App --track nightlyهذا مفيد لـ
- تنظيم المعاينات: تجميع المعاينات حسب الغرض (على سبيل المثال،
بيتا،ليلي،داخلي) - التحديثات داخل التطبيق: تستخدم مجموعة أدوات تطوير البرمجيات (Tuist SDK) المسارات لتحديد التحديثات التي يجب إخطار المستخدمين بها
- تصفية: العثور على المعاينات وإدارتها بسهولة حسب المسار في لوحة معلومات Tuist
رؤية المعاينات
يمكن فقط للأشخاص الذين لديهم حق الوصول إلى المؤسسة التي ينتمي إليها المشروع الوصول إلى المعاينات. نخطط لإضافة دعم للروابط المنتهية الصلاحية.
تطبيق تويست macOS
لجعل تشغيل معاينات تويست أسهل، قمنا بتطوير تطبيق شريط قوائم نظام التشغيل Tuist macOS. بدلاً من تشغيل المعاينات عبر Tuist CLI، يمكنك [تنزيل] (https://tuist.dev/download) تطبيق macOS. يمكنك أيضًا تثبيت التطبيق عن طريق تشغيل brew install - cask tuist/tuist/Tuist/Tuist.
عندما تنقر الآن على "تشغيل" في صفحة المعاينة، سيقوم تطبيق macOS بتشغيله تلقائيًا على الجهاز المحدد حاليًا.
متطلبات
يجب أن يكون لديك Xcode مثبتًا محليًا وأن يكون مثبتًا على نظام macOS 14 أو أحدث.
تطبيق تويست iOS
على غرار تطبيق macOS، تعمل تطبيقات Tuist iOS على تبسيط الوصول إلى المعاينات وتشغيلها.
تعليقات طلب السحب/الدمج
التكامل مع منصة GIT مطلوب
للحصول على تعليقات طلبات السحب/الدمج التلقائية، ادمج مشروعك البعيد مع منصة Git.
يجب أن يكون اختبار الوظائف الجديدة جزءًا من أي مراجعة للكود. لكن الاضطرار إلى إنشاء تطبيق محليًا يضيف احتكاكًا غير ضروري، وغالبًا ما يؤدي إلى تخطي المطورين لاختبار الوظائف على أجهزتهم على الإطلاق. ولكن ماذا لو احتوى كل طلب سحب على رابط للبناء الذي من شأنه تشغيل التطبيق تلقائيًا على الجهاز الذي حددته في تطبيق Tuist macOS؟
بمجرد توصيل مشروع Tuist الخاص بك بمنصة Git الخاصة بك مثل [GitHub] (https://github.com)، أضف tuist share MyApp إلى سير عمل CI الخاص بك. سيقوم Tuist بعد ذلك بنشر رابط معاينة مباشرة في طلبات السحب الخاصة بك: 
تنبيهات التحديثات داخل التطبيق
تُمكِّن [Tuist SDK] (https://github.com/tuist/sdk) تطبيقك من اكتشاف وقت توفر إصدار معاينة أحدث وإعلام المستخدمين. هذا مفيد لإبقاء المختبرين على أحدث إصدار.
تتحقق SDK من التحديثات داخل نفس معاينة المسار. عند مشاركة معاينة مع مسار صريح باستخدام - المسار ، ستبحث SDK عن التحديثات على هذا المسار. إذا لم يتم تحديد أي مسار، فسيتم استخدام فرع git كمسار - لذا فإن المعاينة التي تم إنشاؤها من الفرع الرئيسي `` الرئيسي ستُعلم فقط بالمعاينات الأحدث التي تم إنشاؤها أيضًا من الرئيسي.
التثبيت
أضف Tuist SDK كجزء تابع لحزمة سويفت:
swift
.package(url: "https://github.com/tuist/sdk", .upToNextMajor(from: "0.1.0"))مراقبة للتحديثات
استخدم monitorPreviewUpdates للتحقق بشكل دوري من إصدارات المعاينة الجديدة:
swift
import TuistSDK
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
.task {
TuistSDK(
fullHandle: "myorg/myapp",
apiKey: "your-api-key"
)
.monitorPreviewUpdates()
}
}
}
}فحص التحديث الفردي
للتحقق من التحديث اليدوي:
swift
let sdk = TuistSDK(
fullHandle: "myorg/myapp",
apiKey: "your-api-key"
)
if let preview = try await sdk.checkForUpdate() {
print("New version available: \(preview.version ?? "unknown")")
}إيقاف مراقبة التحديث
يُرجِع موقع MonitorPreviewUpdates مهمة مهمة يمكن إلغاؤها:
swift
let task = sdk.monitorPreviewUpdates { preview in
// Handle update
}
// Later, to stop monitoring:
task.cancel()INFO
يتم تعطيل التحقق من التحديث تلقائياً على أجهزة المحاكاة وإصدارات App Store.
شارة README
لجعل معاينات تويست أكثر وضوحًا في مستودعك، يمكنك إضافة شارة إلى ملف README الذي يشير إلى أحدث معاينة تويست:
[! [معاينة تويست] (https://tuist.dev/Dimillian/IcySky/previews/latest/badge.svg)] (https://tuist.dev/Dimillian/IcySky/previews/latest)
لإضافة الشارة إلى README الخاص بك، استخدم العلامات التالية واستبدل مقابض الحساب والمشروع بمقابضك الخاصة:
[](https://tuist.dev/{account-handle}/{project-handle}/previews/latest)إذا كان مشروعك يحتوي على تطبيقات متعددة بمعرّفات حزم مختلفة، يمكنك تحديد معاينة التطبيق المراد الربط به عن طريق إضافة معلمة استعلام معرف الحزمة:
[](https://tuist.dev/{account-handle}/{project-handle}/previews/latest?bundle-id=com.example.app)الأتمتة
يمكنك استخدام العلامة --json للحصول على مخرجات JSON من الأمر tuist share:
tuist share --jsonيعد إخراج JSON مفيدًا لإنشاء عمليات أتمتة مخصصة، مثل نشر رسالة Slack باستخدام موفر CI الخاص بك. يحتوي JSON على مفتاح url مع رابط المعاينة الكامل ومفتاح qrCodeURL مع عنوان URL لصورة رمز الاستجابة السريعة لتسهيل تنزيل المعاينات من جهاز حقيقي. فيما يلي مثال على إخراج JSON:
json
{
"id": 1234567890,
"url": "https://cloud.tuist.io/preview/1234567890",
"qrCodeURL": "https://cloud.tuist.io/preview/1234567890/qr-code.svg"
}

