عیب یابی آی‌او‌اس

در این صفحه به عیب‌یابی مشکلات متداول توسعه‌دهندگان در پیاده‌سازی چابک و ارائه راه‌‌حل‌های مربوط به آن می‌پردازیم. برخی از این مشکلات عبارتند از عدم دریافت پوش‌نوتیفیکیشن و نمایش اعلان.


۱- پوش نمی‌گیرم

یکی از مشکلات متداولی که توسعه‌دهندگان پس از نصب چابک با آن مواجه می‌شوند،‌ عدم دریافت پیام (هم پیام چابک و هم پوش‌نوتیفیشکن) است. این مشکل معمولا به راه‌اندازی ناقص یا غیر صحیح چابک بر می‌گردد.

اپ باز است (Background یا Foreground) و پوش نمی‌گیرم:

  • از ثبت موفق دستگاه کاربر اطمینان یابید

در صورتی که شما دستگاه را با userId که ثبت کردید در بخش مشترکین پنل مشاهده نکردید به نکات زیر توجه فرمایید:

الف- وی‌پی‌ان دستگاه حتما خاموش باشد.

ب- تعیین درست محیط چابک (آزمایشی و عملیاتی) در راه‌اندازی

پ-وارد کردن صحیح اطلاعات حساب (appId, APIKey, username, password) در مقداردهی اولیه

پس از بررسی نکات بالا دستگاه شما باید در بخش مشترکین پنل آمده باشد.

  • کاربر حتما در کانال ارسالی شما عضو باشد

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

کانال‌ها

  • اطلاعات حساب خود را با دقت وارد کنید (خطای internal server error)

در صورت دریافت خطای فوق در xcode log از وارد کردن اطلاعات حساب (appId, APIKey, username, password) خود اطمینان یابید.


اپ بسته است (Terminated) و پوش نمی‌گیرم:

  • از مراحل ثبت موفق دستگاه و عضویت در کانال ارسال مانند بالا اطمینان یابید

در ابتدا از ثبت موفق کاربر و مشاهده دستگاه در بخش مشترکین و عضویت آن در کانال ارسالی پیام مطمئن شوید.

  • تنظیمات APN (پوش‌نوتیفیکیشن) خود را چک کنید

از وارد کردن صحیح اطلاعات دسترسی پوش‌نوتیفیکیشن در هر پلتفرم از بخش تنظیمات پنل قسمت پلتفرم‌ها اطمینان یابید. در صورت مشاهده متن غیرفعال در کارت تنظیمات هر پلتفرم، دستگاه به بخش مشترکین اضافه نشده است. برای مثال اگر تنظیمات پوش‌نوتیفیکیشن آی‌اواس را به درستی انجام داده باشید ولی دستگاه آی‌اواس به بخش مشترکین اضافه نشده باشد بر روی کارت تنظیمات پوش‌نوتیفیکیشن آی‌اواس متن غیرفعال را مشاهده خواهید کرد.

  • پوش‌ روی Simulator آی‌او‌اس دریافت نمی‌شود

امکان دریافت پوش‌نویفیکیشن بر روی Simulator آی‌او‌اس وجود ندارد.

  • در حالت بسته بودن اپ، پیام چابک دریافت نمی‌شود (فقط نوتیفیکیشن دریافت خواهد شد)

در پنل حساب کاربری خود در بخش پیام‌ها، دایره زرد رنگ به معنی در صف بود پیام شما می‌باشد و زمانی که کاربر به چابک متصل شود (اپ را باز کند) پیام را دریافت می‌کند. در بخش نوتیفیکیشن در صورت ارسال موفق به سرور هر پلتفرم، تیک سبز رنگ به همراه لوگوی پلتفرم نشان داده می‌شود. همچنین خطاهای GONE به معنی حذف اپلیکیشن شما توسط کاربر و DeviceTokenNotForTopic به معنی این است که اطلاعات پلتفرم آی‌او‌اس که در پنل ما قرار داده‌اید با اپلیکیشنی که روی دستگاه نصب کرده‌اید همخوانی ندارد. این نمادها را می‌توانید به صورت کامل در مستندات پنل بخش پیام‌ها مشاهده کنید.

  • سوئیچ سرور عملیاتی اپل را در پنل به درستی تنظیم کنید

به طور کلی (در هر محیط چابک)، زمانی که گواهی sandbox اپل را در پنل قرار دهید، سوئیچ سرور عملیاتی اپل باید خاموش باشد. اما در زمانی که گواهی production اپل را قرار دهید، این سوئیچ باید حتما روشن باشد.

نکته:‍ توجه داشته باشید هنگامی که گواهی sandbox اپل را در پنل آزمایشی قرار می‌دهید، فقط امکان دریافت Cloud Messaging در حالت debug وجود خواهد داشت. اما اگر گواهی production اپل را در محیط عملیاتی قرار دهید، زمانی Cloud Messaging را دریافت خواهید کرد که اقدام به ساخت ipa از پروژه خود کرده و از طریق TestFlight یا Enterprise اپلیکیشن خود را نصب کنید.


۲- اعلان‌ها نمایش داده نمی‌شوند:

یکی دیگر از مشکلات متداول عدم نمایش اعلان (نوتیفیکیشن) در دستگاه مخاطب است. در این قسمت به دلایل احتمالی این مشکل اشاره‌ خواهیم کرد.

  • اپلکیشن روی صفحه نمایش باز نباشد

در حالت پیش‌فرض نسخه iOS ۹ به پایین‌تر، اعلان‌ها در زمانی که اپلیکیشن روی دستگاه شما باز و نمایان است، نشان داده نمی‌شوند.

  • تنظیمات اکشن کلیک و محتوا در اعلان به درستی قرار داده‌ شود

زمانی که این آپشن‌ها گذاشته می‌شوند باید تنظیمات اپ به‌ درستی ذخیره شده باشد و اپلیکیشن در حالت Force Kill نباشد.

  • گزینه دریافت پوش برای اپلیکیشن را چک کنید

تنظیمات نوتیفیکیشن در صفحه Settings > Notifications را چک کنید. در صورت خاموش بودن گزینه نوتیفیکیشن، آن را فعال نمایید.

  • وضعیت اتصال دستگاه به اینترنت را بررسی نمایید

    شبکه اینترنتی که به آن وصل هستید ممکن است اتصال شما به سرورهای گوگل یا اپل را بسته باشد. در این حالت می‌توانید قطع و وصل کردن اینترنت خود را امتحان کنید.