چگونه تحریم‌های نرم افزاری را دور بزنیم؟

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

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

اولین مورد دسترسی به وب سایت Developer اندروید است که به روی کاربران ایرانی بسته شده و دسترسی به آن، جز با تغییر آی پی و استفاده از آی‌پی کشورهای ثانویه امکان پذیر نیست. موارد مهم دیگر، دسترسی آنلاین به ابزار (Android SDK) و مخزن (Repository) کتابخانه‌های مورد استفاده در پروژه‌های اندرویدی است.

ارور Unable resolve dependency for

هنگام اضافه کردن کتابخانه به پروژه در صورت اتصال با IP ایران، اروری مشابه تصویر بالا دریافت می‌کنید. لازم نیست در هربار ساخت پروژه جدید یا اضافه کردن کتابخانه به پروژه، IP را تغییر دهید. کتابخانه‌ای مانند androidx.appcompat:appcompat که در همه‌ی پروژه‌ها به صورت پیش فرض قرار دارد، فقط کافی است یکبار دریافت شود. در پروژه‌های بعدی نیاز به دریافت آنلاین مجدد نیست (مگر آنکه از نسخه‌ای متفاوت از نسخه قبل بخواهید استفاده کنید). حتی شاید برای این کتابخانه هیچگاه نیاز به دریافت آنلاین نباشد. این کتابخانه و سایر کتابخانه‌های مربوط به Support در Android Support Repository قرار دارند و اگر نسخه مدنظر شما در Android Support Repository موجود باشد، نیاز به نصب آنلاین نیست. بیشتر در نصب و دریافت کتابخانه‌هایی دچار مشکل می‌شویم که توسط سایر توسعه دهندگان تهیه شده و در مخزن آنلاین گوگل قرار گرفته‌اند.

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

تذکر: قبل از هر اقدامی مطلب را تا انتها و با دقت مطالعه کنید.
بروزرسانی: به دلیل درخواست “کارگروه تعیین مصادیق محتوای مجرمانه” توضیحات مربوط به معرفی سرویس‌های VPN مناسب برای اندروید استودیو حذف شد. بنابراین تنها به معرفی سرویس‌های ایرانی ویژه عبور از تحریم‌ها اکتفا می‌کنم.

سرویس Shecan: یک سرویس رایگان دور زدن تحریم‌های نرم افزاری است که بدون نیاز به نصب هیچگونه برنامه‌ای و تنها با تعریف DNS های آن روی تنظیمات کانکشن اینترنت سیستم عامل، سرویس‌های تحت تحریم از سرورهای پروکسی عبور داده می‌شود.

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

سرویس Anti403.ir: یک سرویس دیگر و مشابه سرویس Shecan که عبور از تحریم‌ها را از دو روش DNS و نصب برنامه اختصاصی آن فراهم می‌کند. هردو روش خروجی یکسانی دارد و انتخاب روش به نظر و سلیقه شما بستگی دارد. اطلاعات بیشتر را در وب سایت anti403.ir مطالعه کنید.

سرویس FOD: سرویس رایگانی با نام FOD یا Freedom of Developers که مخصوص توسعه دهندگان ایرانی معرفی شده و کاربردی مشابه دو سرویس قبل دارد. البته با این تفاوت که برای استفاده از آن باید Domain و Port آن را در تنظیمات Android studio و یا هرجایی که نیاز هست، تعریف کرد.
درحال حاضر و با توجه به وجود سرویس‌هایی مانند شکن، استفاده از FOD را توصیه نمی‌کنم؛ مگر آنکه سرویس‌های فوق در دسترس نباشد. دلیل آن را در تذکر زیر توضیح داده‌ام.

توضیحات بیشتر در خصوص سرویس FOD در صفحه گیت هاب: کلیک کنید

تذکر: سرویس FOD صرفاً دامین‌هایی که برای ایران تحت تحریم هستند را پوشش داده و سایر سرویس‌ها و آدرس‌ها در هنگام فعال بودن این پراکسی از دسترس خارج می‌شوند. بنابراین لازم است هنگام نیاز به اتصال به سرویس‌هایی که مشمول تحریم نیستند، این پراکسی را غیر فعال نمائید. به عنوان مثال اگر Gradle نیاز به بروزرسانی دارد، قبل از آن باید در تنظیمات پراکسی در اندروید استودیو، no proxy را انتخاب کنید تا عملیات دانلود و نصب نسخه جدید گریدل انجام شود.
علاوه بر این، با تعریف Proxy روی اندروید استودیو، آی‌پی و پورت آن درون gradle.properties ذخیره می‌شود که صرفا با غیرفعال کردن پروکسی در تنظیمات، این اطلاعات از فایل حذف نشده و هربار باید به صورت دستی حذف شود. این مسئله علاوه بر سخت کردن فرایند، باعث فراموشی تکرار این مراحل و بروز مشکل در اتصال به مخزن‌های غیر تحریمی می‌شود.

بعد از تعریف پروکسی در صفحه تنظیمات، قبل از بازگشت به محیط پروژه، اندروید استودیو به شما اعلام می کند که برای استفاده گریدل از پروکسی، اطلاعات آن به فایل gradle.properties در پروژه نیز اضافه خواهد شد:

تنظیمات پروکسی در فایل gradle.properties

در صورتی که بعدا لازم شد از نرم افزار و سرویس دیگری برای تغییر آی پی استفاده کنید، حتما دو خطی که به این فایل اضافه شده را حذف کنید تا تداخل پیدا نکند. پیشنهاد من این است بلافاصله بعد از اینکه کارتان با پروکسی تمام شد، حذف را انجام دهید زیرا این موارد عموما در خلال توسعه نرم افزار فراموش می شود و ممکن است در آینده وقت زیادی را از ما بگیرد. دقت کنید خط org.gradle.jvmargs=-Xmx1536m به هیچ عنوان حذف نشود. ضمنا در صفحه HTTP Proxy نیز مجدد No Proxy را انتخاب کنید.

برنامه‌های تغییر IP عمومی: چنانچه به هر دلیلی استفاده از سرویس‌های فوق امکان پذیر نبود لازم است از برنامه‌ها و ابزار عمومی (رایگان و یا غیر رایگان) مانند VPN و Proxy برای دور زدن تحریم‌ها استفاده کنیم. برخی از نرم افزارها ممکن است عملکرد مناسبی نداشته و باز هم در اتصال اندروید استودیو به مخزن آنلاین مشکل پابرجا باشد. بنابراین لازم است چندین مورد را امتحان کنید. برنامه‌های رایگان و عمومی معمولا از سرعت کمتری نسبت به سرویس‌های پولی و یا مواردی مثل Shecan برخوردار هستند و ممکن است در برخی موارد به ما کمکی نکند. بخصوص در هنگام ساخت پروژه جدید در اندروید استودیو یا هنگام اضافه کردن کتابخانه به پروژه.

در تست هایی که انجام دادم در اکثر موارد با استفاده از ابزار رایگان نیز لیست ابزار SDK Manager به خوبی از سرورهای گوگل دریافت می‌شد و امکان نصب ابزار به صورت آنلاین وجود داشت. اما در محیط پروژه و اضافه کردن کتابخانه به پروژه، در مواردی با شکست مواجه شد. کتابخانه‌ها از مخزن آنلاین google و mavenCentral دریافت می‌شوند که این سرویس‌ها بر روی IPهای ایران بسته بوده و از حساسیت بالاتری برخوردار است.

در تستی که با یکی از ابزارهای عمومی و رایگان انجام دادم، لازم بود بعد از فعال شدن نرم افزار و اطمینان از اینکه تغییر آی پی با موفقیت انجام شده (توسط وب سایتهای نمایش آی پی مانند ip2location.com)، در تنظیمات اندروید استودیو در قسمت HTTP Proxy، گزینه Auto-detect proxy settings را انتخاب کنم:

Auto Detect Proxy Settings

اگر مشکل رفع نشد مجدد تست کنید. مثلا اگر کتابخانه با موفقیت به پروژه اضافه نشد و ارور Unable resolve dependency for… گرفتید، یکبار دیگر Sync کنید. ممکن است در یک لحظه سرعت کاهش یابد یا ارتباط با سرور قطع شود. اگر باز هم حل نشد، نرم افزار تغییر آی پی را متوقف و مجدد اجرا کنید. یا راهنمای نرم افزار را مطالعه کنید. معمولا این ابزار یک IP و Port اختصاص می دهند که با تعریف آن در اندروید استودیو، احتمالا مشکل رفع شود. مانند تصویر زیر:

تنظیمات پروکسی در اندروید استودیو

تذکر: در استفاده از برخی سرویس‌ها ممکن است نیاز باشد بعد از اعمال تغییرات، یکبار کاملا از اندروید استودیو خارج شده و مجدد اجرا کنید. البته برای مواردی مانند FOD عموما نیازی به انجام این کار نیست زیرا تنظیمات درون خود اندروید استودیو اعمال می‌شود.

تاکید میکنم در استفاده از ابزار رایگان شاید مجبور باشید وقت بیشتری برای گرفتن نتیجه مطلوب بگذارید و لازم باشد گزینه های متفاوتی را تست کنید. مثلا در تعریف Proxy اگر با گزینه HTTP جواب نگرفتید، SOCKS را انتخاب کنید.

تذکر: برای اطمینان از اینکه روش پیاده‌سازی شده به درستی کار می‌کند یا نه، روی گزینه Check connection در انتهای برگه HTTP Proxy کلیک کرده و آدرس https://developer.google.com را وارد کنید. چنانچه پیغام Connection successful گرفتید یعنی اتصال به سرویس با موفقیت انجام شده و چنانچه خطای ۴۰۳ گرفتید یعنی لازم است روش‌های دیگر را امتحان کنید.

در پایان از شما درخواست دارم تجربیات خود را در قسمت دیدگاهها با سایرین به اشتراک بگذارید.

این مطلب چقدر برایتان مفید بود؟ لطفا امتیاز دهید
4.4/5 - (136 امتیاز)
پرسش‌ها و دیدگاه‌های کاربران
دوره آموزش برنامه نویسی اندروید
دوره آموزش برنامه نویسی اندروید

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

یک دیدگاه بنویسید

پرسش‌های زیر تایید و پاسخ داده نـــخواهند شد:
۱: جزء موارد مطرح شده در صفحات مشکلات و پرسش‌های رایج و بروزرسانی‌های محتوای آموزشی باشد
۲: سوال قبلا توسط کاربران در دیدگاه‌ها مطرح و پاسخ داده شده باشد
۳: پرسش خارج از مبحث آموزشی موجود در این صفحه باشد