درباره Android App Bundles
Android App Bundle (AAB) چیست؟
Android App Bundle (AAB) که در سال 2018 راهاندازی شد، یک فرمت انتشار برای اندروید است که توسط Google Play و سایر فروشگاههای برنامه، و با ابزارهای ساخت مانند Android Studio، Bazel، Buck، Cocos Creator، Gradle، Unity، و Unreal پشتیبانی میشود. .
تفاوت بین AAB و APK چیست؟
بستههای برنامه فقط برای انتشار هستند و روی دستگاههای Android نصب نمیشوند. بسته اندروید (APK) فرمت قابل نصب و اجرایی اندروید برای برنامه ها است. بستههای برنامه باید توسط یک توزیعکننده در فایلهای APK پردازش شوند تا بتوانند روی دستگاهها نصب شوند.
آیا AAB یک قالب اختصاصی است که فقط در Google Play قابل استفاده است؟
خیر، AAB اختصاصی نیست. بسته برنامه منبع باز است، بنابراین هر فروشگاه برنامه می تواند آن را پشتیبانی کند. بستهها توسط Google Play و برخی فروشگاههای برنامه دیگر پشتیبانی میشوند.
آیا ایجاد AAB مانع از انتشار من در فروشگاه های برنامه دیگر می شود؟
نه، شما از انتشار در فروشگاه های برنامه دیگر جلوگیری نمی کنید. وقتی برنامه خود را میسازید، بسته به فرمت انتشار مورد نیاز برای هر فروشگاه برنامه، میتوانید همزمان AAB و APK بسازید.
برای استفاده از AAB چقدر کار لازم است؟
برای اکثر برنامه ها، ساختن AAB معادل تلاش برای ساختن APK است، زیرا صرفاً شامل انتخاب AAB به جای APK در زمان ساخت است. برای برخی از برنامه ها، ممکن است تغییراتی لازم باشد تا از مزایای کامل AAB ها بهره مند شوید.
آیا توسعهدهندگانی قبلاً از AAB استفاده میکنند؟
بله. بیش از ۱ میلیون برنامه و بازی از بستههای برنامه برای انتشار نسخههای تولیدی خود در Google Play از جمله اکثر برنامههای محبوب که نشان دهنده میلیاردها نصب فعال هستند، استفاده میکنند. اگر از Google Play برای نصب برنامهها استفاده میکنید، بسیاری از برنامههای موجود در دستگاه شما بهصورت بستههای برنامه منتشر شدهاند.
آیا AAB از بارگذاری جانبی برنامه ها توسط کاربران جلوگیری می کند؟
خیر، AAB ها از نصب APK از هر منبعی توسط کاربران جلوگیری نمی کنند. از آنجایی که AAB فقط یک قالب انتشار است، نحوه عملکرد پلتفرم اندروید را تغییر نمیدهند.
اگر توسعهدهندهای از AAB برای ارائه فایلهای APK بهینهسازی شده استفاده میکند، آیا این بدان معناست که کاربرانی که آن APKها را به اشتراک میگذارند ممکن است با مشکل مواجه شوند؟
همیشه موارد نادری در Android وجود داشته است که APK ها نمی توانند مستقیماً از یک دستگاه به دستگاه دیگر منتقل شوند، صرف نظر از اینکه برنامه از طریق APK یا AAB منتشر شده است. به طور خاص، زمانی که فایلهای APK برای دستگاهی بهینهسازی شدهاند (مثلاً برای یک معماری تراشه خاص)، در صورتی که دستگاه مورد نظر با ویژگیهای دستگاه اصلی مطابقت نداشته باشد، انتقال آنها مستقیماً به دستگاه دیگری ممکن است با مشکلاتی مواجه شود. در این شرایط، یک APK یا مجموعه ای از APK های مناسب برای دستگاه مورد نظر باید نصب شود.
آیا می توانم در چندین فروشگاه برنامه منتشر کنم؟
بله، میتوانید در چند فروشگاه برنامه منتشر کنید، چه از AAB استفاده کنید یا نه. میتوانید همزمان با انتشار فایلهای APK در فروشگاههای برنامه دیگر یا وبسایتهایی که از AAB پشتیبانی نمیکنند، AABها را در Google Play و سایر فروشگاههای برنامه که از AAB پشتیبانی میکنند منتشر کنید.
آیا الزام AAB برای برنامه های خصوصی منتشر شده در Google Play مدیریت شده اعمال می شود؟
خیر، برنامههای خصوصی منتشر شده در Google Play مدیریت شده میتوانند با APK یا AAB منتشر کنند. هنگام ایجاد یک برنامه خصوصی جدید، میتوانید تغییر کلید امضای برنامه را انتخاب کنید و اگر میخواهید یک APK خصوصی و با امضای خود منتشر کنید، از امضای برنامه Play انصراف دهید.
درباره امضای برنامه Play
امضای برنامه Play چیست؟
هر APK در Android باید به صورت رمزنگاری با کلید امضای برنامه امضا شود تا قابل نصب باشد. پلتفرم اندروید از کلید استفاده می کند تا اطمینان حاصل کند که هر به روز رسانی برنامه با برنامه نصب شده روی دستگاه مطابقت دارد، به طوری که پس از نصب اولیه، هر به روز رسانی برنامه از همان نگهدارنده کلید می آید. این امر خطر به روز رسانی برنامه های مخرب را کاهش می دهد. Play App Signing که در سال 2017 راهاندازی شد، سرویس مدیریت کلید Google Play است که از کلیدهای امضای برنامه توسعهدهندگان Play برای برنامههای توزیعشده در Play محافظت و مدیریت میکند. علاوه بر این، Play App Signing عملیات امضا را روی فایلهای APK که Play از AABهای آپلود شده تولید میکند، انجام میدهد. Play App Signing برای برنامههای جدید لازم است تا بتوانند از AAB استفاده کنند.
چرا Google Play App Signing را راه اندازی کرد؟
برای سالها، کلیدهای امضای برنامه برای توسعهدهندگان Play یک چالش بود. از دست دادن کلید به این معنی است که دیگر نمیتوانید بهروزرسانیهای برنامه را به کاربران ارائه دهید و یک کلید در معرض خطر قرار میگیرد، کاربران را در معرض خطر بهروزرسانیهای مخرب قرار میدهد. در توزیع نرمافزار برای کانالهای توزیع، ذخیره و مدیریت کلیدهای نرمافزاری که توزیع میکنند، رایج است، زیرا این خطرات را کاهش میدهد. Play App Signing در سال 2017 راهاندازی شد تا خطر از دست دادن کلیدهای توزیع Play را از بین ببرد، تا امکان محافظت از کاربران Play را پس از مصالحه کلیدی فراهم کند و توسعهدهندگان از سرمایهگذاری امنیتی مداوم Google بهرهمند شوند.
چگونه گوگل امنیت Play App Signing را تضمین می کند؟
Google از کلیدهای توسعه دهندگان در همان زیرساخت پیشرو و ایمن در صنعت محافظت می کند که برای محافظت از کلیدهای خود Google استفاده می شود. کلیدها به صورت رمزگذاری شده در سرورهای مدیریت کلید اختصاصی قفل شده با ACLهای سختگیرانه و مسیرهای حسابرسی آشکار که همه عملیات را پوشش می دهند، ذخیره می شوند. عملیات امنیتی ابری Google و بهترین شیوه ها به صورت آنلاین به تفصیل ارائه شده است.
آیا می توانم کلید امضای برنامه را که Play برای برنامه من استفاده می کند انتخاب کنم؟
بله، وقتی یک برنامه جدید ایجاد میکنید، میتوانید انتخاب کنید که Google یک کلید امضای برنامه را از طرف شما ایجاد و ذخیره کند یا میتوانید کلید امضای برنامه خود را انتخاب کنید و یک کپی از آن را آپلود کنید.
من می خواهم از همان کلید امضای برنامه برای Play و سایر فروشگاه های برنامه استفاده کنم. آیا این هنوز امکان پذیر است؟
اگر پس از بررسی نحوه عملکرد بهروزرسانیهای برنامه ، تصمیم گرفتهاید از کلید امضای یکسانی در فروشگاههای برنامههای متعدد استفاده کنید، هنوز هم میتوانید این کار را انجام دهید. به یاد داشته باشید، این به هر فروشگاه برنامه اجازه میدهد تا بهروزرسانیهای برنامههای بین فروشگاهی را برای برنامه شما انجام دهد. شما دو گزینه دارید:
- می توانید یک کلید به صورت محلی ایجاد کنید و یک کپی از آن را در Play آپلود کنید. به این ترتیب، میتوانید از همان کلیدی که Google Play هنگام ساخت برنامه خود برای فروشگاههای برنامه دیگر استفاده میکند، استفاده کنید.
- میتوانید از یک کلید تولید شده توسط Google برای امضای برنامه Play استفاده کنید، سپس فایلهای APK توزیع را از کنسول Play دانلود کنید که با کلید تولید شده توسط Google امضا شدهاند و از آن APK برای توزیع در فروشگاههای برنامه یا وبسایتهای دیگر استفاده کنید.
آیا میتوانم از Play App Signing برای برنامهای که قبل از اوت 2021 ایجاد شده است، بدون ارائه نسخهای از کلید امضای برنامه خود استفاده کنم؟
بله، Play App Signing از گزینه «ارتقای کلید» برای برنامههایی که قبل از اوت 2021 ایجاد شدهاند، پشتیبانی میکند. این به برنامه اجازه میدهد با کلید امضای برنامه جدید شروع به استفاده از Play App Signing کند. با این حال، برای استفاده از این گزینه، پس از انجام ارتقا، باید دو مورد را در هر نسخه آپلود کنید: یک بسته برنامه و یک APK قدیمی که با کلید امضای برنامه قدیمی شما امضا شده است. Play از AABهای شما برای تولید فایلهای APK امضا شده با کلید ارتقا یافته برای نصبهای جدید و بهروزرسانیهای آنها استفاده میکند. همزمان Play از فایلهای APK قدیمی شما برای بهروزرسانی برنامه برای کاربرانی که قبلاً برنامه شما را نصب کردهاند، استفاده میکند. با گذشت زمان، نصبهای قدیمی به کلید ارتقا یافته منتقل میشوند (مثلاً وقتی کاربران به یک دستگاه تلفن همراه جدید منتقل میشوند).
آیا راهی برای استفاده از همان کلید امضای برنامه برای برنامههایی که قبل از آگوست ۲۰۲۱ ایجاد شدهاند و برنامههایی که بعد از اوت ۲۰۲۱ ایجاد شدهاند، وجود دارد؟
به طور کلی استفاده از یک کلید امضای برنامه برای چندین برنامه توصیه نمی شود، استفاده از یک کلید منحصر به فرد برای هر برنامه ایمن تر است. با این حال، اگر نیاز به استفاده از یک کلید امضای برنامه برای چندین برنامه دارید، این امکان وجود دارد. در هر صورت، میتوانید هنگام پیکربندی Play App Signing، یک کپی از کلید امضای برنامه موجود آپلود کنید. یا، اگر نمیخواهید کلید امضای برنامه موجود را به اشتراک بگذارید، میتوانید برای شروع استفاده از Play App Signing از گزینه «ارتقای کلید» برای برنامه قبل از آگوست 2021 خود استفاده کنید. به این ترتیب هم برنامه قبل از آگوست 2021 و هم برنامه بعد از آگوست 2021 شما می توانند از یک کلید جدید استفاده کنند.
آیا می توانم کلید امضای برنامه مورد استفاده توسط Play App Signing را تغییر دهم؟
بله، برنامهها میتوانند کلید خود را با درخواست ارتقای کلید در کنسول Play تغییر دهند.
چگونه می توانم بررسی کنم که Google Play تغییرات غیرمنتظره ای در کد من ایجاد نکرده است؟
در هر زمان، میتوانید مصنوعات را از Google Play و از App Bundle Explorer در Play Console دانلود و بررسی کنید. علاوه بر این، Play Developer API به زودی امکان تأیید APKها را قبل از اینکه آنها را به یک آهنگ انتشار متعهد کنید، ارائه میکند. همچنین میتوانید از یک ویژگی اختیاری به نام شفافیت کد برای بستههای برنامه استفاده کنید. با شفافیت کد، شما و کاربران نهاییتان میتوانید یک فروشگاه برنامه مانند Google Play را برای حساب کدی که ارائه میکند نگه دارید.
شفافیت کد برای بستههای برنامه چگونه کار میکند؟
شفافیت کد یک ویژگی اختیاری است که به شما امکان میدهد تا فروشگاه برنامهای را که برنامه شما را توزیع میکند، نگه دارید تا کدی را که ارائه میکند حساب کند. برای استفاده از شفافیت کد، در زمان ساخت، یک فایل شفافیت کد را در برنامه خود ایجاد می کنید که نشان دهنده کد شماست (مخصوصاً این فایل حاوی هش های کد برنامه شما است). شما آن را با کلید شفافیت کد خصوصی خود امضا می کنید که فقط شما نگه دارید. هرگز لازم نیست کلید شفافیت کد خود را در اختیار Google قرار دهید. سپس، در یک دستگاه، میتوانید یک APK نصب شده را بررسی کنید و بررسی کنید که فایل شفافیت کدی که امضا کردهاید همچنان با کد APK مطابقت دارد. این به شما اطمینان می دهد که حتی اگر خود APK در حین توزیع مجدداً امضا شده باشد، کد تأیید شده توسط شفافیت کد تغییر نکرده است. اگر عدم تطابق وجود داشته باشد، شواهدی مبنی بر تغییر کد در حین توزیع است. شفافیت کد جایگزین امضاهای APK نمی شود و بخشی از پلتفرم اندروید نیست.
انتشار برنامه ها و بازی های بزرگ در Google Play
محدودیتهای اندازه برنامه Google Play هنگام استفاده از AAB چیست؟
حداکثر حجم دانلود فشرده برای یک ماژول پایه تولید شده از یک AAB 200 مگابایت است. یعنی Google Play ابتدا ماژول پایه و سپس هر ماژول ویژگی یا بسته دارایی اضافی را از AAB شما تولید می کند. در مرحله بعد، Google Play بررسی میکند که حداکثر مجموع حجم دانلود فشرده که هر دستگاه جداگانه دریافت میکند بیش از 4 گیگابایت نباشد.
آیا Google Play از فایل های توسعه (OBB) برای AAB ها پشتیبانی می کند؟
نه، Google Play از فایل های توسعه برای AAB ها پشتیبانی نمی کند. فایلهای توسعه (OBB) یک راهحل قدیمی مخصوص Google Play برای انتشار برنامهها و بازیهای بزرگ با استفاده از APK هستند. Google و جایگزین های شخص ثالث برای AAB های بزرگتر از 200 مگابایت وجود دارد.
چگونه یک برنامه یا بازی بزرگتر از 200 مگابایت را در Google Play منتشر کنم؟
برنامهها و بازیهای بزرگی که از AAB استفاده میکنند، میتوانند از خدمات تحویل Play مانند Play Asset Delivery یا Play Feature Delivery برای فراتر از حد مجاز 200 مگابایت استفاده کنند یا میتوانند از شبکههای تحویل محتوای شخص ثالث استفاده کنند.
Play Asset Delivery چه مزایایی نسبت به فایلهای توسعه (OBB) دارد؟
در Google Play، فایلهای APK به فایلهای توسعه جداگانه (OBB) برای ارائه منابع اضافی به کاربران نیاز داشتند. با این حال، چون OBB ها امضا نشده اند و در حافظه خارجی برنامه ذخیره می شوند، چندان امن نیستند. با Play Asset Delivery (PAD)، بازیهای بزرگتر از 200 مگابایت میتوانند با انتشار کل بازی بهعنوان یک بسته برنامه واحد در فروشگاه Play، جایگزین OBBها شوند. علاوه بر ارائه فرآیند انتشار روانتر و حالتهای تحویل انعطافپذیر، PAD به این معنی است که بهروزرسانیها به فضای ذخیرهسازی دستگاه کمتری نیاز دارند. در نتیجه، می تواند نرخ نصب بالاتری داشته باشد. در نهایت، با پشتیبانی از ASTC در حدود 80 درصد دستگاهها، ویژگی هدفیابی فرمت فشردهسازی بافت PAD به شما امکان میدهد ASTC را به دستگاههایی که از آن پشتیبانی میکنند، ارائه دهید. میتوانید در عین استفاده مؤثر از سختافزار و فضای ذخیرهسازی دستگاه، وسیعترین طیف دستگاهها را هدف قرار دهید.
ویژگی های تحویل Google Play توسط AAB ها باز می شود
نمونه هایی از ویژگی های جدیدی که Play به توسعه دهندگان با استفاده از AAB ارائه می دهد چیست؟
فروشگاه های برنامه مانند Google Play AAB ها را به APK قابل نصب پردازش می کنند. مسئولیت پذیری در قبال APK ها این امکان را فراهم می کند که ویژگی ها و خدمات جدیدی ارائه شود که مزایایی را برای توسعه دهندگان و کاربران به ارمغان می آورد. Play قبلاً چنین خدماتی را ارائه می دهد که قبلاً به طور گسترده توسط توسعه دهندگان استفاده و ارزش گذاری شده است، دو نمونه عبارتند از Play Feature Delivery و Play Asset Delivery .
Play Feature Delivery چیست؟
یکی از ویژگی های اپ باندل ها این است که امکان تفکیک یک برنامه را به چندین ماژول به نام «ماژول های ویژگی» می دهند. این ماژولها سپس میتوانند به صورت پویا در زمانهای مختلف به کاربران و دستگاهها تحویل داده شوند (برخلاف گذشته که همه چیز باید به صورت یک فایل در زمان نصب تحویل داده میشد). Play Feature Delivery به شما این امکان را میدهد که با حالتهای تحویل زمان نصب، مشروط و درخواستی، ماژولهای ویژگی را که به کدام دستگاه و در زمان تحویل داده میشوند، سفارشی کنید. این به شما امکان می دهد اندازه برنامه خود را کاهش دهید، منجر به نصب بیشتر شود، و تجربه برنامه خود را تنظیم کنید. به عنوان مثال، میتوانید ویژگیای که به ندرت استفاده میشود، مانند پشتیبانی مشتری بر حسب تقاضا، به کاربرانی که به آن نیاز دارند، بهجای زمان نصب، ارائه دهید و اندازه نصب اولیهتان را برای همه کاربران کاهش دهید. یا میتوانید تجربه کامل برنامه خود را به دستگاههای پیشرفته ارائه دهید در حالی که یک تجربه برنامه کوچکتر با ویژگیهای اختیاری و درخواستی را به دستگاههای سطح ابتدایی که دارای محدودیتهای ذخیرهسازی داده و دستگاه هستند، ارائه دهید.
Play Asset Delivery چیست؟
Play Asset Delivery به توسعه دهندگان بازی اجازه می دهد تا با ارائه پویا دارایی های بزرگ در زمان بهینه، تجربه کاربری را بهبود بخشند و زمان انتظار کاربر را کاهش دهند. بازیهایی که از Play Asset Delivery استفاده میکنند همچنین میتوانند از هدفیابی قالب فشردهسازی بافت استفاده کنند، بنابراین کاربران شما فقط داراییهای مناسب برای دستگاه خود را بدون فضا یا پهنای باند هدر میدهند.
آیا این ویژگی های تحویل Play در فروشگاه های برنامه دیگر موجود است؟
خیر، Play Feature Delivery و Play Asset Delivery شامل برنامهها و بازیهایی است که مستقیماً با فروشگاه Google Play ارتباط برقرار میکنند. این سرویسهای اختیاری نمونههایی از متمایز شدن Play به عنوان یک فروشگاه برنامه هستند و ارزش و سودمندی بیشتری را برای توسعهدهندگان و کاربران Play به ارمغان میآورند. سایر فروشگاههای برنامه که از بستههای برنامه و فایلهای APK استفاده میکنند، خدمات فروشگاه اپلیکیشن خود را به توسعهدهندگان ارائه میکنند.