اختلاف حجم و زمان انتشار برنامهها در بازار و Google Play
تحریمهای چند سال اخیر آمریکا علیه ایران باعث شده تا کاربران ایرانی امکان استفاده از خدمات بعضی توسعهدهندگان خارجی را نداشته باشند. بازار برای رفع نیاز کاربرانش، بعضی از این برنامههای خارجی پرطرفدار را که رایگان ارائه میشوند به طور مستقیم و کامل از گوگلپلی دریافت کرده و منتشر میکند.
چرا گاهی اوقات حجم یا نسخهٔ برنامهای در بازار با گوگلپلی متفاوت است؟
مواردی مشاهده میشود که با وجود یکسان بودن امضای برنامه در Google play و بازار، حجم یا شمارهٔ نسخهٔ برنامه در این دو فروشگاه اندرویدی یکسان نیست. در این صورت ممکن است یکی از موارد زیر اتفاق افتاده باشد:
- گوگلپلی با در نظر گرفتن منطقهٔ جغرافیایی، فایل نصب متفاوتی را در اختیار کاربر قرار میدهد. بنابراین بستهٔ ارائهشده از یک برنامه در آمریکا میتواند با بستهی ارائهشدهی همان برنامه در منطقه خاورمیانه اختلاف حجم داشته باشد. بازار به طور معمول برنامههای خارجی را از طریق گوگلپلی آمریکا دریافت میکند. در حالیکه کاربر ایرانی در گوگلپلی، نسخه مخصوص خاورمیانه را میبیند. بنابراین این امکان وجود دارد که حجم یک برنامه در گوگلپلی روی گوشی کاربر با حجم آن در بازار متفاوت باشد.
- نسخهٔ بهروزرسانی برنامهها برای مناطق جغرافیایی مختلف هم در زمان متفاوتی ارائه میشود. مثلاً برنامهای برای کاربران آمریکایی نسخهی بروزرسانی ارائه کرده در حالی که هنوز کاربران خاورمیانه بهروزرسانیای دریافت نکردهاند. در نتیجه در مواردی بازار بروزرسانی منتشر شده در آمریکا را به کاربرانش ارائه میکند، در حالیکه کاربر هنوز از گوگلپلی بروزرسانیای دریافت نکرده است.
- در برخی موارد گوگلپلی یک نسخه از یک برنامه را به تعدادی از کاربران جهت تست ارائه میکند که این نسخههای تستی در اختیار تمامی کاربران قرار نگرفته است. بنابراین ممکن است در بعضی دستگاهها نسخهٔ بهروزرسانی از یک برنامه مشاهده شود ولی در بقیه دستگاهها این مورد قابل مشاهده نباشد.
- گوگل به توسعهدهندگان اجازه میدهد که چندین APK را در قالب یک برنامه ارائه دهند؛ سپس هنگام نصب برنامه برای کاربر، با توجه به پیکربندی دستگاه، APK متناسب را انتخاب کرده و در اختیار کاربر قرار میدهد. این انتخاب ممکن است بر اساس معیارهای متفاوتی از جمله معماری پردازنده، platform version ، سایز صفحهی نمایش و... دستگاه مورد استفادهی کاربر باشد. گاهی ممکن است ویژگیهایی که گوگل از مشخصات گوشی کاربر مدنظر قرار میدهد با ویژگیهای موردنظر بازار تفاوت داشته باشد؛ این مورد به این معنیاست که گوگلپلی و کافهبازار نسخههای متفاوتی از یک برنامه را برای یک دستگاه مناسب میدانند. هر دوی این نسخهها روی دستگاه مورد استفادهٔ کاربر به درستی کار میکند و تنها معیارهای این دو فروشگاه اندرویدی برای انتخاب متفاوت است. در نتیجه بستهای متفاوت با حجمی متفاوت در اختیار کاربر قرار میگیرد.به عنوان مثال در مواردی توسعهدهنده نسخههایی از برنامهٔ خود را با dpiهای مختلف به علاوهٔ یک نسخهٔ nodpi روی گوگلپلی قرار میدهد. از آنجایی که dpi از جمله خصوصیاتی است که گوگلپلی موردنظر قرار میدهد و ممکن است از جمله خصوصیات موردنظر بازار نباشد، گوگلپلی نسخهای با یک dpi خاص را در اختیار او قرار میدهد اما بازار نسخهٔ nodpi را مناسب میداند که البته هر دوی این نسخهها به درستی روی گوشی کاربر کار خواهند کرد.
از کجا مطمئن شوم نسخهای که از بازار دریافت میکنم دستکاریشده نیست؟
هنگام ارائهی هر برنامهی اندرویدی لازم است تا APK با استفاده از یک کلید امضا شود. این امضا موجب میشود که تنها توسعهدهندهی اصلی برنامه قادر به بارگذاری بستههای جدید (update) برای برنامه باشد. با توجه به این موضوع در صورت بررسی امضا (sign) برنامهی دریافتی از گوگلپلی و کافهبازار و مقایسهی آنها، متوجه خواهید شد که این امضا در هر دو برنامه یکسان است؛ به این معنی که هر دو برنامه توسط یک شخص توسعه داده شدهاند و یکی هستند. این نکته بسیار اهمیت دارد که در صورت یکسان نبودن این امضا، اندروید به شما اجازهی بهروزرسانی برنامه را نخواهد داد و با اخطار از سوی package installer دستگاه خود مواجه خواهید شد. در بیشتر نسخههای اندروید این خطا با این توضیح نمایش داده میشود:
an existing package by the same name with a conflicting signature is already installed
بنابراین امکان بارگذاری نسخهٔ دیگری از یک برنامه توسط شخصی غیر از توسعهدهندهٔ اصلی وجود ندارد.