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

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

توسعه دهندگان و برنامه نویسان اندروید نیز از این تحریم ها بی نصیب نمانده و با مشکلاتی دست و پنجه نرم می کنند!

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

ارور Unable resolve dependency for

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

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

به شخصه ترجیح می دهم مبلغ ناچیزی بپردازم و در عوض از یک سرویس پایدار و مناسب استفاده کنم. در حال حاضر وبسایت هایی هستند که با مبلغ حدود ۳ یا ۴ هزار تومان در ماه، ابزار متعددی برای تغییر IP در اختیار مشتری قرار می دهند. به عنوان مثال سرویسی که من استفاده می کنم ابزاری مانند VPN، Kerio، OpenVPN و Cisco AnyConnect را پشتیبانی می کند. از بین این گزینه ها بهترین راه استفاده از Cisco AnyConnect است. سیسکو به طور کامل ارتباط سیستم عامل با اینترنت را اصطلاحا تونل می زند و به هیج عنوان نیاز به اعمال تنظیمات در نرم افزارهای هدف (مانند اندروید استودیو) نیست. البته در تستی که با VPN انجام دادم نیز مشکلی مشاهده نشد. با اینحال بهتر است قبل از خرید از سرویس دهندگان ایرانی، اکانت تست بگیرید و بخواهید تا سرویسی به شما معرفی کند که بهترین کارایی را برای دور زدن تحریم‌ها دارد. در ایران اکثر کاربران از این سرویس ها برای دور زدن فیلـ ـ ترینگ استفاده می کنند که تقریبا در همه موارد به نتیجه مطلوب دست می یابند اما دور زدن تحریم های نرم افزاری مقداری حساس تر است.

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

تذکر: ممکن است بعد از تغییر آی پی لازم باشد یکبار اندروید استودیو را بسته و مجدد باز کنید. اما خوشبختانه من با این مسئله مواجه نشده ام.

اما ممکن است تمایلی به پرداخت هزینه نداشته باشید. اینجا کار کمی برای شما سخت می شود و لازم است چند دقیقه ای را صرف یافتن راه حل کنید. سرویس های رایگان و عمومی معمولا از سرعت کمتری نسبت به سرویسهای اشتراکی برخوردار هستند و ممکن است در برخی موارد به ما کمکی نکند. بخصوص در هنگام ساخت پروژه جدید در اندروید استودیو یا هنگام اضافه کردن کتابخانه به پروژه. در تست هایی که انجام دادم در اکثر موارد با استفاده از ابزار رایگان نیز لیست ابزار SDK Manager به خوبی از سرورهای گوگل دریافت می شد و امکان نصب ابزار به صورت آنلاین وجود داشت. اما در محیط پروژه و اضافه کردن کتابخانه به پروژه، در مواردی با شکست مواجه شد. کتابخانه ها از مخزن آنلاین jcenter دریافت می شوند که این سرویس بر روی آی پی ایران بسته بوده و از حساسیت بالاتری برخوردار است.

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

Auto Detect Proxy Settings

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

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

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

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

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

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

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

یکی از شرکت های ایرانی نیز سرویس رایگانی مخصوص توسعه دهندگان معرفی کرده که فقط وب سایتها و سرویس های مورد نیاز توسعه دهندگان (در زمینه های مختلف) را از پروکسی عبور می دهد که به سادگی و با تعریف IP و Port معرفی شده در اندروید استودیو، مشکل رفع می شود. توضیحات بیشتر در خصوص سرویس FOD شرکت Backtory در صفحه گیت هاب: کلیک کنید

بروزرسانی: شرکت امنیتی معتبر Avira یک سرویس تغییر IP معرفی کرده که نسخه رایگان آن محدودیت ۵۰۰ مگابایت در ماه را درنظر گرفته که قطعا برای سینک شدن پروژه و دریافت کتابخانه ها کفایت می کند. جهت دریافت کلیک کنید

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

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

    my problem is solved with cisco AnyConnect

  • زند گفت:

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

    1. سید مهدی مطهری (مدیر) گفت:

      بعیده همچین مسئله ای. وقتی بفرض یکبار کتابخانه appcompatv7-27.1.1 دانلود شد برای پروژه های بعد از کش میخونه و نیاز به دانلود مجدد نداره. دقت کنید شاید ورژنش متفاوت بوده

  • زند گفت:

    سلام
    اقا مهدی واقعن دمتون گرم
    خیلی خیلی ممنونم
    کار من با free gate حل شد

  • امین گفت:

    درو من همه مراحل انجام دادم ولی
    به gradle سینس نمیشه (پراکسی میزنم کار نمیکنه)

  • زینب گفت:

    من Cisco را خریدم ولی بازم بیلد نمیشه
    پروکسی هم بصورت no proxy گذاشتم و در واقع تنظیماتی نذاشتم
    خیلی گشتم دنبال راهکار
    همه راه حل های ممکن و امتحان کردم
    sync succeful میشه ولی وقتی واسه بیلد میره طول میکشه
    org.gradle.initialization.ReportedException: org.gradle.internal.exceptions.LocationAwareException: Execution failed for task ‘:app:mergeDebugResources’.
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:139)
    و کلی از این ارورها میده
    یه شب تا صبح سیستم روشن بود ولی همچنان بیلد نمیشه و در اخرم
    No server to serve request. Check logs for details.

    1. سید مهدی مطهری (مدیر) گفت:

      چیزی به ذهنم نمیرسه. یه بار پروژه رو ReBuild کنید

  • پری گفت:

    سلام
    خیلی ممنونم. کمک بزرگی کردید. من از Avira استفاده کردم.

  • parandAkb گفت:

    سلام
    موارد جالبی مطرح شد. من همه اونها رو امتحان کردم اما جواب نگرفتم، سوالم این است که در حال حاضر اگر دوستی این مشکل رو حل کرده، لطفا اعلام کند

  • Hamedudk گفت:

    سلام. دمت گرم درست شد با این fod.backtory.com:8118!
    این gradle لعنتی درست شد.
    خیلیییییییییییییییییییییییییییییییی لایک داری.

  • حجت گفت:

    تجربه من میگه با برنامه تغییر آی پی سای*ون میشه اندروید استدیو رو آپدیت کرد اما گریدل بیلد نمیشه، ولی تغییر آی پی فری*یت برعکسه، آپدیت کامل میشه لحظه آخر نصب نمیشه، ولی به راحتی گریدل بیلد میشه و ارور نمیده

  • کاظم گفت:

    خیلی ممنون از شما
    کلی stackoverflow را سرچ زدم اما جواب نگرفتم ولی با راه شما مشکلم حل شد.
    تشکر

  • مجتبی گفت:

    سلام
    مطلبتون واقعا مفید بود. بنده از آدرسی که تو github بود به عنوان پراکسی سرور تو تنظیمات Android studio استفاده کردم و مشکلم حل شد.
    tnx…

  • محمدرضا گفت:

    خیلی ممنون. مقالتون بسیار کمکم کرد. من از سایف…ن استفاده میکردم؛ در بعضی مواقع جواب نمیداد. ولی به نکات ریزی در این مقاله اشاره کردید که واقعا جوابگو هستند…
    ممنون

  • نام گفت:

    سلام
    من طبق آموزش دیگه ای که تو همین سایت داشتید sdk رو ساختم و درست کردم کامل و دقیق
    اما مشکل متاسفانه حل نشد و گریدل خطا میداد ، پکیج sdk با هیچ فیلترشکنی کنار نیومد و آپدیت میخواد هیچ راهی هم برای آپدیت آنلاینش نبود اگه میشه کمک کنید تا اندروید استودیو من راه بیوفته
    با تشکر …

    1. سید مهدی مطهری (مدیر) گفت:

      کانال تلگرام سایت رو چک کنید

  • سینا گفت:

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

    1. سید مهدی مطهری (مدیر) گفت:

      وظیفس

  • Amir گفت:

    سلام من اندروید استدیو رو با یه قند شکن معمولی تو ویندوز ابزاراشو دانلود کردم فقط برا اتصال به کتابخانه ها مشکل داشتن که با یه اشتراک کریو حل شد اما الان میخوام تو لینوکس نصبش کنم با همون اشتراک تا نصفه دانلود میشن و دانلود قطع میشه دوباره باید از اول دانلود بشن من چند بار خواستم دانلود کنم ولی نصفه راه قطع شده اگه امکانش هست راهنمایی کنید

  • farzin khamushi گفت:

    سلام این که مشکلی نیست به نظرم من حلش کردم با hotspot shield یا سایفون مسئله تغییر آی پی حل میشه مسئله اصلی اینه که برای انتشار داخل اون باید ثبت نام کنید و ویزا کارت میخواد و گرونه اگه کسی اول کارش باشه و ویزا کارت یا پی پال و … رو تو ایران به راحتی نمیشه بدست آورد .

    1. سید مهدی مطهری (مدیر) گفت:

      انتشار؟ داخل چی؟

      1. farzin khamushi گفت:

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

  • jj گفت:

    سلام من هم خودکار هم منوال و هم از gradle properties سعی کردم اما در اخرین ورژن به مشکل میخوردم

  • یوسف گفت:

    سلام ،من اندروید استدیو ورژن ۳٫۰٫۱ رو نصب کردم همه ابزارهاشو رو هم از sdk manager ش دانلود کردم اما چند ارور داره که یکیشون همچین چیزی میگه
    Error:Unable to resolve dependency for ‘:app@debug/compileClasspath’: Could not resolve com.android.support:appcompat-v7:27.0.2.
    ممنون میشم اگه کمکم کنید

    1. سید مهدی مطهری (مدیر) گفت:

      ممنون میشم همین مطلب رو مطالعه کنید!

      1. یوسف گفت:

        خوندم چند بارم خوندم اشتراکم خریدم ولی باز همونطوریه

        1. سید مهدی مطهری (مدیر) گفت:

          از چه طریق به اشتراک متصل میشید؟ کانکشن وی پـ ی ان یا با نرم افزار؟

  • امیر گفت:

    برای ubuntu چیکار کنیم اگه میشه یه vpn برا ubuntu معرفی کنید

    1. سید مهدی مطهری (مدیر) گفت:

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

  • محمد حسین گفت:

    من یک ماه درگیر آن مسائل بودم و بالاخره قبل از این پست خودم راه حل ساده و کاملا رایگان رو پیدا کردم کافیه اول یه vpnسبک مثل سایفون ویندوز رو بگیرد و سرور رو روی انگلستان تنظیم کنید و حالا برید سراغ اندروید استودیو در قسمت تنظیمات در http proxy روی atuo detect رو فعال کنید و اوکی پایین صفحه رو بزنید
    درضمن از هر نسخه از اندروید استودیو استفاده می‌کنید از jdk1/8 استفاده کنید و اون رو روی اندروید استودیو تنظیم کنید (دقت کنید نسخه های بالاتر jdk, مشکلاتی رو ایجاد میکنند خصوصا در اندروید استودیو ورژن ۳ ) تمام قسمت های فیلتر براتون باز و هیچ خطایی دریافت نخواهید کرد تمام کتابخانه و sdk ها و نسخه جدید بدون هیچ مشکلی در دسترس شماست

    1. عباس گفت:

      سلام اقای محمد حسین من هم همین مشکل رو داشتم تا اینکه به طور کاملا اتفاقی وارد این پست شدم و مطلب شما رو خوندم.کاری که گفتید انجام دادم و الان اندروید استودیوم درست شده ی دنیا ممنون

    2. سالار گفت:

      سلام . من هم نتونستم با vpn مشکل رو حل کنم .jdk 8.1 رو نتونستم پیرا کنم میشه بفرستید برام ؟؟ خیلی وقته گیر کردم و کارم جلو نمیره
      salar.rezayani@gmail.com

    3. ابراهیم گفت:

      سلام محمد حسین جان کارت عالی بود داداش دمت گرم ۳ هفته بود همین جوری لنگ بودم بی نهایت ممنون دوستان این روش رو حتماً امتحان کنید کاملا جواب میده فدات شم که تلاش خودتو اینجا نوشتی
      دوسسسسسسسسسسستتتتتتتت دارم

    4. مجتبی گفت:

      داداش دمت گرم ، جواب داد

    5. آنجل گفت:

      سپاس
      اما من با اینکه دنلود هم شدن و نصب هم هستن و یک دور رستارتشم کردم همچنان تو sdk manager جلوی گزینه android-26 نوشته notinstall???
      واقعا خستم کرده نمیدونم چیکار کنم

      1. سید مهدی مطهری (مدیر) گفت:

        اگه فایل به درستی دانلود شده و در مسیر درست جایگزین شده نباید مشکلی باشه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

کد امنیتی *