অ্যান্ড্রয়েড ধারণা (ওয়েব ডেভেলপারদের জন্য)

পিটার কন
Peter Conn
জয়েস তোহ
Joyce Toh

আপনি যদি একজন ওয়েব ডেভেলপার হন যিনি Android এবং Google Play-তে নতুন, তাহলে কিছু বিবরণ আপনার সচেতন হওয়া উচিত। এর জন্য ইতিমধ্যেই অনেক সংস্থান এবং ডকুমেন্টেশন রয়েছে (অ্যান্ড্রয়েড টিমকে ধন্যবাদ) তবে এখানে আমরা কিছু গুরুত্বপূর্ণ ধারণা হাইলাইট করব এবং কীভাবে সেগুলি বাবল র‍্যাপের সাথে সম্পর্কিত।

আপলোড বনাম সাইনিং কী

আপনি যদি একটি Android App Bundle (AAB) তৈরি করতে Bubblewrap ব্যবহার করার পরিকল্পনা করেন (দ্রষ্টব্য: আগস্ট 2021 থেকে শুরু করে, Google Play-এ সমস্ত নতুন অ্যাপের Android App Bundle ফর্ম্যাট ব্যবহার করতে হবে ) অথবা Google Play-এ আপলোড ও প্রকাশ করার জন্য APK, আপনাকে একটি সাইনিং কী দিয়ে আপনার অ্যাপে সাইন করতে হবে। আপনি কীভাবে এটি পরিচালনা করতে পারেন তার জন্য Google Play আপনাকে দুটি বিকল্প দেয়:

  • প্লে অ্যাপ সাইনিং (অত্যন্ত প্রস্তাবিত) : Google আপনার জন্য আপনার অ্যাপের সাইনিং কী পরিচালনা করবে এবং সুরক্ষিত করবে। এটি বিতরণের জন্য আপনার APKগুলিতে স্বাক্ষর করতে এটি ব্যবহার করে। প্লে অ্যাপ সাইনিং দুটি কী ব্যবহার করে। "অ্যাপ সাইনিং কী" যা Google আপনার জন্য পরিচালনা করবে এবং "আপলোড কী" যা আপনি রাখেন এবং আপনার কাছে গোপনীয় থাকবে৷ আপনি প্লে কনসোলে আপলোড করার জন্য আপনার অ্যাপে স্বাক্ষর করতে আপলোড কী ব্যবহার করেন। প্লে সাপোর্ট টিমের সাথে যোগাযোগ করে এই সিস্টেমটি আপনার আপলোড কী কখনও হারিয়ে গেলে বা আপস করা হলে সেটি রিসেট করা সম্ভব করে৷ বর্তমানে, Google Play আপনাকে AAB বা APK হিসেবে আপনার অ্যাপ আপলোড করতে দেয়:
    • অ্যান্ড্রয়েড অ্যাপ বান্ডেল (AAB): আপনি যখন প্লে কনসোলে একটি AAB আপলোড করেন, তখন আপনি Google Play Store-এ APK তৈরি এবং প্রজন্মকে পিছিয়ে দেন। যখন একজন ব্যবহারকারী আপনার অ্যাপ ডাউনলোড এবং ইনস্টল করেন, তখন Google Play তাদের কাছে একটি স্বাক্ষরিত APK হিসেবে বিতরণ করবে। অতএব, এপিকে সাইনিং করাও Google Play-এর মাধ্যমে করা দরকার। তাই, ডিফল্টরূপে, আপনি যদি প্লে কনসোলে AAB হিসেবে আপনার অ্যাপ আপলোড করেন, তাহলে আপনাকে Play App Signing ব্যবহার করতে হবে।
    • APK: APK-এর সাথে, আপনার কাছে প্লে অ্যাপ সাইনিং-এ বেছে নেওয়ার পছন্দ আছে। প্লে অ্যাপ সাইনিং-এ অপ্ট ইন করা অত্যন্ত বাঞ্ছনীয় কারণ এটি আপনার সাইনিং কীটির নিরাপত্তা বাড়ায়। আগেই উল্লেখ করা হয়েছে, Google Play-তে শীঘ্রই সমস্ত নতুন অ্যাপ AAB ফর্ম্যাটে আপলোড করতে হবে, তাই আমরা APK আপলোড করার পরিবর্তে এটি করার পরামর্শ দিই।
  • আপনার নিজের সাইনিং কী পরিচালনা করুন : আপনি যদি নিজের কী পরিচালনা করতে চান এবং প্লে অ্যাপ সাইনিং-এ অপ্ট ইন না করেন, তাহলে আপনার অ্যাপের সাইনিং কীটির জন্য আপনি সম্পূর্ণরূপে দায়ী৷ প্লে অ্যাপ সাইনিংয়ের বিপরীতে, আপনি চাবিটি হারিয়ে ফেললে এটি পুনরায় সেট করা সম্ভব নয়। অতএব, আপনার অ্যাপের সাইনিং কী হারানোর মানে হল আপনি আপনার অ্যাপ আপডেট করার ক্ষমতাও হারাবেন।

bubblewrap init সেটআপের সময়, আপনি যখন "সাইনিং কী তথ্য (5/5)" অংশে পৌঁছাবেন, তখন আপনাকে একটি "কী স্টোরের অবস্থান" এবং "কী নাম" লিখতে বা ডিফল্টগুলি ব্যবহার করতে বলা হবে৷ ডিফল্ট কী স্টোরের অবস্থান হল আপনার প্রোজেক্ট ডিরেক্টরির ফাইল android.keystore এবং ডিফল্ট কী নাম হল android ৷ যদি Bubblewrap অবস্থানে সেই কী নামের একটি বিদ্যমান কীস্টোর খুঁজে না পায়, তাহলে এটি আপনার জন্য একটি তৈরি করবে এবং পাসওয়ার্ডের জন্য আপনাকে অনুরোধ করবে। আপনি যে পাসওয়ার্ডগুলি লিখেছেন সেগুলি নোট করুন কারণ বিল্ড প্রক্রিয়ার সময় আপনার সেগুলি প্রয়োজন হবে ( bubblewrap build ) যেখানে এটি আপনার অ্যাপে স্বাক্ষর করতে কী ব্যবহার করবে৷ আপনি যদি প্লে অ্যাপ সাইনিং-এ অপ্ট ইন করেন, তাহলে বুদ্বুদ র‍্যাপ যে সাইনিং কী তৈরি করে এবং আপনার অ্যাপে সাইন করার জন্য ব্যবহার করে সেটি "আপলোড কী" হয়ে যায়। আপনি আপনার সাইনিং বা আপলোড কী হিসাবে বাবল র‌্যাপ জেনারেটেড কী ব্যবহার করতে চান না কেন, আপনার চাবিটি গোপন রাখা উচিত। আমরা এটিকে সংস্করণ নিয়ন্ত্রণে কমিট করার সুপারিশ করি না। পরিবর্তে, এটিতে অ্যাক্সেস সহ ব্যক্তির সংখ্যা সীমিত করুন।

আপনার ওয়েবসাইট এবং আপনার অ্যান্ড্রয়েড অ্যাপের মধ্যে সম্পর্ক ঘোষণা করার জন্য ডিজিটাল সম্পদ লিঙ্কের প্রয়োজন। Bubblewrap দ্বারা জেনারেট করা আপনার অ্যান্ড্রয়েড অ্যাপটি সঠিকভাবে যাচাই করা হয়েছে এবং একটি বিশ্বস্ত ওয়েব অ্যাক্টিভিটি (একটি Chrome কাস্টম ট্যাবের পরিবর্তে) চালু হয়েছে তা নিশ্চিত করতে, আপনাকে আপনার assetlinks.json ফাইলে উপযুক্ত কী যোগ করতে হবে। তারপর এটিকে আপনার ওয়েবসাইটে .well-known/assetlinks.json (রুটের সাথে সম্পর্কিত) আপলোড করুন। আপনার assetlinks.json ফাইলটি এই ফর্ম্যাটটি অনুসরণ করা উচিত:

[{
 "relation": ["delegate_permission/common.handle_all_urls"],
 "target": {
   "namespace": "android_app",
   "package_name": "com.your.package_name",
   "sha256_cert_fingerprints": [
     "XX:XX:XX:..."
   ]
 }
}]

SHA256 সার্টিফিকেট ফিঙ্গারপ্রিন্ট পান

assetlinks.json ফাইল তৈরি করতে, আপনার অ্যাপের সাইনিং কী-এর সাথে যুক্ত SHA 256 সার্টিফিকেট ফিঙ্গারপ্রিন্টের প্রয়োজন হবে। লক্ষণীয় গুরুত্বপূর্ণ বিষয় হল আপনার স্বাক্ষর এবং আপলোড কীগুলির সাথে যুক্ত আঙ্গুলের ছাপগুলি আলাদা হবে৷ এই পার্থক্যটি মাথায় রাখা গুরুত্বপূর্ণ, বিশেষ করে যদি আপনি একটি Chrome কাস্টম ট্যাব (ব্রাউজার বার দৃশ্যমান সহ) হিসাবে আপনার অ্যাপ চালু হওয়া লক্ষ্য করেন৷ তাহলে, সম্ভবত আপনার assetlinks.json ফাইলে উপযুক্ত কী-এর সাথে সামঞ্জস্যপূর্ণ আঙ্গুলের ছাপ নেই।

আপনার অ্যাপ্লিকেশানটিকে স্থানীয়ভাবে আরও সহজে ডিবাগ করতে আপনার assetlinks.json-এ আপনার স্বাক্ষর করা এবং আপলোড শংসাপত্রের ফিঙ্গারপ্রিন্ট উভয়ই থাকা দরকারী৷ কিভাবে assetlinks.json ফাইলে উভয় কী রাখা যায় সে সম্পর্কে আরও তথ্যের জন্য নীচে আরও কী যোগ করা দেখুন।

আঙ্গুলের ছাপ পাওয়ার জন্য কয়েকটি ভিন্ন উপায় রয়েছে যা পরবর্তী বিভাগে বিস্তারিত রয়েছে। তাদের সকলেরই আপনাকে একই আঙ্গুলের ছাপ দেওয়া উচিত তাই নির্দ্বিধায় সবচেয়ে সুবিধাজনক পদ্ধতিটি বেছে নিন।

প্লে কনসোলের মাধ্যমে

আপনি প্লে অ্যাপ সাইনিং বেছে নিচ্ছেন কিনা তার উপর নির্ভর করে, আপনার কাছে এক বা দুটি কী থাকতে পারে। প্রতিটি কী-এর জন্য উপযুক্ত SHA256 ফিঙ্গারপ্রিন্ট পুনরুদ্ধার করতে:

  1. প্লে কনসোলে যান
  2. আপনি আগ্রহী অ্যাপটি নির্বাচন করুন
  3. বামদিকে নেভিগেশন মেনুতে, রিলিজের অধীনে, সেটআপ -> অ্যাপ ইন্টিগ্রিটিতে যান।
  4. উপযুক্ত কীটির জন্য SHA256 অনুলিপি করুন: