تبدیل AAB به APK آنلاین: آنچه این ابزار در واقع انجام می دهد
Android App Bundle (.aab) قالبی است که Google Play از برنامهنویسان میخواهد آن را آپلود کنند، اما چیزی نیست که بتوانید آن را روی تلفن نصب کنید. اگر یک فایل .aab از یک سرور ساخت، یک خط لوله CI یا یک همکار دارید، ابتدا باید آن را به یک apk. قابل نصب تبدیل کنید. این صفحه دو چیز را برای آن کار در اختیار شما قرار می دهد: یک سازنده دستور AAB به APK تعاملی که دستور دقیق bundletool را برای سیستم عامل شما می نویسد، و یک کاوشگر فایل AAB که بسته را در مرورگر شما باز می کند تا بتوانید قبل از تبدیل آن، آنچه داخل آن است را ببینید.
این تبدیل به خودی خود از طریق bundletool رسمی گوگل که یک برنامه جاوا است انجام می شود. از آنجایی که bundletool به زمان اجرا جاوا و دسترسی به keystore شما نیاز دارد، مرحله ساخت واقعی در دستگاه شما اتفاق میافتد، نه در سرورهای ما. فایل aab. شما هرگز در جایی آپلود نمی شود. سازنده به سادگی حدس و گمان ها را حذف می کند تا بتوانید به جای حفظ کردن نام پرچم ها، یک دستور درست و آماده برای اجرا را کپی کنید.
AAB در مقابل APK: چرا نمیتوانید فایل را تغییر نام دهید
بسیاری از مردم با تغییر نام برنامه افزودنی، نحوه تغییر AAB به APK را جستجو می کنند و هرگز کار نمی کند. apk. یک بسته مجزا و مستقل است که Android می تواند مستقیماً آن را نصب کند. یک .aab یک محفظه انتشار است: کد و منابع کامپایل شده شما را به صورت ماژولها تقسیم میکند و از Google Play یا bundletool انتظار دارد که فایلهای APK نهایی و بهینهشده برای دستگاه را از آن تولید کند. تغییر نام فایل آن ماژول ها را باز نمی کند یا چیزی را امضا نمی کند، بنابراین Android از نصب آن امتناع می کند. تنها راه قابل اعتماد برای تبدیل Android App Bundle به APK این است که به bundletool اجازه دهید مجموعه APK را برای شما بسازد.
نحوه تبدیل AAB به APK در Windows، مک و لینوکس
مراحل در هر پلتفرمی یکسان است و فقط سبک مسیر فایل تغییر می کند، به همین دلیل است که سازنده دستور بالا دارای سوئیچ Windows، macOS و لینوکس است. در اینجا جریان کامل از ابتدا تا انتها آمده است:
- جاوا JDK 8 یا جدیدتر را نصب کنید. java -version را در ترمینال اجرا کنید تا تأیید کنید جاوا در مسیر شما قرار دارد.
- ابزار بسته را دانلود کنید. جدیدترین bundletool-all.jar را از صفحه رسمی انتشارات GitHub Google دریافت کنید.
- مجموعه APK را بسازید. bundletool را به بسته خود نشان دهید و به آن اجازه دهید یک آرشیو .apks ایجاد کند: java -jar bundletool-all.jar build-apks --bundle=app.aab --output=app.apks --mode=universal
- بایگانی .apks را باز کنید. این فقط یک فایل ZIP است، پس آن را استخراج کنید و universal.apk را در داخل آن پیدا خواهید کرد.
- بر روی دستگاه خود نصب کنید. APK را در تلفن خود کپی کنید و آن را در کناری بارگذاری کنید یا از bundletool install-apks با دستگاهی که از طریق USB متصل است استفاده کنید.
APK جهانی در مقابل APK های تقسیم شده: کدام یک را باید بسازید؟
اگر یک فایل می خواهید که روی هر گوشی نصب شود، از --mode=universal استفاده کنید. این یک APK جهانی از AAB شما ایجاد می کند که هر معماری CPU، تراکم صفحه نمایش و زبان را در یک بسته جمع می کند. بزرگتر است، اما سادهترین گزینه برای آزمایش، بایگانی یا اشتراکگذاری یک ساخت در خارج از فروشگاه Play است. اگر حالت را کنار بگذارید، bundletool در عوض فایلهای APK تقسیمشده را تولید میکند که برای یک دستگاه خاص بریده شدهاند، بنابراین آنها کوچکتر دانلود میشوند اما باید مجموعه منطبق را با هم نصب کنید. برای اکثر افرادی که فقط نیاز به تبدیل یک .aab برای نصب سریع دارند، APK جهانی انتخاب مناسبی است.
امضای APK که از یک AAB دریافت می کنید
Android APK را نصب نمی کند مگر اینکه امضا شده باشد. برای آزمایش، bundletool میتواند بهطور خودکار با کلید اشکالزدایی امضا کند، این دقیقاً همان کاری است که گزینه «Use Debug keystore» در سازنده انجام میدهد. اگر در حال آمادهسازی نسخهای برای انتشار در وبسایت خود هستید، با پر کردن قسمتهای مسیر keystore، رمز ذخیره کلید، نام مستعار کلید و رمز عبور کلید، آن را با فروشگاه کلید خود امضا کنید. سازنده سپس پرچمهای --ks، --ks-pass، --ks-key-alias، و --key-pass را اضافه میکند تا APK که دریافت میکنید، امضای تولید واقعی شما را بهجای یک اشکالزدایی دور ریختنی حمل کند.
خطاهای رایج bundletool و نحوه رفع آنها
دو مشکل بارها و بارها پیش می آید. پیام "bundletool: command not found" به این معنی است که سعی کردید bundletool را طوری اجرا کنید که انگار یک دستور داخلی است. این یک فایل JAR است، بنابراین همیشه آن را با java -jar bundletool-all.jar صدا می زنید. خطای "بدون کلید/گواهی" به این معنی است که جزئیات امضا وجود ندارد: یا --mode=universal را برای ساخت آزمایشی بدون امضا اضافه کنید، یا پرچمهای فروشگاه کلید خود را همانطور که در بالا توضیح داده شد ارائه دهید. برگه عیبیابی بالاتر از صفحه، موارد بیشتری را پوشش میدهد، و AAB Explorer به شما امکان میدهد قبل از صرف زمان برای اشکالزدایی یک فرمان، تأیید کنید که بسته شما واقعاً حاوی ماژولهایی است که انتظار دارید.
چه زمانی واقعاً نیاز به تبدیل AAB دارید؟
دلایل معمول این است که یک نسخه نسخه را قبل از انتشار در یک دستگاه واقعی آزمایش کنید، یک بیلد را به آزمایشکنندهای که از Google Play استفاده نمیکند، نگه دارید، یک نسخه قابل نصب از برنامه خود را برای سوابق خود نگه دارید، یا اجرای QA روی سختافزاری که تست داخلی Play Store به آن دسترسی ندارد. به هر دلیلی، فقط بستههای برنامه را تبدیل کنید که حق استفاده از آنها را دارید، مانند بیلدهای خودتان یا بستههایی که اجازه کار با آنها را دارید.