عیب یابی آیاواس
ویرایش
در این صفحه به عیبیابی مشکلات متداول توسعهدهندگان در پیادهسازی چابک و ارائه راهحلهای مربوط به آن میپردازیم. برخی از این مشکلات عبارتند از عدم دریافت پوشنوتیفیکیشن و نمایش نوتیفیکیشن و یا نمایش تصویر نوتیفیکیشن.
پوش نمیگیرم
یکی از مشکلات متداولی که توسعهدهندگان پس از نصب چابک با آن مواجه میشوند، عدم دریافت پیام (هم پیام چابک و هم پوشنوتیفیکیشن) است. این مشکل معمولا به راهاندازی ناقص یا غیر صحیح چابک بر میگردد.
-
اپ باز است (Background یا Foreground) و پوش نمیگیرم:
۱- از ثبت موفق دستگاه کاربر اطمینان یابید
در صورتی که شما دستگاه را با userId
که ثبت کردید در بخش مشترکین پنل مشاهده نکردید به نکات زیر توجه فرمایید:
الف- ویپیان دستگاه حتما خاموش باشد.
ب- تعیین درست محیط چابک (آزمایشی و عملیاتی) در راهاندازی
پ-وارد کردن صحیح اطلاعات حساب (appId
, APIKey
, username
, password
) در مقداردهی اولیه
پس از بررسی نکات بالا دستگاه شما باید در بخش مشترکین پنل آمده باشد.
۲- کاربر حتما در کانال ارسالی شما عضو باشد
در صورت مشاهده دستگاه کاربر در بخش مشترکین پنل، از عضویت کاربر در کانالی که با آن پیام خود را ارسال میکنید، اطمینان یابید. برای اینکه کانالهایی که کاربرتان در آنها عضو هستند را مشاهده میکنید، میتوانید روی آیکون در کارت هر دستگاه در بخش مشترکین پنل کلیک کنید. علاوه بر آن شما میتوانید از اتصال یا عدم اتصال دستگاه از مشاهده نوار سبز رنگ در بالای کارت مطلع شوید.
۳- اطلاعات حساب خود را با دقت وارد کنید (خطای internal server error)
در صورت دریافت خطای فوق در xcode log از وارد کردن اطلاعات حساب (appId
, APIKey
, username
, password
) خود اطمینان یابید.
-
اپ بسته است (Terminated) و پوش نمیگیرم:
۴- از مراحل ثبت موفق دستگاه و عضویت در کانال ارسال مانند بالا اطمینان یابید
در ابتدا از ثبت موفق کاربر و مشاهده دستگاه در بخش مشترکین و عضویت آن در کانال ارسالی پیام مطمئن شوید.
۵- تنظیمات APN (پوشنوتیفیکیشن) خود را چک کنید
از وارد کردن صحیح اطلاعات دسترسی پوشنوتیفیکیشن در هر پلتفرم از بخش تنظیمات پنل قسمت پلتفرمها اطمینان یابید. در صورت مشاهده متن غیرفعال در کارت تنظیمات هر پلتفرم، دستگاه به بخش مشترکین اضافه نشده است. برای مثال اگر تنظیمات پوشنوتیفیکیشن آیاواس را به درستی انجام داده باشید ولی دستگاه آیاواس به بخش مشترکین اضافه نشده باشد بر روی کارت تنظیمات پوشنوتیفیکیشن آیاواس متن غیرفعال را مشاهده خواهید کرد.
۶- پوش روی Simulator آیاواس دریافت نمیشود
امکان دریافت پوشنویفیکیشن بر روی Simulator آیاواس وجود ندارد.
۷- در حالت بسته بودن اپ، پیام چابک دریافت نمیشود (فقط نوتیفیکیشن دریافت خواهد شد)
در پنل حساب کاربری خود در بخش پیامها، دایره زرد رنگ به معنی در صف بود پیام شما میباشد و زمانی که کاربر به چابک متصل شود (اپ را باز کند) پیام را دریافت میکند. در بخش نوتیفیکیشن در صورت ارسال موفق به سرور هر پلتفرم، تیک سبز رنگ به همراه لوگوی پلتفرم نشان داده میشود. همچنین خطاهای GONE به معنی حذف اپلیکیشن شما توسط کاربر و DeviceTokenNotForTopic به معنی این است که اطلاعات پلتفرم آیاواس که در پنل ما قرار دادهاید با اپلیکیشنی که روی دستگاه نصب کردهاید همخوانی ندارد. نمادها و خطاها را میتوانید به صورت کامل در مستندات پنل صفحه پیامها مشاهده کنید.
۸- سوئیچ سرور عملیاتی اپل را در پنل به درستی تنظیم کنید
به طور کلی (در هر محیط چابک)، زمانی که گواهی sandbox اپل را در پنل قرار دهید، سوئیچ سرور عملیاتی اپل باید خاموش باشد. اما در زمانی که گواهی production اپل را قرار دهید، این سوئیچ باید حتما روشن باشد. در غیر این صورت، هنگام ارسال پوش با خطای BadDeviceToken مواجه خواهید شد.
نکته:
توجه داشته باشید هنگامی که گواهی sandbox اپل را در پنل آزمایشی قرار میدهید، فقط امکان دریافت Push Notification در حالت debug وجود خواهد داشت. اما اگر گواهی production اپل را در محیط عملیاتی قرار دهید، زمانی Push Notification را دریافت خواهید کرد که اقدام به ساخت ipa از پروژه خود کرده و از طریق TestFlight یا Enterprise اپلیکیشن خود را نصب کنید.
نوتیفیکیشنها نمایش داده نمیشوند
یکی دیگر از مشکلات متداول عدم نمایش اعلان (نوتیفیکیشن) در دستگاه مخاطب است. در این قسمت به دلایل احتمالی این مشکل اشاره خواهیم کرد.
۱- اپلکیشن روی صفحه نمایش باز نباشد
در حالت پیشفرض نسخه iOS ۹ به پایینتر، نوتیفیکیشنها در زمانی که اپلیکیشن روی دستگاه شما باز و نمایان است، نشان داده نمیشوند.
۲- تنظیمات اکشن کلیک و محتوا در نوتیفیکیشن به درستی قرار داده شود
زمانی که این آپشنها گذاشته میشوند باید تنظیمات اپ به درستی ذخیره شده باشد و اپلیکیشن در حالت Force Kill نباشد.
۳- گزینه دریافت پوش برای اپلیکیشن را چک کنید
تنظیمات نوتیفیکیشن در صفحه Settings > Notifications را چک کنید. در صورت خاموش بودن گزینه نوتیفیکیشن، آن را فعال نمایید.
۴- وضعیت اتصال دستگاه به اینترنت را بررسی نمایید
شبکه اینترنتی که به آن وصل هستید ممکن است اتصال شما به سرورهای گوگل یا اپل را بسته باشد. در این حالت میتوانید قطع و وصل کردن اینترنت خود را امتحان کنید.
تصویر نوتیفیکیشن نمایش داده نمیشود
پوش را با پنل ارسال کردهام
دقت داشته باشید پس از انتخاب تصویر، دکمه بارگذاری را حتما بزنید و پیام موفقیت را مشاهده کنید.
پوش را با API ارسال کردهام
در این حالت باید به پارامترهای mediaType
، mediaUrl
و mutableContent
مقادیر درست دهید.
نکته:
در حالت پوش پسزمینه (background) با API، پارامترmutableContent
حتما بایدtrue
باشد.
موارد بالا را بررسی کردم اما همچنان مشکلم برطرف نشده
در صورتی هم که موارد این صفحه را بررسی کردید و همچنان مشکلتان برطرف نشده بود، میتوانید از پشتیبانی چابک در گیتهاب استفاده کنید. در آن جا issue
های قبلی را مطالعه کنید و اگر مشکل شما بین آنها نبود، میتوانید یک issue
جدید برای بررسی تیم فنی چابک باز نمایید.