برنامه‌نویسی

کرش اپلیکیشن‌های iOS با Firebase؛ ریشه در یک پاسخ سرور گوگل

DevNA | devna.ir
۱ از ۸

اپ‌هایی که خودبه‌خود کرش کردند

بامداد ۷ مهر ۱۴۰۵، شمار زیادی از اپ‌های منتشرشده iOS بدون هیچ به‌روزرسانی‌ای هنگام اجرا بسته شدند. مشکل از کد آن‌ها نبود.

۲ از ۸

امضای کرش

در همه گزارش‌ها یک خطا تکرار می‌شد: NSInvalidArgumentException با پیام «-[__NSDictionaryM setObject:forKeyedSubscript:]: key cannot be nil».

۳ از ۸

ریشه: پاسخ sdk-exp

کرش دقیقاً هنگام پردازش پاسخ سرویس sdk-exp در APMETaskManager رخ می‌داد؛ سرور یک پیکربندی با قالب نادرست و کلید خالی می‌فرستاد.

۴ از ۸

هیچ نسخه‌ای امن نبود

گزارش اولیه SDK نسخه 12.14.0 را نام می‌برد، اما همان کرش روی نسخه‌های 10.29.0 تا 12.17.0 هم دیده شد. یعنی مشکل سمت سرور بود.

۵ از ۸

خط زمانی رسمی

شروع: ۲۸ سپتامبر ساعت ۱۷:۴۱ US/PDT. تکمیل اصلاحیه: ۱۹:۵۲ همان روز. رفع کامل: ۲۳:۵۲؛ مجموعاً شش ساعت و یازده دقیقه.

۶ از ۸

اصلاح، کاملاً سمت سرور

گوگل پیکربندی sdk-exp را بازگرداند و اعلام کرد هیچ به‌روزرسانی SDK لازم نیست. کش‌های قدیمی تا چهار ساعت بعد هنوز کرش می‌ساختند.

۷ از ۸

درس ماجرا

هر SDK شخص‌ثالثی که پیکربندی‌اش را از سرور می‌گیرد، یک وابستگی زمان‌اجراست: پارس کرش‌ناپذیر، انتشار تدریجی و کلید قطع لازم دارد.

۸ از ۸

گزارش کامل را بخوانید

خط زمانی رسمی گوگل، امضای دقیق کرش، پاسخ تیم Firebase و سه درس عملی برای توسعه‌دهنده‌ها، در گزارش کامل DevNA.

ماجرای کامل را در DevNA بخوانید

کرش اپلیکیشن‌های iOS با Firebase از یک پاسخ نادرست سرویس sdk-exp گوگل ریشه گرفت؛ اپ‌های منتشرشده هنگام اجرا بسته شدند و گوگل مشکل را کاملاً سمت سرور رفع کرد.

خواندن مطلب کامل