অ্যান্ড্রয়েডের প্রয়োজন যে সমস্ত APK একটি ডিভাইসে ইনস্টল বা আপডেট হওয়ার আগে একটি শংসাপত্রের সাথে ডিজিটালভাবে স্বাক্ষরিত হতে হবে। Android App Bundles ব্যবহার করে রিলিজ করার সময়, আপনাকে Play Console-এ আপলোড করার আগে একটি আপলোড কী দিয়ে আপনার অ্যাপ বান্ডেল সাইন করতে হবে এবং Play App Signing বাকিটা যত্ন করে। প্লে স্টোর বা অন্যান্য স্টোরে APK ব্যবহার করে বিতরণ করা অ্যাপের জন্য, আপলোড করার জন্য আপনাকে অবশ্যই আপনার APK গুলিকে ম্যানুয়ালি সাইন ইন করতে হবে।
এই পৃষ্ঠাটি আপনাকে অ্যাপ সাইনিং এবং নিরাপত্তা সম্পর্কিত কিছু গুরুত্বপূর্ণ ধারণা, Android স্টুডিও ব্যবহার করে Google Play-এ রিলিজ করার জন্য আপনার অ্যাপকে কীভাবে সাইন করবেন এবং কীভাবে Play অ্যাপ সাইনিং কনফিগার করবেন সেই বিষয়ে নির্দেশনা দেয়।
Google Play-তে একটি নতুন অ্যাপ সাইন করতে এবং প্রকাশ করার জন্য আপনাকে যে পদক্ষেপগুলি নিতে হতে পারে তার একটি উচ্চ-স্তরের ওভারভিউ নিচে দেওয়া হল:
- একটি আপলোড কী এবং কীস্টোর তৈরি করুন
- আপনার আপলোড কী দিয়ে আপনার অ্যাপে সাইন ইন করুন
- প্লে অ্যাপ সাইনিং কনফিগার করুন
- Google Play-তে আপনার অ্যাপ আপলোড করুন
- আপনার অ্যাপের রিলিজ প্রস্তুত করুন এবং রোল আউট করুন
পরিবর্তে যদি আপনার অ্যাপটি ইতিমধ্যেই একটি বিদ্যমান অ্যাপ সাইনিং কী সহ Google Play Store-এ প্রকাশিত হয়, অথবা আপনি Google তৈরি করার পরিবর্তে একটি নতুন অ্যাপের জন্য অ্যাপ সাইনিং কী বেছে নিতে চান, তাহলে এই পদক্ষেপগুলি অনুসরণ করুন:
- আপনার অ্যাপের সাইনিং কী দিয়ে আপনার অ্যাপে সাইন ইন করুন ।
- প্লে অ্যাপ সাইনিং-এ আপনার অ্যাপের সাইনিং কী আপলোড করুন ।
- (প্রস্তাবিত) আপনার অ্যাপের ভবিষ্যতের আপডেটের জন্য একটি আপলোড শংসাপত্র তৈরি এবং নিবন্ধন করুন৷
- Google Play-তে আপনার অ্যাপ আপলোড করুন
- আপনার অ্যাপের রিলিজ প্রস্তুত করুন এবং রোল আউট করুন
এই পৃষ্ঠাটি অন্যান্য অ্যাপ স্টোরে আপনার অ্যাপ আপলোড করার সময় কীভাবে আপনার নিজের কীগুলি পরিচালনা করবেন তাও অন্বেষণ করে। আপনি যদি অ্যান্ড্রয়েড স্টুডিও ব্যবহার না করেন বা কমান্ড লাইন থেকে আপনার অ্যাপে সাইন ইন করতে চান, তাহলে কীভাবে apksigner
ব্যবহার করবেন সে সম্পর্কে জানুন।
প্লে অ্যাপ সাইনিং
প্লে অ্যাপ সাইনিং এর মাধ্যমে, Google আপনার জন্য আপনার অ্যাপের সাইনিং কী পরিচালনা করে এবং রক্ষা করে এবং বিতরণের জন্য আপনার APK সাইন ইন করতে এটি ব্যবহার করে। এবং, যেহেতু অ্যাপ বান্ডেলগুলি Google Play Store-এ APK তৈরি এবং স্বাক্ষর করা পিছিয়ে দেয়, তাই আপনার অ্যাপ বান্ডেল আপলোড করার আগে আপনাকে প্লে অ্যাপ সাইনিং কনফিগার করতে হবে। এটি করা আপনাকে নিম্নলিখিতগুলি থেকে উপকৃত করতে দেয়:
- Android App Bundle ব্যবহার করুন এবং Google Play-এর উন্নত ডেলিভারি মোডগুলিকে সমর্থন করুন৷ অ্যান্ড্রয়েড অ্যাপ বান্ডেল আপনার অ্যাপটিকে অনেক ছোট করে, আপনার রিলিজগুলিকে আরও সহজ করে তোলে এবং বৈশিষ্ট্য মডিউলগুলি ব্যবহার করা এবং তাত্ক্ষণিক অভিজ্ঞতা অফার করা সম্ভব করে তোলে।
- আপনার সাইনিং কী-এর নিরাপত্তা বাড়ান এবং আপনি Google Play-তে আপলোড করা অ্যাপ বান্ডিল সাইন করার জন্য একটি আলাদা আপলোড কী ব্যবহার করা সম্ভব করুন।
কী আপগ্রেড আপনাকে আপনার অ্যাপ সাইনিং কী পরিবর্তন করতে দেয় যদি আপনার বিদ্যমান একটি আপস করা হয় বা যদি আপনাকে একটি ক্রিপ্টোগ্রাফিকভাবে শক্তিশালী কীতে স্থানান্তরিত করতে হয়
প্লে অ্যাপ সাইনিং দুটি কী ব্যবহার করে: অ্যাপ সাইনিং কী এবং আপলোড কী , যা কী এবং কীস্টোর সম্পর্কে বিভাগে আরও বিশদে বর্ণনা করা হয়েছে। আপনি আপলোড কী রাখুন এবং Google Play Store-এ আপলোড করার জন্য আপনার অ্যাপে স্বাক্ষর করতে এটি ব্যবহার করুন। Google আপনার পরিচয় যাচাই করার জন্য আপলোড শংসাপত্র ব্যবহার করে, এবং চিত্র 1-এ দেখানো হিসাবে বিতরণের জন্য আপনার অ্যাপ সাইনিং কী দিয়ে আপনার APK(গুলি) স্বাক্ষর করে। একটি পৃথক আপলোড কী ব্যবহার করে আপনি একটি আপলোড কী পুনরায় সেট করার অনুরোধ করতে পারেন যদি আপনার কী কখনও হারিয়ে যায় বা আপস
তুলনা করে, যে অ্যাপগুলি প্লে অ্যাপ সাইনিং-এ অপ্ট ইন করেনি, যদি আপনি আপনার অ্যাপের সাইনিং কী হারিয়ে ফেলেন, তাহলে আপনি আপনার অ্যাপ আপডেট করার ক্ষমতা হারাবেন।
চিত্র 1 । প্লে অ্যাপ সাইনিং এর মাধ্যমে একটি অ্যাপ সাইন করা
আপনার কীগুলি একই পরিকাঠামোতে সংরক্ষণ করা হয় যা Google তার নিজস্ব কীগুলি সংরক্ষণ করতে ব্যবহার করে, যেখানে সেগুলি Google-এর কী ব্যবস্থাপনা পরিষেবা দ্বারা সুরক্ষিত থাকে৷ আপনি Google ক্লাউড সিকিউরিটি হোয়াইটপেপার পড়ে Google এর প্রযুক্তিগত অবকাঠামো সম্পর্কে আরও জানতে পারেন৷
আপনি যখন প্লে অ্যাপ সাইনিং ব্যবহার করেন, আপনি যদি আপনার আপলোড কী হারিয়ে ফেলেন, বা এটি আপস করা হয়, আপনি প্লে কনসোলে আপলোড কী রিসেট করার অনুরোধ করতে পারেন। আপনার অ্যাপ সাইনিং কী Google দ্বারা সুরক্ষিত থাকার কারণে, আপনি আপলোড কী পরিবর্তন করলেও আপনি আসল অ্যাপে আপডেট হিসেবে আপনার অ্যাপের নতুন সংস্করণ আপলোড করা চালিয়ে যেতে পারেন। আরও জানতে, একটি হারিয়ে যাওয়া বা আপস করা ব্যক্তিগত আপলোড কী রিসেট করুন পড়ুন।
পরবর্তী বিভাগে অ্যাপ সাইনিং এবং নিরাপত্তা সম্পর্কিত কিছু গুরুত্বপূর্ণ শর্তাবলী এবং ধারণা বর্ণনা করা হয়েছে। আপনি যদি এড়িয়ে যান এবং Google Play Store-এ আপলোড করার জন্য আপনার অ্যাপটি কীভাবে প্রস্তুত করবেন তা শিখতে চান, তাহলে প্রকাশের জন্য আপনার অ্যাপে সাইন করুন এ যান।
কীস্টোর, কী এবং সার্টিফিকেট
জাভা কীস্টোর (.jks বা .keystore) হল বাইনারি ফাইল যা সার্টিফিকেট এবং ব্যক্তিগত কীগুলির ভান্ডার হিসাবে কাজ করে।
একটি পাবলিক কী সার্টিফিকেট ( .der
বা .pem
ফাইল), যা একটি ডিজিটাল শংসাপত্র বা একটি পরিচয় শংসাপত্র নামেও পরিচিত, এতে একটি পাবলিক/প্রাইভেট কী জোড়ার পাবলিক কী, সেইসাথে মালিককে সনাক্তকারী কিছু মেটাডেটা থাকে (উদাহরণস্বরূপ, নাম এবং অবস্থান) যিনি সংশ্লিষ্ট ব্যক্তিগত কী ধারণ করেন।
নিম্নলিখিত কীগুলির বিভিন্ন ধরণের আপনার বোঝা উচিত:
- অ্যাপ সাইনিং কী: ব্যবহারকারীর ডিভাইসে ইনস্টল করা APK সাইন করার জন্য ব্যবহৃত কী। অ্যান্ড্রয়েডের সুরক্ষিত আপডেট মডেলের অংশ হিসেবে, আপনার অ্যাপের জীবদ্দশায় সাইনিং কী কখনো পরিবর্তন হয় না। অ্যাপ সাইনিং কী ব্যক্তিগত এবং গোপন রাখতে হবে। আপনি, তবে, আপনার অ্যাপ সাইনিং কী ব্যবহার করে তৈরি করা শংসাপত্রটি ভাগ করতে পারেন।
আপলোড কী: অ্যাপ বান্ডিল বা APK সাইন করার জন্য আপনি যে কী ব্যবহার করেন তা আপনি Google Play-এর সাথে অ্যাপ সাইন করার জন্য আপলোড করার আগে। আপলোড কী গোপন রাখতে হবে। যাইহোক, আপনি আপনার আপলোড কী ব্যবহার করে তৈরি করা শংসাপত্রটি ভাগ করতে পারেন। আপনি নিম্নলিখিত উপায়ে একটি আপলোড কী তৈরি করতে পারেন:
- আপনি নির্বাচন করার সময় আপনার জন্য অ্যাপ সাইনিং কী তৈরি করার জন্য যদি আপনি Google-এর জন্য বেছে নেন, তাহলে আপনি যে কীটি আপনার অ্যাপে সাইন ইন করতে ব্যবহার করেন তা আপনার আপলোড কী হিসেবে মনোনীত করা হয়।
- আপনি যদি আপনার নতুন বা বিদ্যমান অ্যাপটি বেছে নেওয়ার সময় Google-কে অ্যাপ সাইনিং কী প্রদান করেন, তাহলে বর্ধিত নিরাপত্তার জন্য নির্বাচন করার সময় বা পরে আপনার কাছে একটি নতুন আপলোড কী তৈরি করার বিকল্প রয়েছে।
- আপনি যদি একটি নতুন আপলোড কী তৈরি না করেন, আপনি প্রতিটি রিলিজে স্বাক্ষর করতে আপনার আপলোড কী হিসাবে আপনার অ্যাপ সাইনিং কী ব্যবহার করা চালিয়ে যান।
টিপ: আপনার কীগুলি সুরক্ষিত রাখতে, আপনার অ্যাপ সাইনিং কী এবং আপলোড কী আলাদা তা নিশ্চিত করা একটি ভাল ধারণা৷
API প্রদানকারীদের সাথে কাজ করা
আপনি প্লে কনসোলে রিলিজ > সেটআপ > অ্যাপ সাইনিং পৃষ্ঠা থেকে অ্যাপ সাইনিং কী এবং আপলোড কী-এর সার্টিফিকেট ডাউনলোড করতে পারেন। এটি API প্রদানকারীদের সাথে সর্বজনীন কী(গুলি) নিবন্ধন করতে ব্যবহৃত হয়; এটি ভাগ করার উদ্দেশ্যে করা হয়েছে, কারণ এতে আপনার ব্যক্তিগত কী নেই৷
একটি শংসাপত্র ফিঙ্গারপ্রিন্ট হল একটি শংসাপত্রের একটি সংক্ষিপ্ত এবং অনন্য উপস্থাপনা যা প্রায়শই API প্রদানকারীরা তাদের পরিষেবা ব্যবহার করার জন্য একটি অ্যাপ নিবন্ধনের জন্য প্যাকেজের নামের পাশে অনুরোধ করে। আপলোডের MD5, SHA-1 এবং SHA-256 ফিঙ্গারপ্রিন্ট এবং অ্যাপ সাইনিং সার্টিফিকেট প্লে কনসোলের অ্যাপ সাইনিং পৃষ্ঠায় পাওয়া যাবে। একই পৃষ্ঠা থেকে মূল শংসাপত্র ( .der
) ডাউনলোড করে অন্যান্য আঙ্গুলের ছাপগুলিও গণনা করা যেতে পারে।
আপনার ডিবাগ বিল্ড সাইন ইন করুন
IDE থেকে আপনার প্রোজেক্ট চালানো বা ডিবাগ করার সময়, Android স্টুডিও Android SDK টুল দ্বারা জেনারেট করা একটি ডিবাগ শংসাপত্র দিয়ে স্বয়ংক্রিয়ভাবে আপনার অ্যাপে স্বাক্ষর করে। আপনি যখন প্রথমবার অ্যান্ড্রয়েড স্টুডিওতে আপনার প্রোজেক্ট চালান বা ডিবাগ করেন, তখন IDE স্বয়ংক্রিয়ভাবে $HOME/.android/debug.keystore
এ ডিবাগ কীস্টোর এবং সার্টিফিকেট তৈরি করে এবং কীস্টোর এবং কী পাসওয়ার্ড সেট করে।
যেহেতু ডিবাগ শংসাপত্রটি বিল্ড টুল দ্বারা তৈরি করা হয়েছে এবং এটি ডিজাইনের দ্বারা অনিরাপদ, তাই বেশিরভাগ অ্যাপ স্টোর (গুগল প্লে স্টোর সহ) প্রকাশের জন্য ডিবাগ শংসাপত্র সহ স্বাক্ষরিত অ্যাপগুলি গ্রহণ করে না।
অ্যান্ড্রয়েড স্টুডিও স্বয়ংক্রিয়ভাবে একটি সাইনিং কনফিগারেশনে আপনার ডিবাগ সাইনিং তথ্য সঞ্চয় করে যাতে প্রতিবার ডিবাগ করার সময় আপনাকে এটি প্রবেশ করতে হবে না। একটি সাইনিং কনফিগারেশন হল একটি বস্তু যা আপনার অ্যাপে সাইন করার জন্য প্রয়োজনীয় সমস্ত তথ্য সমন্বিত করে, যার মধ্যে কীস্টোর অবস্থান, কীস্টোর পাসওয়ার্ড, কী নাম এবং কী পাসওয়ার্ড রয়েছে৷
ডিবাগিংয়ের জন্য অ্যাপগুলি কীভাবে তৈরি এবং চালানো যায় সে সম্পর্কে আরও তথ্যের জন্য, আপনার অ্যাপ তৈরি করুন এবং চালান দেখুন।
ডিবাগ শংসাপত্রের মেয়াদ শেষ
ডিবাগিংয়ের জন্য আপনার অ্যাপে স্বাক্ষর করতে ব্যবহৃত স্ব-স্বাক্ষরিত শংসাপত্রটির তৈরির তারিখ থেকে 30 বছরের মেয়াদ শেষ হওয়ার তারিখ রয়েছে। শংসাপত্রের মেয়াদ শেষ হলে, আপনি একটি বিল্ড ত্রুটি পাবেন।
এই সমস্যাটি সমাধান করতে, নিম্নলিখিত অবস্থানগুলির মধ্যে একটিতে সংরক্ষিত debug.keystore
ফাইলটি মুছুন:
- OS X এবং Linux-এ
~/.android/
-
C:\Documents and Settings\ user \.android\
Windows XP-এ -
C:\Users\ user \.android\
পরের বার আপনি যখন আপনার অ্যাপের একটি ডিবাগ সংস্করণ তৈরি করবেন এবং চালাবেন , তখন Android স্টুডিও একটি নতুন কীস্টোর এবং ডিবাগ কী পুনরায় তৈরি করবে।
Google Play-তে রিলিজের জন্য আপনার অ্যাপে সাইন ইন করুন
আপনি যখন আপনার অ্যাপ প্রকাশ করতে প্রস্তুত হন, তখন আপনাকে আপনার অ্যাপে সাইন ইন করতে হবে এবং এটিকে Google Play-এর মতো অ্যাপ স্টোরে আপলোড করতে হবে। প্রথমবার Google Play-তে আপনার অ্যাপ প্রকাশ করার সময়, আপনাকে অবশ্যই Play অ্যাপ সাইনিং কনফিগার করতে হবে। প্লে অ্যাপ সাইনিং অগাস্ট 2021-এর আগে তৈরি করা অ্যাপের জন্য ঐচ্ছিক। এই বিভাগটি আপনাকে দেখায় যে কীভাবে আপনার অ্যাপ রিলিজের জন্য সঠিকভাবে সাইন ইন করবেন এবং প্লে অ্যাপ সাইনিং কনফিগার করবেন।
একটি আপলোড কী এবং কীস্টোর তৈরি করুন
যদি আপনার কাছে ইতিমধ্যে একটি আপলোড কী না থাকে, যা প্লে অ্যাপ সাইনিং কনফিগার করার সময় উপযোগী হয়, তাহলে আপনি Android স্টুডিও ব্যবহার করে নিম্নরূপ একটি তৈরি করতে পারেন:
- মেনু বারে, Build > Generate Signed Bundle/APK এ ক্লিক করুন।
- জেনারেট সাইনড বান্ডেল বা APK ডায়ালগে, Android App Bundle বা APK নির্বাচন করুন এবং Next এ ক্লিক করুন।
- কী স্টোর পাথের ক্ষেত্রের নীচে, নতুন তৈরি করুন ক্লিক করুন।
নতুন কী স্টোর উইন্ডোতে, আপনার কীস্টোর এবং কী-এর জন্য নিম্নলিখিত তথ্য প্রদান করুন, যেমন চিত্র 2-এ দেখানো হয়েছে।
চিত্র 2. অ্যান্ড্রয়েড স্টুডিওতে একটি নতুন আপলোড কী এবং কীস্টোর তৈরি করুন৷
কীস্টোর
- কী স্টোর পাথ: আপনার কীস্টোর তৈরি করা উচিত এমন অবস্থান নির্বাচন করুন। এছাড়াও,
.jks
এক্সটেনশনের সাথে অবস্থান পাথের শেষে একটি ফাইলের নাম যোগ করা উচিত। - পাসওয়ার্ড: আপনার কীস্টোরের জন্য একটি সুরক্ষিত পাসওয়ার্ড তৈরি করুন এবং নিশ্চিত করুন।
- কী স্টোর পাথ: আপনার কীস্টোর তৈরি করা উচিত এমন অবস্থান নির্বাচন করুন। এছাড়াও,
চাবি
- উপনাম: আপনার কীটির জন্য একটি সনাক্তকারী নাম লিখুন।
- পাসওয়ার্ড: আপনার কীটির জন্য একটি সুরক্ষিত পাসওয়ার্ড তৈরি করুন এবং নিশ্চিত করুন। এটি আপনার কীস্টোর পাসওয়ার্ডের মতো হওয়া উচিত। (আরো তথ্যের জন্য অনুগ্রহ করে পরিচিত সমস্যাটি পড়ুন)
- বৈধতা (বছর): আপনার কীটি বৈধ হবে এমন বছরের মধ্যে সময়ের দৈর্ঘ্য সেট করুন। আপনার কীটি কমপক্ষে 25 বছরের জন্য বৈধ হওয়া উচিত, যাতে আপনি আপনার অ্যাপের জীবদ্দশায় একই কী দিয়ে অ্যাপ আপডেটগুলিতে স্বাক্ষর করতে পারেন।
- শংসাপত্র: আপনার শংসাপত্রের জন্য নিজের সম্পর্কে কিছু তথ্য লিখুন। এই তথ্যটি আপনার অ্যাপে প্রদর্শিত হয় না, তবে APK এর অংশ হিসেবে আপনার শংসাপত্রে অন্তর্ভুক্ত করা হয়।
একবার আপনি ফর্মটি পূরণ করলে, ঠিক আছে ক্লিক করুন।
আপনি যদি আপনার আপলোড কী দিয়ে আপনার অ্যাপ তৈরি করতে এবং স্বাক্ষর করতে চান, তাহলে আপনার আপলোড কী দিয়ে কীভাবে আপনার অ্যাপে সাইন ইন করবেন সে বিষয়ে বিভাগে যান। আপনি যদি শুধুমাত্র কী এবং কীস্টোর তৈরি করতে চান, তাহলে Cancel এ ক্লিক করুন।
আপনার কী দিয়ে আপনার অ্যাপে সাইন ইন করুন
যদি আপনার কাছে ইতিমধ্যেই একটি আপলোড কী থাকে, তাহলে আপনার অ্যাপে স্বাক্ষর করতে এটি ব্যবহার করুন। পরিবর্তে যদি আপনার অ্যাপটি ইতিমধ্যেই একটি বিদ্যমান অ্যাপ সাইনিং কী সহ Google Play স্টোরে স্বাক্ষরিত এবং প্রকাশিত হয়, তাহলে আপনার অ্যাপে স্বাক্ষর করতে এটি ব্যবহার করুন। আপনি পরে আপনার অ্যাপে পরবর্তী আপডেটগুলি সাইন এবং আপলোড করতে Google Play এর সাথে একটি পৃথক আপলোড কী তৈরি এবং নিবন্ধন করতে পারেন৷
অ্যান্ড্রয়েড স্টুডিও ব্যবহার করে আপনার অ্যাপে সাইন ইন করতে, এই ধাপগুলি অনুসরণ করুন:
- আপনার যদি বর্তমানে জেনারেট সাইনড বান্ডেল বা APK ডায়ালগ খোলা না থাকে, তাহলে Build > Generate Signed Bundle/APK এ ক্লিক করুন।
- জেনারেট সাইনড বান্ডেল বা APK ডায়ালগে, Android App Bundle বা APK নির্বাচন করুন এবং Next এ ক্লিক করুন।
- ড্রপ ডাউন থেকে একটি মডিউল নির্বাচন করুন।
আপনার কীস্টোরের পাথ, আপনার কীটির উপনাম নির্দিষ্ট করুন এবং উভয়ের জন্য পাসওয়ার্ড লিখুন। আপনি যদি এখনও আপনার আপলোড কীস্টোর এবং কী প্রস্তুত না করে থাকেন, প্রথমে একটি আপলোড কী এবং কীস্টোর তৈরি করুন এবং তারপরে এই ধাপটি সম্পূর্ণ করতে ফিরে আসুন।
চিত্র 3 । আপনার আপলোড কী দিয়ে আপনার অ্যাপে সাইন ইন করুন।
পরবর্তী ক্লিক করুন.
পরবর্তী উইন্ডোতে (চিত্র 4-এ দেখানো হয়েছে), আপনার স্বাক্ষরিত অ্যাপের জন্য একটি গন্তব্য ফোল্ডার নির্বাচন করুন, বিল্ডের ধরন নির্বাচন করুন, প্রযোজ্য হলে পণ্যের স্বাদ(গুলি) নির্বাচন করুন।
আপনি যদি একটি APK তৈরি করেন এবং স্বাক্ষর করেন, তাহলে আপনাকে নির্বাচন করতে হবে কোন স্বাক্ষর সংস্করণগুলিকে আপনি সমর্থন করতে চান৷ আরও জানতে, অ্যাপ সাইনিং স্কিম সম্পর্কে পড়ুন
তৈরি করুন ক্লিক করুন।
![](https://developer.android.com/static/studio/images/publish/generate_signed_bundle_popup-2x.png?authuser=1&hl=bn)
চিত্র 5. আপনার অ্যাপ বান্ডেল বিশ্লেষণ বা সনাক্ত করতে পপআপের লিঙ্কটিতে ক্লিক করুন।
অ্যান্ড্রয়েড স্টুডিও আপনার স্বাক্ষরিত অ্যাপ তৈরি করা শেষ করার পরে, আপনি চিত্র 5-এ দেখানো পপ-আপ বিজ্ঞপ্তিতে উপযুক্ত বিকল্পে ক্লিক করে আপনার অ্যাপটি সনাক্ত বা বিশ্লেষণ করতে পারেন।
এখন আপনি প্লে অ্যাপ সাইনিং-এ আপনার অ্যাপটি বেছে নিতে এবং রিলিজের জন্য আপনার অ্যাপ আপলোড করতে প্রস্তুত। আপনি যদি অ্যাপ প্রকাশনা প্রক্রিয়ায় নতুন হয়ে থাকেন, তাহলে আপনি লঞ্চ ওভারভিউ পড়তে চাইতে পারেন। অন্যথায়, প্লে কনসোলে কীভাবে আপনার অ্যাপ আপলোড করবেন সে সম্পর্কে পৃষ্ঠায় যান।
প্লে অ্যাপ সাইনিং ব্যবহার করে
এই পৃষ্ঠায় আগে যেমন বর্ণনা করা হয়েছে, Google Play-এর মাধ্যমে বিতরণের জন্য আপনার অ্যাপে স্বাক্ষর করার জন্য Play অ্যাপ সাইনিং কনফিগার করা প্রয়োজন (আগস্ট 2021 সালের আগে তৈরি করা অ্যাপগুলি ছাড়া, যেগুলি স্ব-স্বাক্ষর করা APK বিতরণ চালিয়ে যেতে পারে)। আপনার অ্যাপটি এখনও Google Play-এ প্রকাশিত হয়নি বা আপনার অ্যাপটি ইতিমধ্যেই সাইন করা হয়েছে এবং একটি বিদ্যমান অ্যাপ সাইনিং কী ব্যবহার করে আগস্ট 2021-এর আগে প্রকাশিত হয়েছে কিনা তার উপর নির্ভর করে আপনাকে যে পদক্ষেপগুলি নিতে হবে।
একটি নতুন অ্যাপ কনফিগার করুন
এমন একটি অ্যাপের জন্য সাইনিং কনফিগার করতে যা এখনও Google Play-তে প্রকাশিত হয়নি, নিম্নরূপ এগিয়ে যান:
- আপনি যদি ইতিমধ্যে এটি না করে থাকেন তবে একটি আপলোড কী তৈরি করুন এবং সেই আপলোড কী দিয়ে আপনার অ্যাপে স্বাক্ষর করুন ৷
- আপনার প্লে কনসোলে সাইন ইন করুন।
- একটি নতুন রিলিজ তৈরি করতে আপনার রিলিজ প্রস্তুত ও রোল আউট করার ধাপগুলি অনুসরণ করুন।
- আপনি একটি রিলিজ ট্র্যাক বেছে নেওয়ার পরে, অ্যাপ সাইনিং বিভাগের অধীনে অ্যাপ সাইনিং কনফিগার করুন নিম্নরূপ:
- Google Play আপনার জন্য একটি অ্যাপ সাইনিং কী তৈরি করতে এবং আপনার অ্যাপে সাইন ইন করতে এটি ব্যবহার করতে, আপনাকে কিছু করতে হবে না। আপনার প্রথম রিলিজে স্বাক্ষর করার জন্য আপনি যে কীটি ব্যবহার করেন সেটি আপনার আপলোড কী হয়ে যায় এবং ভবিষ্যতের রিলিজে স্বাক্ষর করতে আপনার এটি ব্যবহার করা উচিত।
- আপনার ডেভেলপার অ্যাকাউন্টে অন্য অ্যাপের মতো একই কী ব্যবহার করতে, অ্যাপ সাইনিং কী পরিবর্তন করুন > এই অ্যাকাউন্টে অন্য অ্যাপের মতো একই কী ব্যবহার করুন , একটি অ্যাপ নির্বাচন করুন এবং তারপরে চালিয়ে যান-এ ক্লিক করুন।
- আপনার অ্যাপে স্বাক্ষর করার সময় Google-এর ব্যবহার করার জন্য আপনার নিজস্ব সাইনিং কী প্রদান করতে, অ্যাপ সাইনিং কী পরিবর্তন করুন নির্বাচন করুন এবং রপ্তানি এবং আপলোড বিকল্পগুলির একটি নির্বাচন করুন যা আপনাকে একটি ব্যক্তিগত কী এবং এর সর্বজনীন শংসাপত্র নিরাপদে আপলোড করতে দেয়৷
অ্যাপ বান্ডেল নামক বিভাগে, আপনার আপলোড কী ব্যবহার করে আপনি স্বাক্ষরিত অ্যাপটি সনাক্ত করতে এবং আপলোড করতে ফাইল ব্রাউজ করুন এ ক্লিক করুন। আপনার অ্যাপ রিলিজ করার বিষয়ে আরও তথ্যের জন্য, আপনার রিলিজ প্রস্তুত ও রোল আউট দেখুন। যখন আপনি প্লে অ্যাপ সাইনিং কনফিগার করার পরে আপনার অ্যাপটি প্রকাশ করেন, তখন Google Play জেনারেট করে (যদি না আপনি একটি বিদ্যমান কী আপলোড করেন) এবং আপনার জন্য আপনার অ্যাপের সাইনিং কী পরিচালনা করে। Google Play-এ আপলোড করার আগে আপনার অ্যাপের আপলোড কী ব্যবহার করে আপনার অ্যাপের পরবর্তী আপডেটগুলিতে সাইন ইন করুন।
আপনার অ্যাপের জন্য একটি নতুন আপলোড কী তৈরি করতে হলে, হারিয়ে যাওয়া বা আপস করা ব্যক্তিগত আপলোড কী কীভাবে রিসেট করবেন সে সম্পর্কে বিভাগে যান।
একটি বিদ্যমান অ্যাপ্লিকেশন নির্বাচন করুন
আপনি যদি এমন একটি অ্যাপ আপডেট করছেন যা ইতিমধ্যেই একটি বিদ্যমান অ্যাপ সাইনিং কী ব্যবহার করে Google Play-তে প্রকাশিত হয়েছে, তাহলে আপনি নিম্নোক্তভাবে Play App Signing-এ নির্বাচন করতে পারেন:
- আপনার প্লে কনসোলে সাইন ইন করুন এবং আপনার অ্যাপে নেভিগেট করুন।
- বাম মেনুতে, রিলিজ > সেটআপ > অ্যাপ সাইনিং-এ ক্লিক করুন।
- প্রযোজ্য হলে, পরিষেবার শর্তাবলী পর্যালোচনা করুন এবং স্বীকার করুন নির্বাচন করুন।
- আপনি Google Play-তে আপলোড করতে চান এমন সাইনিং কীকে সবচেয়ে ভালোভাবে বর্ণনা করে এমন বিকল্পগুলির মধ্যে একটি নির্বাচন করুন এবং দেখানো নির্দেশাবলী অনুসরণ করুন। উদাহরণস্বরূপ, আপনি যদি আপনার সাইনিং কী-এর জন্য একটি জাভা কীস্টোর ব্যবহার করেন, তাহলে জাভা কীস্টোর থেকে একটি নতুন অ্যাপ সাইনিং কী আপলোড করুন নির্বাচন করুন এবং PEPK টুল ডাউনলোড ও চালানোর জন্য নির্দেশাবলী অনুসরণ করুন এবং আপনার এনক্রিপ্ট করা কী দিয়ে জেনারেট করা ফাইল আপলোড করুন।
- Enroll এ ক্লিক করুন।
আপনার এখন আপনার অ্যাপের সাইনিং এবং আপলোড সার্টিফিকেটের বিশদ বিবরণ সহ একটি পৃষ্ঠা দেখতে হবে। Google Play এখন আপনার অ্যাপটিকে ব্যবহারকারীদের কাছে স্থাপন করার সময় আপনার বিদ্যমান কী দিয়ে স্বাক্ষর করে। যাইহোক, প্লে অ্যাপ সাইনিং-এর সবচেয়ে গুরুত্বপূর্ণ সুবিধাগুলির মধ্যে একটি হল ব্যবহারকারীদের বিতরণের জন্য Google Play আপনার অ্যাপে স্বাক্ষর করার জন্য যে কী ব্যবহার করে Google Play-তে আপলোড করা আর্টিফ্যাক্ট সাইন করার জন্য আপনি যে কী ব্যবহার করেন তা আলাদা করার ক্ষমতা। সুতরাং, একটি পৃথক আপলোড কী তৈরি এবং নিবন্ধন করতে পরবর্তী বিভাগে পদক্ষেপগুলি অনুসরণ করার কথা বিবেচনা করুন৷
একটি আপলোড শংসাপত্র তৈরি এবং নিবন্ধন করুন
আপনি যখন একটি আপলোড কী দ্বারা স্বাক্ষরিত নয় এমন একটি অ্যাপ প্রকাশ করছেন, তখন Google Play Console অ্যাপটিতে ভবিষ্যতের আপডেটের জন্য একটি নিবন্ধন করার বিকল্প প্রদান করে। যদিও এটি একটি ঐচ্ছিক পদক্ষেপ, এটি সুপারিশ করা হয় যে আপনি একটি কী দিয়ে আপনার অ্যাপ প্রকাশ করুন যা ব্যবহারকারীদের কাছে আপনার অ্যাপ বিতরণ করতে Google Play ব্যবহার করে আলাদা। এইভাবে, Google আপনার সাইনিং কী সুরক্ষিত রাখে এবং আপনার কাছে একটি হারিয়ে যাওয়া বা আপস করা ব্যক্তিগত আপলোড কী পুনরায় সেট করার বিকল্প রয়েছে৷ এই বিভাগটি বর্ণনা করে যে কীভাবে একটি আপলোড কী তৈরি করতে হয়, এটি থেকে একটি আপলোড শংসাপত্র তৈরি করতে হয় এবং আপনার অ্যাপের ভবিষ্যতের আপডেটের জন্য সেই শংসাপত্রটি Google Play-এর সাথে নিবন্ধন করতে হয়৷
আপনি Play Console-এ আপলোড সার্টিফিকেট রেজিস্টার করার বিকল্প দেখেন এমন পরিস্থিতিতে নিচে বর্ণনা করা হয়েছে:
- আপনি যখন সাইনিং কী দিয়ে সাইন করা একটি নতুন অ্যাপ প্রকাশ করেন এবং সেটিকে প্লে অ্যাপ সাইনিং-এ অপ্ট ইন করেন।
- আপনি যখন একটি বিদ্যমান অ্যাপ প্রকাশ করতে চলেছেন যা ইতিমধ্যেই প্লে অ্যাপ সাইনিং-এ অপ্ট ইন করা হয়েছে, কিন্তু এটি সাইনিং কী ব্যবহার করে সাইন করা হয়েছে৷
আপনি যদি এমন একটি বিদ্যমান অ্যাপের আপডেট প্রকাশ না করেন যা ইতিমধ্যেই প্লে অ্যাপ সাইনিং-এ বেছে নেওয়া হয়েছে এবং আপনি একটি আপলোড শংসাপত্র নিবন্ধন করতে চান, তাহলে নীচের পদক্ষেপগুলি সম্পূর্ণ করুন এবং কীভাবে একটি হারিয়ে যাওয়া বা আপস করা প্রাইভেট রিসেট করবেন সে সম্পর্কে বিভাগে চালিয়ে যান আপলোড কী ।
আপনি যদি ইতিমধ্যে এটি না করে থাকেন তবে একটি আপলোড কী এবং কীস্টোর তৈরি করুন ৷
আপনি আপনার আপলোড কী এবং কীস্টোর তৈরি করার পরে, আপনাকে নিম্নলিখিত কমান্ডের সাহায্যে keytool
ব্যবহার করে আপনার আপলোড কী থেকে একটি সর্বজনীন শংসাপত্র তৈরি করতে হবে:
$ keytool -export -rfc -keystore your-upload-keystore.jks -alias upload-alias -file output_upload_certificate.pem
এখন আপনার কাছে আপনার আপলোড শংসাপত্র আছে, প্লে কনসোলে অনুরোধ করা হলে বা আপনার আপলোড কী পুনরায় সেট করার সময় এটিকে Google-এর সাথে নিবন্ধন করুন৷
আপনার অ্যাপ সাইনিং কী আপগ্রেড করুন
কিছু পরিস্থিতিতে, আপনি আপনার অ্যাপের সাইনিং কী পরিবর্তন করতে চাইতে পারেন। উদাহরণস্বরূপ, কারণ আপনি একটি ক্রিপ্টোগ্রাফিকভাবে শক্তিশালী কী চান বা আপনার সাইনিং কী আপস করা হয়েছে। যাইহোক, যেহেতু ব্যবহারকারীরা শুধুমাত্র আপনার অ্যাপ আপডেট করতে পারবেন যদি আপডেটটি একই সাইনিং কী দিয়ে সাইন করা থাকে, তাই ইতিমধ্যে প্রকাশিত একটি অ্যাপের সাইনিং কী পরিবর্তন করা কঠিন।
আপনি যদি আপনার অ্যাপটি Google Play-তে প্রকাশ করেন, তাহলে আপনি Play Console-এর মাধ্যমে আপনার প্রকাশিত অ্যাপের সাইনিং কী আপগ্রেড করতে পারেন—আপনার নতুন কী Android 13 এবং উচ্চতর সংস্করণে ইনস্টল এবং অ্যাপ আপডেট সাইন করার জন্য ব্যবহার করা হয়, যখন আপনার পুরনো অ্যাপ সাইনিং কী ব্যবহার করা হয় অ্যান্ড্রয়েডের আগের সংস্করণে ব্যবহারকারীদের জন্য আপডেট সাইন ইন করুন।
আরও জানতে, আপনার অ্যাপ সাইনিং কী আপগ্রেড করুন পড়ুন।
একটি হারিয়ে যাওয়া বা আপস করা ব্যক্তিগত আপলোড কী পুনরায় সেট করুন৷
আপনি যদি আপনার ব্যক্তিগত আপলোড কী হারিয়ে ফেলেন বা আপনার ব্যক্তিগত কী আপস করা হয়েছে, আপনি একটি নতুন তৈরি করতে পারেন এবং প্লে কনসোলে একটি আপলোড কী পুনরায় সেট করার অনুরোধ করতে পারেন ৷
আপনার অ্যাপে স্বয়ংক্রিয়ভাবে স্বাক্ষর করতে বিল্ড প্রক্রিয়া কনফিগার করুন
অ্যান্ড্রয়েড স্টুডিওতে, আপনি একটি সাইনিং কনফিগারেশন তৈরি করে এবং এটিকে আপনার রিলিজ বিল্ড টাইপের জন্য বরাদ্দ করে বিল্ড প্রক্রিয়া চলাকালীন আপনার অ্যাপের রিলিজ সংস্করণে স্বয়ংক্রিয়ভাবে সাইন করার জন্য আপনার প্রোজেক্ট কনফিগার করতে পারেন। একটি সাইনিং কনফিগারেশন একটি কীস্টোর অবস্থান, কীস্টোর পাসওয়ার্ড, কী উপনাম এবং কী পাসওয়ার্ড নিয়ে গঠিত। একটি সাইনিং কনফিগারেশন তৈরি করতে এবং অ্যান্ড্রয়েড স্টুডিও ব্যবহার করে আপনার রিলিজ বিল্ড টাইপে এটি বরাদ্দ করতে, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:
- প্রজেক্ট উইন্ডোতে, আপনার অ্যাপে ডান ক্লিক করুন এবং মডিউল সেটিংস খুলুন ক্লিক করুন।
- প্রজেক্ট স্ট্রাকচার উইন্ডোতে, বাম প্যানেলে মডিউলের অধীনে, আপনি স্বাক্ষর করতে চান এমন মডিউলটিতে ক্লিক করুন।
- সাইনিং ট্যাবে ক্লিক করুন, তারপর Add এ ক্লিক করুন
.
আপনার কীস্টোর ফাইল নির্বাচন করুন, এই সাইনিং কনফিগারেশনের জন্য একটি নাম লিখুন (যেমন আপনি একাধিক তৈরি করতে পারেন), এবং প্রয়োজনীয় তথ্য লিখুন।
চিত্র 7 । একটি নতুন সাইনিং কনফিগারেশন তৈরি করার জন্য উইন্ডো।
- বিল্ড টাইপস ট্যাবে ক্লিক করুন।
- রিলিজ বিল্ড ক্লিক করুন.
সাইনিং কনফিগারেশনের অধীনে, আপনার তৈরি করা সাইনিং কনফিগারেশন নির্বাচন করুন।
চিত্র 8 । অ্যান্ড্রয়েড স্টুডিওতে একটি সাইনিং কনফিগারেশন নির্বাচন করুন।
- ওকে ক্লিক করুন।
এখন যতবার আপনি Android স্টুডিওতে Build > Build Bundle(s) / APK(s) এর অধীনে একটি বিকল্প বেছে নিয়ে আপনার রিলিজ বিল্ড টাইপ তৈরি করবেন, IDE আপনার নির্দিষ্ট করা সাইনিং কনফিগারেশন ব্যবহার করে স্বয়ংক্রিয়ভাবে আপনার অ্যাপে স্বাক্ষর করবে। আপনি যে মডিউলটি তৈরি করছেন তার জন্য আপনি প্রজেক্ট ডিরেক্টরির ভিতরে build/outputs/
ডিরেক্টরিতে আপনার স্বাক্ষরিত APK বা অ্যাপ বান্ডিল খুঁজে পেতে পারেন।
আপনি যখন একটি সাইনিং কনফিগারেশন তৈরি করেন, আপনার স্বাক্ষর করার তথ্য আপনার Gradle বিল্ড ফাইলগুলিতে প্লেইন টেক্সটে অন্তর্ভুক্ত করা হয়। আপনি যদি একটি দলে কাজ করেন বা আপনার কোড সর্বজনীনভাবে ভাগ করে থাকেন, তাহলে আপনার সাইনিং তথ্যকে বিল্ড ফাইল থেকে সরিয়ে আলাদাভাবে সংরক্ষণ করার মাধ্যমে সুরক্ষিত রাখা উচিত। আপনার বিল্ড ফাইলগুলি থেকে আপনার স্বাক্ষর করার তথ্য কীভাবে সরানো যায় সে সম্পর্কে আপনি আপনার বিল্ড ফাইল থেকে স্বাক্ষর করার তথ্য সরান-এ আরও পড়তে পারেন। আপনার স্বাক্ষর করার তথ্য সুরক্ষিত রাখার বিষয়ে আরও জানতে, নীচে আপনার কী সুরক্ষিত রাখুন দেখুন।
প্রতিটি পণ্যের স্বাদ আলাদাভাবে সাইন ইন করুন
যদি আপনার অ্যাপ পণ্যের স্বাদ ব্যবহার করে এবং আপনি প্রতিটি স্বাদকে আলাদাভাবে সাইন ইন করতে চান, তাহলে আপনি অতিরিক্ত সাইনিং কনফিগারেশন তৈরি করতে পারেন এবং সেগুলিকে স্বাদ অনুসারে বরাদ্দ করতে পারেন:
- প্রজেক্ট উইন্ডোতে, আপনার অ্যাপে ডান ক্লিক করুন এবং মডিউল সেটিংস খুলুন ক্লিক করুন।
- প্রজেক্ট স্ট্রাকচার উইন্ডোতে, বাম প্যানেলে মডিউলের অধীনে, আপনি স্বাক্ষর করতে চান এমন মডিউলটিতে ক্লিক করুন।
- সাইনিং ট্যাবে ক্লিক করুন, তারপর Add এ ক্লিক করুন
.
আপনার কীস্টোর ফাইল নির্বাচন করুন, এই সাইনিং কনফিগারেশনের জন্য একটি নাম লিখুন (যেমন আপনি একাধিক তৈরি করতে পারেন), এবং প্রয়োজনীয় তথ্য লিখুন।
চিত্র 10 । একটি নতুন সাইনিং কনফিগারেশন তৈরি করার জন্য উইন্ডো।
- যতক্ষণ না আপনি আপনার সমস্ত সাইনিং কনফিগারেশন তৈরি না করেন ততক্ষণ প্রয়োজনীয় পদক্ষেপ 3 এবং 4 পুনরাবৃত্তি করুন।
- ফ্লেভার ট্যাবে ক্লিক করুন।
- আপনি যে স্বাদটি কনফিগার করতে চান সেটিতে ক্লিক করুন, তারপর সাইনিং কনফিগার ড্রপডাউন মেনু থেকে উপযুক্ত সাইনিং কনফিগারেশন নির্বাচন করুন।
চিত্র 11 । পণ্যের স্বাদ দ্বারা সাইনিং সেটিংস কনফিগার করুন।
যেকোনো অতিরিক্ত পণ্যের স্বাদ কনফিগার করতে পুনরাবৃত্তি করুন।
- ওকে ক্লিক করুন।
আপনি Gradle কনফিগারেশন ফাইলগুলিতে আপনার সাইনিং সেটিংসও নির্দিষ্ট করতে পারেন। আরও তথ্যের জন্য, সাইনিং সেটিংস কনফিগার করা দেখুন।
একটি স্বাক্ষর রিপোর্ট চালান
আপনার অ্যাপের প্রতিটি ভেরিয়েন্টের জন্য সাইনিং তথ্য পেতে, Android স্টুডিওতে Gradle signingReport
টাস্কটি চালান:
- গ্রেডল টুল উইন্ডো খুলতে ভিউ > টুল উইন্ডোজ > গ্রেডল নির্বাচন করুন
- রিপোর্টটি চালানোর জন্য YourApp > Tasks > android > signingReport নির্বাচন করুন
আপনার নিজের সাইনিং কী পরিচালনা করুন
আপনি যদি প্লে অ্যাপ সাইনিং (শুধুমাত্র আগস্ট 2021 সালের আগে তৈরি করা অ্যাপের জন্য) বেছে না নেওয়া বেছে নেন, তাহলে আপনি নিজের অ্যাপ সাইনিং কী এবং কীস্টোর পরিচালনা করতে পারবেন। মনে রাখবেন, আপনি কী এবং কীস্টোর সুরক্ষিত করার জন্য দায়ী ৷ উপরন্তু, আপনার অ্যাপ অ্যান্ড্রয়েড অ্যাপ বান্ডেল, প্লে ফিচার ডেলিভারি এবং প্লে অ্যাসেট ডেলিভারি সমর্থন করতে পারবে না।
আপনি যখন নিজের কী এবং কীস্টোর তৈরি করতে প্রস্তুত হন, নিশ্চিত করুন যে আপনি প্রথমে আপনার কীস্টোরের জন্য একটি শক্তিশালী পাসওয়ার্ড এবং কীস্টোরে সঞ্চিত প্রতিটি ব্যক্তিগত কী-এর জন্য একটি পৃথক শক্তিশালী পাসওয়ার্ড চয়ন করেছেন৷ আপনাকে অবশ্যই আপনার কীস্টোর একটি নিরাপদ এবং নিরাপদ জায়গায় রাখতে হবে। আপনি যদি আপনার অ্যাপ সাইনিং কী অ্যাক্সেস হারান বা আপনার কী আপস করা হয়, Google আপনার জন্য অ্যাপ সাইনিং কী পুনরুদ্ধার করতে পারবে না এবং আপনি আসল অ্যাপের আপডেট হিসাবে ব্যবহারকারীদের কাছে আপনার অ্যাপের নতুন সংস্করণ প্রকাশ করতে পারবেন না। আরও তথ্যের জন্য, নীচে আপনার কী সুরক্ষিত রাখুন দেখুন।
আপনি যদি নিজের অ্যাপ সাইনিং কী এবং কীস্টোর পরিচালনা করেন, আপনি যখন আপনার APK সাইন করেন, তখন আপনি আপনার অ্যাপ সাইনিং কী ব্যবহার করে স্থানীয়ভাবে সাইন ইন করবেন এবং সাইন করা APK সরাসরি Google Play স্টোরে আপলোড করবেন যেমনটি চিত্র 12-এ দেখানো হয়েছে।
চিত্র 12 । আপনি যখন আপনার নিজের অ্যাপ সাইনিং কী পরিচালনা করেন তখন একটি অ্যাপে স্বাক্ষর করা
আপনি যখন প্লে অ্যাপ সাইনিং ব্যবহার করেন, তখন Google আপনার সাইনিং কী সুরক্ষিত রাখে এবং নিশ্চিত করে যে আপনার অ্যাপ্লিকেশানগুলি সঠিকভাবে সাইন করা হয়েছে এবং তাদের সারা জীবন ধরে আপডেট পেতে সক্ষম। যাইহোক, আপনি যদি নিজের অ্যাপ সাইনিং কী নিজেই পরিচালনা করার সিদ্ধান্ত নেন, তবে আপনাকে কিছু বিবেচনার কথা মনে রাখতে হবে।
স্বাক্ষর বিবেচনা
আপনার প্রত্যাশিত জীবনকাল জুড়ে একই শংসাপত্রের সাথে আপনার অ্যাপে স্বাক্ষর করা উচিত। আপনার এটি করার জন্য বেশ কয়েকটি কারণ রয়েছে:
- অ্যাপ আপগ্রেড: যখন সিস্টেম একটি অ্যাপে একটি আপডেট ইনস্টল করে, তখন এটি বিদ্যমান সংস্করণের সাথে নতুন সংস্করণের শংসাপত্র(গুলি) তুলনা করে। সার্টিফিকেট মিলে গেলে সিস্টেম আপডেট করার অনুমতি দেয়। আপনি যদি একটি ভিন্ন শংসাপত্রের সাথে নতুন সংস্করণে স্বাক্ষর করেন, তাহলে আপনাকে অবশ্যই একটি ভিন্ন প্যাকেজের নাম অ্যাপ্লিকেশানে বরাদ্দ করতে হবে—এই ক্ষেত্রে, ব্যবহারকারী সম্পূর্ণ নতুন অ্যাপ হিসাবে নতুন সংস্করণটি ইনস্টল করে৷
- অ্যাপ মডুলারিটি: অ্যাপ্লিকেশানগুলি অনুরোধ করলে, Android একই শংসাপত্র দ্বারা স্বাক্ষরিত APKগুলিকে একই প্রক্রিয়াতে চালানোর অনুমতি দেয়, যাতে সিস্টেমটি তাদের একটি একক অ্যাপ হিসাবে বিবেচনা করে। এইভাবে আপনি মডিউলগুলিতে আপনার অ্যাপ স্থাপন করতে পারেন এবং ব্যবহারকারীরা প্রতিটি মডিউল স্বাধীনভাবে আপডেট করতে পারেন।
- অনুমতির মাধ্যমে কোড/ডেটা শেয়ারিং: অ্যান্ড্রয়েড স্বাক্ষর-ভিত্তিক অনুমতি এনফোর্সমেন্ট প্রদান করে, যাতে একটি অ্যাপ নির্দিষ্ট শংসাপত্রের সাথে স্বাক্ষরিত অন্য অ্যাপের কার্যকারিতা প্রকাশ করতে পারে। একই শংসাপত্রের সাথে একাধিক APK সাইন ইন করে এবং স্বাক্ষর-ভিত্তিক অনুমতি চেক ব্যবহার করে, আপনার অ্যাপগুলি একটি নিরাপদ উপায়ে কোড এবং ডেটা ভাগ করতে পারে৷
আপনি যদি একটি অ্যাপের জন্য আপগ্রেড সমর্থন করার পরিকল্পনা করেন, তাহলে নিশ্চিত করুন যে আপনার অ্যাপ সাইনিং কীটির একটি বৈধতা সময় আছে যা সেই অ্যাপের প্রত্যাশিত আয়ুষ্কাল অতিক্রম করে। 25 বছর বা তার বেশি মেয়াদের মেয়াদ বাঞ্ছনীয়। আপনার কী এর বৈধতার মেয়াদ শেষ হয়ে গেলে, ব্যবহারকারীরা আর আপনার অ্যাপের নতুন সংস্করণে নিরবচ্ছিন্নভাবে আপগ্রেড করতে পারবে না।
আপনি যদি আপনার অ্যাপগুলিকে Google Play-এ প্রকাশ করার পরিকল্পনা করেন, তাহলে আপনার অ্যাপে স্বাক্ষর করার জন্য আপনি যে কী ব্যবহার করেন তার একটি বৈধতা সময়কাল 22 অক্টোবর 2033-এর পর শেষ হওয়া আবশ্যক৷ নতুন সংস্করণ উপলব্ধ হলে ব্যবহারকারীরা যাতে নির্বিঘ্নে অ্যাপগুলি আপগ্রেড করতে পারে তা নিশ্চিত করতে Google Play এই প্রয়োজনীয়তা প্রয়োগ করে৷
আপনার চাবি নিরাপদ রাখুন
আপনি যদি নিজের অ্যাপ সাইনিং কী এবং কী-স্টোর নিজেই পরিচালনা এবং সুরক্ষিত করতে বেছে নেন ( প্লে অ্যাপ সাইনিং -এ বেছে নেওয়ার পরিবর্তে), আপনার অ্যাপ সাইনিং কী সুরক্ষিত করা আপনার এবং ব্যবহারকারী উভয়ের জন্যই গুরুত্বপূর্ণ। আপনি যদি কাউকে আপনার কী ব্যবহার করার অনুমতি দেন, অথবা আপনি যদি আপনার কীস্টোর এবং পাসওয়ার্ডগুলি একটি অনিরাপদ স্থানে রেখে যান যাতে কোনো তৃতীয় পক্ষ সেগুলি খুঁজে পেতে এবং ব্যবহার করতে পারে, তাহলে আপনার লেখক পরিচয় এবং ব্যবহারকারীর বিশ্বাসের সাথে আপোস করা হয়৷
যদি কোনও তৃতীয় পক্ষ আপনার অজান্তে বা অনুমতি ছাড়াই আপনার অ্যাপ সাইনিং কী নিতে পরিচালনা করে, তবে সেই ব্যক্তিটি এমন অ্যাপগুলিকে সাইন করে এবং বিতরণ করতে পারে যা দূষিতভাবে আপনার খাঁটি অ্যাপগুলিকে প্রতিস্থাপন করে বা সেগুলিকে দূষিত করে। এই ধরনের ব্যক্তি আপনার পরিচয়ের অধীনে এমন অ্যাপগুলিকে সাইন ইন এবং বিতরণ করতে পারে যা অন্য অ্যাপ বা সিস্টেমকে আক্রমণ করে বা ব্যবহারকারীর ডেটা নষ্ট বা চুরি করে।
আপনার অ্যাপের সমস্ত ভবিষ্যত সংস্করণে স্বাক্ষর করার জন্য আপনার ব্যক্তিগত কী প্রয়োজন৷ আপনি যদি আপনার কী হারিয়ে ফেলেন বা ভুল জায়গায় রাখেন, তাহলে আপনি আপনার বিদ্যমান অ্যাপে আপডেট প্রকাশ করতে পারবেন না। আপনি পূর্বে জেনারেট করা কী পুনরায় তৈরি করতে পারবেন না।
একটি বিকাশকারী সত্তা হিসাবে আপনার খ্যাতি নির্ভর করে আপনার অ্যাপ সাইনিং কীটি সঠিকভাবে সুরক্ষিত করার উপর, সর্বদা, কীটির মেয়াদ শেষ না হওয়া পর্যন্ত। আপনার কী সুরক্ষিত রাখার জন্য এখানে কিছু টিপস রয়েছে:
- কীস্টোর এবং কী-এর জন্য শক্তিশালী পাসওয়ার্ড নির্বাচন করুন।
- আপনার ব্যক্তিগত কী কাউকে দেবেন না বা ধার দেবেন না এবং অননুমোদিত ব্যক্তিদের আপনার কীস্টোর এবং কী পাসওয়ার্ড জানতে দেবেন না।
- আপনার ব্যক্তিগত কী সম্বলিত কীস্টোর ফাইলটি একটি নিরাপদ, নিরাপদ স্থানে রাখুন।
সাধারণভাবে, আপনি যদি আপনার কী তৈরি, ব্যবহার এবং সংরক্ষণ করার সময় সাধারণ জ্ঞানের সতর্কতাগুলি অনুসরণ করেন তবে এটি সুরক্ষিত থাকবে৷
আপনার বিল্ড ফাইল থেকে সাইন ইন তথ্য সরান
আপনি যখন একটি সাইনিং কনফিগারেশন তৈরি করেন, তখন Android স্টুডিও মডিউলের build.gradle
ফাইলগুলিতে প্লেইন টেক্সটে আপনার সাইনিং তথ্য যোগ করে। আপনি যদি একটি দলের সাথে কাজ করেন বা আপনার কোড ওপেন-সোর্সিং করেন, তাহলে আপনার এই সংবেদনশীল তথ্যটি বিল্ড ফাইলের বাইরে সরানো উচিত যাতে এটি অন্যদের কাছে সহজে অ্যাক্সেসযোগ্য না হয়। এটি করার জন্য, আপনাকে নিরাপদ তথ্য সঞ্চয় করার জন্য একটি পৃথক বৈশিষ্ট্য ফাইল তৈরি করতে হবে এবং আপনার বিল্ড ফাইলগুলিতে সেই ফাইলটি নিম্নরূপ উল্লেখ করুন:
- একটি সাইনিং কনফিগারেশন তৈরি করুন এবং এটি এক বা একাধিক বিল্ড টাইপের জন্য বরাদ্দ করুন। এই নির্দেশাবলী অনুমান করে যে আপনি আপনার রিলিজ বিল্ড টাইপের জন্য একটি একক সাইনিং কনফিগারেশন কনফিগার করেছেন, যেমন উপরে আপনার অ্যাপটি স্বয়ংক্রিয়ভাবে সাইন করার জন্য বিল্ড প্রক্রিয়া কনফিগার করুন- এ বর্ণিত আছে।
- আপনার প্রকল্পের রুট ডিরেক্টরিতে
keystore.properties
নামে একটি ফাইল তৈরি করুন। এই ফাইলটিতে আপনার স্বাক্ষর করার তথ্য থাকা উচিত, যেমন:storePassword=myStorePassword keyPassword=mykeyPassword keyAlias=myKeyAlias storeFile=myStoreFileLocation
- আপনার মডিউলের
build.gradle
ফাইলে,android {}
ব্লকের আগে আপনারkeystore.properties
ফাইল লোড করতে কোড যোগ করুন।গ্রোভি
... // Create a variable called keystorePropertiesFile, and initialize it to your // keystore.properties file, in the rootProject folder. def keystorePropertiesFile = rootProject.file("keystore.properties") // Initialize a new Properties() object called keystoreProperties. def keystoreProperties = new Properties() // Load your keystore.properties file into the keystoreProperties object. keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) android { ... }
কোটলিন
... import java.util.Properties import java.io.FileInputStream // Create a variable called keystorePropertiesFile, and initialize it to your // keystore.properties file, in the rootProject folder. val keystorePropertiesFile = rootProject.file("keystore.properties") // Initialize a new Properties() object called keystoreProperties. val keystoreProperties = Properties() // Load your keystore.properties file into the keystoreProperties object. keystoreProperties.load(FileInputStream(keystorePropertiesFile)) android { ... }
দ্রষ্টব্য: আপনি আপনার
keystore.properties
ফাইলটি অন্য অবস্থানে সংরক্ষণ করতে বেছে নিতে পারেন (উদাহরণস্বরূপ, প্রকল্পের রুট ফোল্ডারের পরিবর্তে মডিউল ফোল্ডারে, অথবা যদি আপনি একটি অবিচ্ছিন্ন ইন্টিগ্রেশন টুল ব্যবহার করেন তবে আপনার বিল্ড সার্ভারে)। সেক্ষেত্রে, আপনার প্রকৃতkeystore.properties
ফাইলের অবস্থান ব্যবহার করে সঠিকভাবেkeystorePropertiesFile
আরম্ভ করার জন্য উপরের কোডটি পরিবর্তন করতে হবে। - আপনি সিনট্যাক্স
keystoreProperties[' propertyName ']
ব্যবহার করেkeystoreProperties
এ সংরক্ষিত বৈশিষ্ট্য উল্লেখ করতে পারেন। এই সিনট্যাক্স ব্যবহার করেkeystoreProperties
এ সঞ্চিত সাইনিং তথ্য উল্লেখ করতে আপনার মডিউলেরbuild.gradle
ফাইলেরsigningConfigs
ব্লক পরিবর্তন করুন।গ্রোভি
android { signingConfigs { config { keyAlias keystoreProperties['keyAlias'] keyPassword keystoreProperties['keyPassword'] storeFile file(keystoreProperties['storeFile']) storePassword keystoreProperties['storePassword'] } } ... }
কোটলিন
android { signingConfigs { create("config") { keyAlias = keystoreProperties["keyAlias"] as String keyPassword = keystoreProperties["keyPassword"] as String storeFile = file(keystoreProperties["storeFile"] as String) storePassword = keystoreProperties["storePassword"] as String } } ... }
- বিল্ড ভেরিয়েন্ট টুল উইন্ডো খুলুন এবং নিশ্চিত করুন যে রিলিজ বিল্ড টাইপ নির্বাচন করা হয়েছে।
- আপনার রিলিজ বিল্ডের একটি APK বা অ্যাপ বান্ডেল তৈরি করতে Build > Build Bundle(s) / APK(s) এর অধীনে একটি বিকল্প বেছে নিন। আপনার মডিউলের জন্য
build/outputs/
ডিরেক্টরিতে বিল্ড আউটপুট দেখতে হবে।
যেহেতু আপনার বিল্ড ফাইলে আর সংবেদনশীল তথ্য নেই, আপনি এখন সেগুলিকে সোর্স কন্ট্রোলে অন্তর্ভুক্ত করতে পারেন বা শেয়ার করা কোডবেসে আপলোড করতে পারেন৷ keystore.properties
ফাইলটি সুরক্ষিত রাখতে ভুলবেন না। এটি আপনার উত্স নিয়ন্ত্রণ সিস্টেম থেকে এটি অপসারণ অন্তর্ভুক্ত হতে পারে.