AAB কে APK অনলাইনে রূপান্তর করুন: এই টুলটি আসলে কী করে
Android অ্যাপ বান্ডেল (.aab) হল এমন ফর্ম্যাট যা Google Play ডেভেলপারদের আপলোড করতে বলে, কিন্তু এটি এমন কিছু নয় যা আপনি একটি ফোনে ইনস্টল করতে পারেন। আপনার যদি একটি বিল্ড সার্ভার, একটি CI পাইপলাইন, বা কোনো সহকর্মী থেকে একটি .aab ফাইল থাকে, তাহলে আপনাকে প্রথমে এটিকে একটি ইনস্টলযোগ্য .apk-এ পরিণত করতে হবে৷ এই পৃষ্ঠাটি আপনাকে সেই কাজের জন্য দুটি জিনিস দেয়: একটি ইন্টারেক্টিভ AAB থেকে APK কমান্ড নির্মাতা যা আপনার অপারেটিং সিস্টেমের জন্য সঠিক bundletool কমান্ড লেখে, এবং একটি AAB ফাইল এক্সপ্লোরার যা আপনার ব্রাউজারে বান্ডিলটি খোলে যাতে আপনি এটি রূপান্তর করার আগে ভিতরে কী আছে তা দেখতে পারেন৷
রূপান্তরটি নিজেই Google এর অফিসিয়াল bundletool এর মাধ্যমে চলে, যা একটি জাভা প্রোগ্রাম। যেহেতু bundletool-এর জাভা রানটাইম এবং আপনার কীস্টোরে অ্যাক্সেসের প্রয়োজন, প্রকৃত বিল্ড স্টেপটি আপনার নিজের মেশিনে ঘটে, আমাদের সার্ভারে নয়। আপনার .aab ফাইলটি কোথাও আপলোড করা হয় না। নির্মাতা কেবল অনুমানটি সরিয়ে দেয় যাতে আপনি পতাকার নামগুলি মুখস্থ করার পরিবর্তে একটি সঠিক, চালানোর জন্য প্রস্তুত কমান্ড অনুলিপি করতে পারেন।
AAB বনাম APK: কেন আপনি শুধু ফাইলের নাম পরিবর্তন করতে পারবেন না
অনেক লোক এক্সটেনশনের নাম পরিবর্তন করে AAB কে APK তে কীভাবে পরিবর্তন করবেন তা অনুসন্ধান করে এবং এটি কখনই কাজ করে না। একটি .apk হল একটি একক, স্বয়ংসম্পূর্ণ প্যাকেজ যা Android সরাসরি ইনস্টল করতে পারে৷ একটি .aab হল একটি প্রকাশনা ধারক: এটি আপনার সংকলিত কোড এবং সংস্থানগুলিকে মডিউলগুলিতে বিভক্ত করে রাখে এবং এটি Google Play বা bundletool এর থেকে চূড়ান্ত, ডিভাইস-অপ্টিমাইজ করা APKগুলি তৈরি করবে বলে আশা করে৷ ফাইলের নাম পরিবর্তন করা সেই মডিউলগুলিকে আনপ্যাক করে না বা কিছুতে স্বাক্ষর করে না, তাই Android এটি ইনস্টল করতে অস্বীকার করে। একটি Android অ্যাপ বান্ডিল থেকে APK রূপান্তর করার একমাত্র নির্ভরযোগ্য উপায় হল bundletool কে আপনার জন্য APK সেট তৈরি করতে দেওয়া।
Windows, ম্যাক এবং লিনাক্সে কীভাবে AAB কে APK তে রূপান্তর করবেন
ধাপগুলি প্রতিটি প্ল্যাটফর্মে একই, এবং শুধুমাত্র ফাইল-পাথের শৈলী পরিবর্তিত হয়, যার কারণে উপরের কমান্ড নির্মাতার একটি Windows, macOS এবং Linux সুইচ রয়েছে। এখানে শুরু থেকে শেষ পর্যন্ত সম্পূর্ণ প্রবাহ রয়েছে:
- Java JDK 8 বা নতুন ইনস্টল করুন। জাভা আপনার PATH-এ রয়েছে তা নিশ্চিত করতে একটি টার্মিনালে java -version চালান।
- bundletool ডাউনলোড করুন। Google-এর অফিসিয়াল GitHub রিলিজ পৃষ্ঠা থেকে সর্বশেষ bundletool-all.jar পান৷
- আপনার বান্ডেলে APK সেট তৈরি করুন। পয়েন্ট বান্ডলেটুল করুন এবং এটিকে একটি .apks সংরক্ষণাগার তৈরি করতে দিন: java -jar bundletool-all.jar build-apks --bundle=app.aab --output=app.apks --mode=universal
- .apks আর্কাইভ খুলুন। এটি শুধুমাত্র একটি জিপ ফাইল, তাই এটি বের করুন এবং আপনি universal.apk ভিতরে পাবেন।
- আপনার ডিভাইসে ইনস্টল করুন। আপনার ফোনে APK অনুলিপি করুন এবং এটি সাইডলোড করুন, অথবা USB-এর মাধ্যমে সংযুক্ত একটি ডিভাইসের সাথে bundletool install-apks ব্যবহার করুন।
ইউনিভার্সাল APK বনাম স্প্লিট APK: আপনার কোনটি তৈরি করা উচিত?
আপনি যদি একটি ফাইল চান যা যেকোনো ফোনে ইনস্টল হয়, তাহলে --mode=universal ব্যবহার করুন। এটি একটি একক আপনার AAB থেকে সার্বজনীন APK তৈরি করে যা প্রতিটি CPU আর্কিটেকচার, পর্দার ঘনত্ব এবং ভাষাকে একটি প্যাকেজে বান্ডিল করে। এটি বড়, কিন্তু প্লে স্টোরের বাইরে বিল্ড পরীক্ষা, সংরক্ষণাগার বা ভাগ করার জন্য এটি সবচেয়ে সহজ বিকল্প। আপনি যদি মোডটি ছেড়ে দেন, তবে bundletool পরিবর্তে বিভক্ত APK তৈরি করে যা একটি নির্দিষ্ট ডিভাইসের জন্য ছাঁটাই করা হয়, তাই সেগুলি ছোট আকারে ডাউনলোড করে তবে আপনাকে মিলিত সেটটি একসাথে ইনস্টল করতে হবে। বেশিরভাগ লোকের জন্য যাদের দ্রুত ইনস্টল করার জন্য একটি .aab রূপান্তর করতে হবে, সর্বজনীন APK হল সঠিক পছন্দ৷
আপনি AAB থেকে যে APK পান তা স্বাক্ষর করা
অ্যানড্রয়েড একটি APK ইনস্টল করবে না যদি না এটি স্বাক্ষরিত হয়। পরীক্ষার জন্য, bundletool স্বয়ংক্রিয়ভাবে একটি ডিবাগ কী দিয়ে স্বাক্ষর করতে পারে, যা নির্মাতার "ডিবাগ কীস্টোর ব্যবহার করুন" বিকল্পটি ঠিক তাই করে। আপনি যদি একটি রিলিজ বিল্ড প্রস্তুত করছেন, উদাহরণস্বরূপ আপনার নিজের ওয়েবসাইটে বিতরণ করার জন্য, কীস্টোর পাথ, কীস্টোর পাসওয়ার্ড, কী উপনাম এবং কী পাসওয়ার্ড ক্ষেত্রগুলি পূরণ করে আপনার নিজের কীস্টোর দিয়ে এটি সাইন ইন করুন। নির্মাতা তারপর --ks, --ks-pass, --ks-key-alias, এবং --key-pass ফ্ল্যাগগুলি যোগ করে যাতে আপনি যে APKটি পান তা থ্রোওয়ে ডিবাগের পরিবর্তে আপনার আসল উত্পাদন স্বাক্ষর বহন করে।
সাধারণ বান্ডলেটুল ত্রুটি এবং কীভাবে সেগুলি ঠিক করবেন
দুটি সমস্যা বারবার উঠে আসে। "bundletool: command not found" বার্তাটির অর্থ হল আপনি bundletool চালানোর চেষ্টা করেছেন যেন এটি একটি অন্তর্নির্মিত কমান্ড। এটি একটি JAR ফাইল, তাই আপনি সবসময় এটিকে java -jar bundletool-all.jar দিয়ে কল করুন। "কোন কী/শংসাপত্র নেই" ত্রুটির অর্থ স্বাক্ষর করার বিশদ অনুপস্থিত: হয় একটি স্বাক্ষরবিহীন পরীক্ষা বিল্ডের জন্য --mode=universal যোগ করুন, অথবা উপরে বর্ণিত হিসাবে আপনার কীস্টোর পতাকা সরবরাহ করুন৷ পৃষ্ঠার উপরের ট্রাবলশুটিং ট্যাবটি এর মধ্যে আরও অনেক কিছুকে কভার করে, এবং AAB এক্সপ্লোরার আপনাকে নিশ্চিত করতে দেয় যে আপনার বান্ডেলে সত্যিই এমন মডিউল রয়েছে যা আপনি একটি কমান্ড ডিবাগ করার সময় ব্যয় করার আগে আশা করেন৷
কখন আপনি আসলে একটি AAB রূপান্তর করতে হবে?
সাধারণ কারণগুলি হল আপনি প্রকাশ করার আগে একটি বাস্তব ডিভাইসে একটি রিলিজ বিল্ড পরীক্ষা করা, Google Play ব্যবহার করেন না এমন একজন পরীক্ষকের কাছে একটি বিল্ড হস্তান্তর করা, আপনার রেকর্ডের জন্য আপনার নিজের অ্যাপের একটি ইনস্টলযোগ্য অনুলিপি রাখা, বা প্লে স্টোরের অভ্যন্তরীণ পরীক্ষায় পৌঁছায় না এমন হার্ডওয়্যারে QA চালানো। কারণ যাই হোক না কেন, শুধুমাত্র সেই অ্যাপ বান্ডিলগুলিকে রূপান্তর করুন যেগুলি ব্যবহার করার অধিকার আপনার আছে, যেমন আপনার নিজের তৈরি বা বান্ডিলগুলির সাথে কাজ করার জন্য আপনার কাছে স্পষ্ট অনুমতি রয়েছে৷