متاسفانه در بخشهای زیادی به دلیل اعمال تحریم، توسعه دهندگان ساکن ایران در استفاده از سرویسها و نرم افزارها با محدودیتهایی مواجه هستند که قسمتی از این محدودیت، جلوگیری از اتصال به سرویس توسط IP های ایران است.
توسعه دهندگان و برنامه نویسان اندروید نیز از این تحریمها بی نصیب نمانده و با مشکلاتی دست و پنجه نرم میکنند.
اولین مورد دسترسی به وب سایت Developer اندروید است که به روی کاربران ایرانی بسته شده و دسترسی به آن، جز با تغییر آیپی و استفاده از آیپی کشورهای ثانویه امکان پذیر نیست. موارد مهم دیگر، دسترسی آنلاین به ابزار (Android SDK) و مخزن (Repository) کتابخانههای مورد استفاده در پروژههای اندرویدی است.
هنگام اضافه کردن کتابخانه به پروژه در صورت اتصال با IP ایران، اروری مشابه تصویر بالا دریافت میکنید. لازم نیست در هربار ساخت پروژه جدید یا اضافه کردن کتابخانه به پروژه، IP را تغییر دهید. کتابخانهای مانند androidx.appcompat:appcompat که در همهی پروژهها به صورت پیش فرض قرار دارد، فقط کافی است یکبار دریافت شود. در پروژههای بعدی نیاز به دریافت آنلاین مجدد نیست (مگر آنکه از نسخهای متفاوت از نسخه قبل بخواهید استفاده کنید). حتی شاید برای این کتابخانه هیچگاه نیاز به دریافت آنلاین نباشد. این کتابخانه و سایر کتابخانههای مربوط به 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 را انتخاب کنم:
اگر مشکل رفع نشد مجدد تست کنید. مثلا اگر کتابخانه با موفقیت به پروژه اضافه نشد و ارور Unable resolve dependency for… گرفتید، یکبار دیگر Sync کنید. ممکن است در یک لحظه سرعت کاهش یابد یا ارتباط با سرور قطع شود. اگر باز هم حل نشد، نرم افزار تغییر آی پی را متوقف و مجدد اجرا کنید. یا راهنمای نرم افزار را مطالعه کنید. معمولا این ابزار یک IP و Port اختصاص می دهند که با تعریف آن در اندروید استودیو، احتمالا مشکل رفع شود. مانند تصویر زیر:
بعد از تعریف پروکسی در صفحه تنظیمات، قبل از بازگشت به محیط پروژه، اندروید استودیو به شما اعلام می کند که برای استفاده گریدل از پروکسی، اطلاعات آن به فایل gradle.properties در پروژه نیز اضافه خواهد شد:
در صورتی که بعدا لازم شد از نرم افزار و سرویس دیگری برای تغییر آی پی استفاده کنید، حتما دو خطی که به این فایل اضافه شده را حذف کنید تا تداخل پیدا نکند. پیشنهاد من این است بلافاصله بعد از اینکه کارتان با پروکسی تمام شد، حذف را انجام دهید زیرا این موارد عموما در خلال توسعه نرم افزار فراموش می شود و ممکن است در آینده وقت زیادی را از ما بگیرد. دقت کنید خط org.gradle.jvmargs=-Xmx1536m به هیچ عنوان حذف نشود. ضمنا در صفحه HTTP Proxy نیز مجدد No Proxy را انتخاب کنید.
تاکید میکنم در استفاده از ابزار رایگان شاید مجبور باشید وقت بیشتری برای گرفتن نتیجه مطلوب بگذارید و لازم باشد گزینه های متفاوتی را تست کنید. مثلا در تعریف Proxy اگر با گزینه HTTP جواب نگرفتید، SOCKS را انتخاب کنید.
مدتی است سرویس رایگانی با نام FOD یا Freedom of Developers مخصوص توسعه دهندگان ایرانی معرفی شده که فقط وب سایتها و سرویسهای مورد نیاز توسعه دهندگان (در زمینه های مختلف) را از پروکسی عبور میدهد که به سادگی و با تعریف IP و Port معرفی شده در اندروید استودیو، مشکل رفع میشود. توضیحات بیشتر در خصوص سرویس FOD در صفحه گیت هاب: کلیک کنید
در پایان از شما درخواست دارم تجربیات خود را در قسمت دیدگاهها با سایرین به اشتراک بگذارید.
از fod استفاده کردم. sdk و شبیه سازم دانلود شد. ولی هنگام راه اندازی پروژه بر روی شبیه ساز خطای Could not find com.android.tools.build:gradle:1.3.50.
رو دریافت می کنم. پراکسی رو قطع کردم و با فیلترشکنهای مختلف هم امتحان کردم. متاسفانه درست نمیشه. راهی نیست بشه این gradle رو یه جور دیگه دانلود و نصب کرد؟ واقعا راه انداختن این اندروید استودیو از خود برنامه نویسی سخت تره!!!
به جای این ها یه راه حل ارائه بدین برای دسترسی و بهره برداری از سرویس های تحریم شده
این چیزی نوشتید کوچکرتین کاریه که میشه کرد
یه راه حل پیدا کنید برای استفاده از سرویس هایی مثل google firestore و crash analytics روی دیوایس
و صدها سرویسی که این طوری تحریم شدن
منتظر امر جنابعالی بودم
سلام من تمام کار ها رو انجام دادم ولی همون ارور رو دوباره می دهد
چه اروری؟
دستتون درد نکنه.من از FOD استفاده کردم مشکلم حل شد.براتون آرزوی موفقیت روزافزون میکنم
سلام
فقط سایت
shecan.ir
بهترین راه حل
سلام وقت بخیر ببخشید من تو خروجی گرفتن اندروید از یونیتی مشکل دارم و همش میزنه که jdkرو پیدا نمیکنه درصورتی که برای سیستم تعریف کردم…. ممنون میشم راهنماییم کنید
بنده تجربه ای در زمینه یونیتی ندارم
با سلام برای استفاده از سرویس های فایربیس ماتاسفانه تحریم هستیم و برای اینکه هر دفعه از کابر نخواهیم فیلترشکن را روشن کنند راهی برای دورزدن هست؟ خیلی ممنون
فایربیس برای کلاینت که تحریم نیست
سلام ببنید من الان برای سرویس اعتبار برای کلاینت مشکل دارم به نظر شما کدی برای تغییر ip در وجود داره؟
متوجه منظورتون نشدم
تا قبل از این با سرور پروکسی fodev می شد به googlr() jcenter() دسترسی داشته باشم ولی یکهو همه چیز انگار قطع شده سایر پروکسی ها هم کار نمی کنن دی ان اس هم کار نمی کنه . وقتی یک کتابخانه به ریپازیتووری اضافه می کنم روی ایمپورت می مونه نه خطا می ده نه قطع می کنه هیچ چی . فقط در حال ایمپورت می مونه . نه گردل وصل میشه و نه خود اندروید استودیو .
خارج از اون در محیط ویندوز همه چیز درسته و مثل قبل کار می کنه
علت چی میتونه باشه ؟
حتی به خود گوگول میون هم می تونم برم و کتابخانه را به صورت aar دانلود کنم ولی دسترسی داخا اندروید استودیو کلهم قطع شده
tor Sock هم زدم اون هم کار نمیکنه
گاهی اوقات مشکل از پروکسی ها نیست و حل کردنش واقعا مشکله. مثلا من همزمان روی دو لپ تاپ تست کردم رو اولی که سخت افزارش ضعیف تر بود مشکل داشت ولی روی دومی مشکلی وجود نداشت. البته شایدم ارتباطی به ضعف سخت افزار نداشته!
وضعیت فولدر SDK به این صورته الان:
platform-tools 30.0.3
tools 26.1.1
build tools 28.0.3 , 30.0.0
API 27.0.3 , 28.0.6 , 30.0.2
الان تو فایل build.gradle نسخه ۳۰ رو کردم ۲۸ که داشتم بیلد شد ولی میخوام ببینم برای هر بار به روز رسانی َAPI به این مشکل برمیخورم؟ اینطوری که از نسخه های جدید نمیتونم استفاده کنم..
یک پیشنهاد هم دانلود Extras|Android Support Repository
بود که من در SDK Manager هرچی گشتم پیداش نکردم..
یه سوال دیگه این که جایگزین کردن
maven{
url “https://maven.aliyun.com/repository/google”
}
maven {
url “https://maven.aliyun.com/repository/jcenter”
}
به جای google()
jcenter()
دقیقا چه کاری انجام می ده. البته من این کار رو کردم نتیجه ای نگرفتم.
ممنون
ایراد از جای دیگه ای هست
این مورد جایگزینی هم که فرمودین مسلما نتیجه ای نمیگیرین
سلام
َAPI ام رو به روز رسانی کردم به نسخه ی ۳۰
پروژه رو با FOD بیلد می کنم خطا می ده که نسخه ۳۰ رو پیدا نمی کنه.
قبلا هم با FOD بیلد کرده بودم.
مشکل چیه؟
مطمئنید API ورژن ۳۰ نصب شده؟
با عرض سلام و ادب خدمت شما ابتدا می خواستم از مطالبتان تشکر کنم و سپس سوالی دارم و آن اینکه من با روش دور زدن تحریم ها (وی پی ان)اندروید استودیو را نصب کردم و می خواستم بپرسم که آیا نیازی به نصب اس دی کی می باشد؟
با تشکر فراوان
مبحث آموزش نصب اندروید استودیو رو مطالعه بفرمایید تا کامل به جواب برسید
پس اگه اکیه که هیچی.ممنون از وقتی که گذاشتید???
نه ایکون سمت راست منظورم نیست.ایکون های سمت چپ همشون خاکستری اند.حتی مثلا تو سربرگ view .زیر مجموعه tool window مشاهده کنید همه ایکون ها خاکستری اند و عملکرد ندارند.یا خود گریدل در سمت چپ (جایی که مربوط به projectsهست) سبز نیست.
من مسیر Jdk رو عوض نکردم.خودش عوض کرده و وقتی میرم درستش کنم تغییرش نمیده. وقتی در قسمت file.project structure میرم تا مسیر jdk رو درست کنم. و وقتی مسیرو دادم و apply میزنم، میزنه checking availability و زمان زیادی طول میکشه و هیچ تغییری انجام نمیده.
آیکون گریدل که بایدم خاکستری باشه. الان من مشکلی نمیبینم تو اسکرین شات شما