طبق اطلاعاتی که بنده بدست آوردم گوگل ساز و کار امنیتی رو برای اپلیکیشن های اندروید (و نه تنها برای اپلیکیشن های تازه منتشر شده بلکه برای تمام اپلیکیشن ها! ) پیاده سازی کرده که طی اون تمام برنامه ها پیش از نصب مورد بازبینی امنیتی قرار میگیرند و در صورت عدم شناسایی اپلیکیشن و یا عدم احراز توسعه دهنده آن توسط گوگل یک اخطار به کاربر نمایش میده و در اون قید میکنه " محافظ گوگل پلی نتوانست توسعه دهنده این اپلیکیشن را شناسایی کند برنامه هایی که توسط توسعه دهندگان ناشناخته منتشر میشوند ، میتوانند نا امن باشند" خب با کمی تأمل متوجه میشیم که نگرانی گوگل همچین بی راه هم نیست :))
در ادامه به بررسی کامل و جامع این مشکل و مراحل رفع قطعی این ارور میپردازیم
خب یکی از راحل های خیلی موثر :)) که همیشه ارایه میشه پاک کردن صورت مسئله هست! بدین منظور لازمه کاربر وارد Google Play بشه از اونجا گزینه Play Protect Setting و گزینه improve harmful app detection رو خاموش کنه ، اینطوری دیگه علاوه بر اپ شما برای هیچ اپ دیگه ای اسکن امنیتی انجام نشده و کاربر دیگه اون پیام رو نمیبینه!
خب این که خیلی عالیه! بد قضیه اونجاست که تستر ها اون گزینه رو خاموش نمیکنن :)) خیلی هم اصرار کردم ولی خب مثل اینکه علاقه آنچنانی ندارند اپلیکیشن های اسکن نشده رو توی استور ها انتشار بدن!
پس باید دنبال یک روش عملی و اصولی برای رفع این مشکل بود ، در ادامه با من همراه باشید
چقدر خوب هست که قبل از ارسال اپلیکیشن به مارکت ها نسبت به رفع این مشکل اقدام کنیم اما در صورتی که بعد از ارسال به مارکت ها به فکر رفع این مشکل هستید سعی کنید برای اپلیکیشن های بعدی خودتون ابتدا این مشکل رو رفع و سپس برای بازبینی اپلیکیشن خود را ارسال کنید ، ارور Blocked By Play Protect انواع مختلفی دارد ، ارور متداولی که اغلب توسعه دهندگان با آن مواجه هستند در ادامه آمده است:
در اغلب موارد متن بالا به کاربر نمایش داده میشود که دلیل آن نیز به تازگی منتشر شده اپلیکیشن و یا تعداد کم نصب های فعال است ، لازم به ذکر است هنگامی که تعداد نصب های فعال و کاربران یک اپلیکیشن افزایش میابد گوگل بطور خودکار اپلیکیشن را مورد بررسی قرار داده و این خطا رفع میشود ،در شرایط خاص دیگر نیز ممکن است هر یک از متون زیر نمایش داده شود:
This app can add unauthorized charges to your mobile bill by registering for recurring charges
This app tries to use your device to commit advertising fraud
This app can spy on you by monitoring your location or your activity on this device
This app can install potentially harmful apps without your permission
This app can harm non-Android devices
This app is fake. It can steal your personal data, such as banking info and passwords
This app tries to bypass Android's security protections
This app can disable your device or threaten to reveal personal information unless you pay money
This app can spam other people with unauthorized messages
This app tries to spy on your personal data, such as SMS messages, photos, audio recordings, or call history
This app is fake. It tries to take over your device or steal your data
This app can collect data that could be used to track you
This app looks like another app and can trick you into exposing personal data, misusing your device, or installing other apps
This app may display ads with unexpected behaviors (e.g., outside of the app environment, cannot be easily dismissed, or interfering with device functionality)
در صورتی که هر یک از پیام های بالا ( به غیر از موردی که در تصویر آمده است ) برای شما نمایش داده میشود ، دلیل این خطا تازگی انتشار و یا ناشناخته بود اپلیکیشن شما نیست! نرم افزار شما یک نرم افزار مخرب شناخته شده که به حریم خصوصی کاربر آسیب میزند و یا اطلاعات کاربر را به سرقت میبرد!
یکی از دلایل هم میتواند این باشد که اپلیکیشن شما فیک است و کاربرد مشابه برنامه دیگر را ارایه میدهد و یا اینکه تبلیغات و هزینه های ناخواسته را بر کاربر تحمیل میکند! لازم به ذکر است رفع این مشکلات نیز با همین آموزش ممکن است اما قطعا مدت زمان بیشتری برای بررسی و ایجاد تغییرات لازم است تا اپلیکیشن شما توسط گوگل پذیرفته شود.
مدتی بود که روی یک اپلیکیشن اندرویدی کار میکردم و قصد داشتم ابتدا نسخه فارسی اون رو در کافه بازار منتشر کنم ، خلاصه پس از گذراندن مراحل اشکال یابی و اشکال زدایی اپلیکیشن به پنل توسعه دهندگان بازار رجوع کردم و اپلیکیشن خودم رو بهمراه مابقی مخلفات آپلود کردم :))
روند بررسی سریع تر از اون چیزی بود که فکرش رو میکردم! چون دفعه های قبلی که برنامه ارسال میکردم به بازار چیزی حدود ۷۲ ساعت طول میکشید تا بررسی بشه این دفعه در کمتر از ۱۲ ساعت اپلیکیشن بنده بررسی شد ، در کمال تعجب برنامه تایید نشد و وضعیت برنامه به "نیازمند تغییرات" تبدیل شد ، متن موارد تغییرات بازار به این شرح بود:
خب مشکل اطلاعات گمراه کننده حل شد :))
اما خطای Blocked By Play Protect رو نتونستم به راحتی اون حل کنم ، دلیلشم این بود که از قبل به این مورد بر نخورده بودم ، به وبسایت های خیلی زیادی رفتم و با دوستان زیادی صحبت کردم ، از اونجا که نمیتونستم خیلی صبر کنم رفع این مشکل در کل ۲۴ ساعت طول نکشید برای بنده! اما در همون فروم ها و منابعی که خدمتتون عرض میکنم دوستانی رو دیدم که علی رغم انجام مراحل قید شده نتونسته بودن مشکل شون رو حل کنن!
این مورد رو خیلی بهش اشاره و تاکید کردن که از دسترسی های حساس و ویژه استفاده نکنید و بجاش از intent استفاده کنید! البته این کار رو نکردید هم نکردید فقط چیزی که بهتون میگم باید اپلیکیشن شما بهینه باشه یعنی استاندارد های حداقلی یک برنامه رو داشته باشه تا بشه اون رو "اپلیکیشن" تلقی کرد!
فقط حواستون به دسترسی های مربوط به حافظه ( STORAGE ) دستگاه باشه چون گوگل روشون خیلی خیلی غیرتیه :))
میدونم که این مورد رو شاید توی سایت های قبلی دیده باشید اما این دفعه همون کار هارو با یکم تفاوت انجام بدید! یک Key store بسازید و تمامی فیلد های اون رو پر کنید ، فیلد های مربوط به آدرس رو. بای United States و California و شهر محل سکونت هم یکی از شهر های آمریکا وارد کنید کد کشور هم 01 بزنید ، مورد بعدی هم اینه که پسورد های Key و Keystore رو متفاوت وارد کنید! این ربطی به تایید گوگل نداره ممکنه توی مراحل Build ارور بگیرید :))
این مورد هم خدمتتون گوشزد کنم که این key store رو یک جای امن ذخیره کنید و برای اپ های بعدیتونم ازش استفاده کنید ، این کار باعث میشه برای بررسی اپ های بعدی یک قدم جلو تر باشید!
نکته مهم این قسمت پر کردن کامل و دقیق تمام گزینه ها هست همچنین این تصویر میتونه خیلی مفید باشه.
اول قند شکن تون رو روشن کنید و سپس وارد اندروید استودیو بشید ماوستون رو تا منتها الیه به سمت بالا و راست ببرید و کلیک کنید! بله درسته:
دقیقا با همون ایمیلی که توی فرم در قسمت Email Address وارد کردید لاگین بشید و تمام دسترسی ها رو به اندروید استودیو بدید تا کاملا سینک بشه با پروژه تون. بعدش هم یکبار Rebuild Project کنید ( توجه کنید که حتما از ابزار گذر از تحریم استفاده کنید! )
خب کار اصلی همین قسمت هست ، باید به این آدرس برید و فرم مربوط به بررسی اپلیکیشن ها رو پر کنید اما کمی متفاوت تر با قبل! خب این صفحه ای هست که پیش روتون باز میشه:
خب این جا یک سری توضیحات هست که ایمان قلبی دارم میخونید و بعدش روی File an appeal بزنید و فرم به این شکل براتون باز میشه:
خب گزینه های Email address ، Developer name ، و Application package name رو خیلی دقیق پر کنید ( اسمتون رو کامل بنویسید اگه پسوند و پیشوند هم دارید بنویسید گوگل اسم های طولانی رو بیشتر دوست داره !!! )
مهم ترین قسمت کار دو بخش آخر هستن ، توجه کنید که توی قسمت URL to download your APK file باید آدرس ارجاع مستقیم به فایل خودتون بطوری که از انگلستان ، آلمان و آمریکا قابل دسترس باشن رو وارد کنید ، اگه سایت شخصی دارید که میتونید روی هاست خودتون فایل apk رو آپلود و اینجا وارد کنید و لینکتون باید بصورت Downloadable باشه (یعنی به یک فرمت فایل ختم بشه! ) مثل این:
https://yourdomain.pre/file/app/appname.apk
یک نکته خیلی مهم اینه که دامنه تون باید SSL داشته باشه و حتما با https آغاز بشه...
البته توصیه من استفاده از سرویس Dropbox هست که در ادامه توضیحاتش رو خدمتتون عرض میکنم
نکته مهمی که باید توجه کنید اینه که اپلیکیشن هایی که با زبان فارسی به گوگل فرستاده میشن و یا گوگل حس میکنه مبدا شون ایران هست یکم با مشکل مواجه میشن و حتی ممکنه تایید نشن! از این رو توصیه میکنم نسخه ای که برای گوگل میفرستید زبانش انگلیشی باشه و نسخه های بروزرسانی رو فارسی کنید و یا از همون ابتدا اپلیکیشن رو چند زبانه ارایه بدید ( که اگه Auto-detect باشه عالی میشه ، خب حداقل میدونیم که دستگاه هایی که توی گوگل باهاش اپلیکیشنتون چک میشه روی فارسی نیست زبونش :))
البته طبق تحقیقات اخیر بنده این مشکل معمولا در 3 یا 4 بروزرسانی اول اپلیکیشن در مارکت ها (بجز گوگل پلی) وجود داره یعنی با پکیج نیم ها و امضا های یکسان هم حتی برخی موارد نسخه 1.1 برنامه ارور نمیده اما 1.2 برنامه ارور میگیره! اما بعد از اون به مرور رفع میشه ، راحل ثابتی که ارایه میکنم بهتون اینه که حتما حتما اپلیکیشن و چند زبانه کنید و تشخیص خودکار رو براش فعال کنید!
خب این خودش کلک مرغابیه! چون تستر های گوگل پلی زبان دیوایسشون انگلیسی و تستر های کافه بازار زبان دیوایسشون فارسی هست و اپ بسته به زبان دستگاه اگه زبان خودشو تغییر بده عالی میشع!
در هنگام خروجی گرفتن از اپلیکیشن از همون Key Storeی که کامل ساختیم استفاده کنیم و در مرحله آخری پس از انتخاب Release مقادیر V1 (Jar Signature) و V2 (full APK Signature) رو با هم انتخاب کنید
خیلی از دوستان اشاره کردن که بعد از ارسال فرم به گوگل عبارت زیر براشون ارسال میشه:
Hi
You recently submitted an appeal for an app with Google Play Protect.
We were unable to download the APK file from the link you provided. Please submit a new appeal and make sure that the link is publicly browsable.
Thank You.
Google Play Protect Team
خب این نتیجه گوش نکردن به حرفای بنده هست! گوگل با خیلی از لینکا مشکل داره بهترین راه اینه که به دراپ باکس برید ، یک اکانت رایگان بسازید ، فایلتون رو آپلود و لینک دانلودش رو کپی کنید ، انتهای لینکی که میگیرید یک 0 وجود داره پاکش کنید و به 1 تبدلیش کنید! برای مثال:
لینک دانلودتون رو از
https://www.dropbox.com/s/stx0jdkf4ofb98ze/yourfile.apk?dl=0
به این
https://www.dropbox.com/s/stx0jdkf4ofb98ze/yourfile.apk?dl=1
خب حالا لینک جدید رو این دفعه برای گوگل بفرستید! اگه بازم بهتون گیر داد به این سایت برید و لینک رو کوتاه کنید!
اگه بازم قبول نکرد به این سایت برید و لینکی که اخرش رو به 1 تغییر دادی رو توسط همین سایت کوتاه کنید
اگه بازم قبول نکرد دیگه وقتش رسیده که پلت فرم برنامه نویسی تونو عوض کنید! :))
آره! چرا که نه؟ اصلا بیاید اولین اپ iOSتون رو خودتون بسازید!!
یکی از مهم ترین مشخه هایی که گوگل در بازبینی اپلیکیشن شما آن را لحاظ میکند ، صفحه درباره ما در اپلیکیشن است ، این صفحه باید دارای موارد زیر باشد:
خب فیلد آخر فرم ینی additional information to support your appeal برای این هست که از اپلیکیشن خود دفاع کنید و گوگل رو قانع کنید که چرا باید اپلیکیشن شما رو مخرب تلقی نکنه! یه راحل توپ اینکه که متن زیر رو کپی کنید و بجای APP_INFO توضیحات اپ خودتون رو اضافه کنید!
Greetings to the esteemed Google Team
I am sending this request to fix the "Blocked by Pay Protect" error
{APP_INFO}
Fast, simple, free and lightweight, no annoying ads ,This app does not collect and store user data!Also, no unnecessary cost is imposed on the user and is completely free , It also certifies that this app does not harm user privacy and is not harmful to users
Thank you
بجای APP_INFO یه توضیحات یک خطی جامع ، مفید و مختصر ، از عبارت " an simple application to... " هم در ابتداش استفاده کنید که خیلی خیلی جواب میده! برای ترجمه متون خود به فارسی هم از ابزار ترجمه گوگل استفاده کنید. مثلا برای یک موزیک پلیر این APP_INFO صد در صد جواب میده!
A simple app to manage and play audio files from the user's device
شاید یکم عجیب غریب باشه اما بعضی مواقع پس از تکیمل و ارسال فرم گوگل بهتون میگه که این اپلیکیشن در حال حاضر داره بررسی میشه!!!
Hi
You recently submitted an appeal for an app with Google Play Protect.
We noticed that an appeal for this app is already pending review. Our team will review the app and remove the warning if an error was made. There is no need to resubmit the app for review
Thank You.
Google Play Protect Team
مشکلی نیست ۲۴ ساعت صبر کنید اگه ارور رفع نشده بود دوباره درخواست ارسال کنید از این لینک
برخی از کاربرا پس از مدتی از ارسال درخواست این پیام رو از گوگل دریافت میکنند:
Hi
You recently submitted an appeal for an app with Google Play Protect.
The link you have provided does not lead to an APK file or the file is corrupted. Please submit a new appeal and check that you are providing the link to the correct APK file.
Thank You.
Google Play Protect Team
این هم دقیقا شبیه همون مشکل عدم شناسایی لینک یا فایل APK توسط گوگل هست منتها تفاوت این با قبلی این هست که در قبلی بلافاصله پس از ارسال فرم اخطار به شما ارسال میشد اما این ارور پس از بررسی دستی ارسال میشه!
راحلش خیلی سادست! از سرویس دراپ باکس که در بالا توضیح دادم و ادامه راحل ها استفاده کنید و دوباره فرم رو ارسال کنید.
خب تبریک میگم اگه به مشکلات بالا برنخوردید حتما براتون این پیغام ایمیل شده:
Hi
You recently submitted an appeal for an app with Google Play Protect.
We have successfully received the appeal for your app. Our team will review the app and any information you have provided.
Thank You,
Google Play Protect Team
اگه تمامی مراحل بالا رو به درستی طی کرده باشید خیلی زمان زیادی طول نمیکشه که مشکلتون حل میشه و دیگه اون ارور رو مشاهده نمیکنید! اگه مشکلتون رو تونستید و حتی نتونستید با این روش حل کنید خوشحال میشم باهام در میون بزارید :)