تبلیغات

keystore در اندروید چیست؟

keystore در اندروید
امضا کردن نرم افزار توسعه داده شده


در برنامه نویسی اندروید موضوع بسیار مهمی به نام Keystore یا Sign Key وجود دارد که هربرنامه نویس اندرویدی باید با این موضوع آشنا باشد. در ادامه با فول کده همراه باشید.

keystore چیست؟

وقتی ما برنامه‌ای را توسعه می‌دهیم، و آن را اجرا (Run) یا به عبارتی کامپایل می‌کنیم، و سپس نتیجه را روی شبیه ساز یا گوشی تست می‌کنیم، خروجی apk در مسیر app\build\outputs\apk برای اندروید استودیو و در مسیر bin برای اکلیپس ساخته می‌شود. البته در اندروید استودیو دو خروجی ساخته می‌شود که یکی عبارت debug و دیگری unsigned را در نام خود دارد. اولی با keystore دیباگ امضا شده، ولی دومی اصلا امضا نشده است.

حالا اگر بخواهیم همین فایل را در مارکت‌ها منتشر کنیم، مثل مارکت بازار، به ما خطا می‌دهد که این برنامه با کلید دیباگ امضا شده است… اما یعنی چه؟!

هربرنامه ای در اندروید می تواند یک keystore (کلید فروشگاه) داشته باشد. فرض کنید یک نفر برای یک شرکتی یا حتی برای یک بانک برنامه‌ای نوشته و این برنامه را با keystore شخصی کامپایل و منتشر کرده است، حالا اگر شخص دیگری این برنامه را با همان اسم پکیج بسازد و بخواهد به عنوان نسخه‌ی‌ تقلبی و برای هک کردن  و اهداف پلید خودش منتشر کند، شخصی که این نسخه تقلبی را دریافت می‌کند، درصورتی که نسخه‌ی اصلی برنامه را بر روی گوشی خود داشته باشد، موقع نصب برنامه‌ی تقلبی، سیستم عامل اندروید ارور می‌دهد که این دو باهم یکی نیستند!!! چرا که keystore هردو باهم فرق دارند.

شما بهتر است همیشه برای برنامه‌ی خودتان و موقع انتشار برنامه روی مارکت‌ها، keystore بسازید و با استفاده از آن برنامه‌ی خود را Sign (امضا) کنید؛ و همچنین keystore یک برنامه را هرگز در برنامه‌ی دیگری استفاده نکنید!

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

در Sign Key ما برای کلیدمان یک ویژگی به نام Validity داریم و به معنی اعتبار کلید بوده و به صورت پیشفرض روی 25 سال قرار دارد؛ ولی اکثر دوستان فکر می‌کنند منظور از این مقدار این است که برنامه بعد از گذشت این بازه زمانی دیگر کار نمی‌کند! بلکه این فقط بدین معناست که برنامه شما بعد از گذشت این بازه زمانی دیگر آپدیت نخواهد شد. و اگرچنانچه پس از گذشت این زمان بخواهید آپدیتی ارائه دهید، بایستی کلید برنامه را عوض کرده و از کاربران درخواست کنید تا نسخه قبلی را حذف ونسخه جدید را نصب نمایند. البته مقدار پیشفرض که روی 25 هم قرار دارد زمان بسیار زیادیست و فکر نکنم کسی بخواهد 25 سال برای یک اپلیکیشنی که نوشته است مدام آپدیت ارائه کند.

◀️ آموزش ساخت KeyStore در اندروید استودیو را به زودی در سایت قرار خواهیم داد.

تبلیغات
3 نظر
کانال تلگرام فول کده
تبلیغات

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

هادی اکبرزاده

[ مدیر فول کده ]

علاقه‌مند به اشتراک گذاری اطلاعات در هر زمینه‌ای / برنامه‌نویس / مدیر فول کده

پاسخ دهید

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

نظرات ثبت شده 3 دیدگاه