نسخه چاپی
فهرست مطالب

مقدمه

اپ باندل (App Bundle) یک فرمت انتشار برای برنامه‌های اندرویدی است که تمامی کدهای کامپایل‌شده (compiled) و منابع (resource) برنامه شما را شامل می‌شود. بازار از باندل برنامه‌ی شما برای تولید و انتشار بسته‌های بهینه‌تر برای دستگاه‌هایی با پیکربندی‌های متفاوت استفاده می‌کند. با استفاده از این قابلیت، دیگر به مدیریت بسته‌ها (apk) برای بهینه‌سازی برنامه در پیکربندی‌های متفاوت و Build برنامه، نیازی ندارید و کاربران برنامه‌ی شما را با حجم کمتر و در حالتی بهینه‌ دریافت خواهند کرد.

چگونه باید رهانش باندلی ایجاد کرد؟

در زمان ایجاد رهانش جدید یا در ابتدای انتشار برنامه خود، می‌توانید به جای بارگذاری apk، فایل aab برنامه خود را بارگذاری کنید.

پس از بارگذاری فایل aab پیام زیر به شما نمایش داده می‌شود. طبق این پیام، شما باید با استفاده از ابزار bundle signer فایل aab برنامه خود را رمزنگاری و سپس فایل رمزنگاری‌شده (bin.) را بارگذاری کنید.

ابزار Bundle Signer

هنگامی‌که برای اولین بار بسته (package) برنامه خود را بارگذاری ‌می‌کنید،‌ گوگل فایل sign شما را می‌گیرد و در خود ذخیره می‌کند. سپس، از این فایل ذخیره‌شده برای امضای بسته اول و آپدیت‌های بعدی شما استفاده می‌کند.
این در حالی است که بازار، به‌منظور حفظ امنیت و رعایت حریم خصوصی توسعه‌دهندگان، هرگونه نگهداری و ذخیره‌سازی sign افراد را مجاز نمی‌داند. بنابراین، ابزاری به نام bundle signer را توسعه‌ داده که با کمک آن می‌توانید به صورت آفلاین امضا کنید و خروجی را برای بازار بفرستید.

ابزار bundle signer کاملاً open source است و می‌توانید تمامی کدهای آن را مشاهده کنید. پس از آن که bundle signer را روی سیستم خود اجرا کردید، این ابزار با private key شما، بخش‌های مورد نیاز فایل‌تان را رمزنگاری می‌کند و درنهایت، از فایل رمزنگاری‌شده با فرمت bin. به شما خروجی می‌دهد.

فایل خروجی از عملیات رمزگذاری محتوای باندل با private key شما به‌ دست آمده است. این فایل تنها بلاک‌های رمزگذاری‌شده‌ی یک‌طرفه از بسته‌‌های حاصل از باندل را شامل می‌شود و به هیچ عنوان نمی‌توان private key شما را از این بلاک‌های رمزگذاری‌شده یک‌طرفه استخراج کرد. همچنین، این فایل رمزگذاری‌شده (bin) تنها برای فایل باندل کنونی شما قابل استفاده است و برای سایر فایل‌ها امکان استفاده ندارد.

از فایل رمزگذاری شده (bin) برای امضاکردن فایل‌های split حاصل از باندل استفاده می‌شود.
اندروید برای تشخیص مالکیت برنامه و جلوگیری از سوء‌استفاده از برنامه‌ی توسعه‌دهندگان، الزام دارد که sign تمامی بسته‌‌های منتشر‌شده از یک برنامه، با اولین بسته‌ی منتشرشده‌ی آن برنامه یکسان باشد. به همین دلیل، بازار برای یکسان‌سازی sign بسته‌ی جدید شما با بسته‌های قبلی‌تان، به فایل رمزگذاری‌شده (bin) حاصل از فایل باندل شما نیاز دارد.

نکته: می‌توانید آخرین نسخه‌ی ابزار bundle signer را به صورت open source از گیت‌هاب بازار دریافت کنید.
نکته: اگر قبلاً برنامه خود را به صورت فایل apk منتشر کرده‌اید، حتماً از فایل sign قبلی خود برای تولید فایل رمزگذاری‌شده (bin) استفاده کنید. در غیر اینصورت، امضای بسته‌ی جدید شما با بسته‌‌های قبلی‌تان هم‌خوانی نخواهد داشت و اندروید از آپدیت برنامه شما بر روی برنامه‌ی نصب‌شده‌ی قبلی جلوگیری می‌کند.

چطور فایل باینری امضا تولید کنیم؟‌

با استفاده از ابزار bundle signer، فایل باندل خود را امضا کنید و سپس، فایل باینری خروجی با فرمت bin را بارگذاری کنید. 

برای تولید فایل sign، بسته به اینکه از چه نوع کلیدی استفاده می‌کنید، bundle signer را با ورودی‌های مناسب فراخوانی کنید. به‌‌ طور مثال، اگر از کلیدی از نوع PKCS #8 استفاده می‌کنید، فلگ‌های زیر را ست کنید:

java -jar bundlesigner-0.1.0.jar genbin   --bundle app.aab --bin /home/bin_files/
       --v2-signing-enabled true --v3-signing-enabled false
       --key dsa-1024.pk8  --cert dsa-1024.x509.pem -v

 اگر کلید از نوع java keystore است، فلگ‌های مربوط به این نوع را مانند زیر ست کنید:

java -jar bundlesigner-0.1.0.jar genbin  --bundle app.aab --bin /home/bin_files/
       --v2-signing-enabled true --v3-signing-enabled false
       --ks key.jks -v

توجه: برای تولید فایل باینری امضا با کمک bundle signer حتماً از همان فایل باندلی (aab) استفاده کنید که در مرحله‌ی اول رهانش خود، در پیشخان بارگذاری کرده‌اید. چنان‌چه قصد تغییر فایل باندل را دارید، رهانش را حذف و دوباره فایل باندل را بارگذاری کنید. توجه داشته باشید، فایل امضا براساس محتوای برنامه‌ی شما ایجاد می‌شود.  بنابراین، هرگونه تفاوت بین فایل باندلی که بارگذاری کرده‌اید و فایل باندلی که به برنامه‌ی bundle signer می‌دهید، باعث خطای شناسایی امضای برنامه خواهد شد.


چطور Bundle Signer را اجرا کنیم؟‌

bundle signer یک ابزار command line است. برای اجرای این ابزار ابتدا باید JRE نسخه‌ی ۸ یا بالاتر را روی سیستم خود نصب داشته باشید و سپس یکی از دستورهای زیر را اجرا کنید.

برای اجرای bundle signer در ویندوز، ابتدا cmd را باز و سپس دستور زیر را اجرا کنید:‌

C:> java -jar bundlesigner-0.1.4.jar --help

در سیستم‌ عامل‌های بر پایه‌ی unix، پس از بازکردن terminal دستور زیر را اجرا کنید:

user@unix-machine:~$ java -jar bundlesigner-0.1.4.jar --help
برای جزئیات بیشتر در مورد استفاده از ابزار bundle signer می‌توانید به این لینک مراجعه کنید.

پس از پردازش باندلِ بارگذاری‌شده، صفحه‌ی رهانش به شما نمایش داده می‌شود و پس از بررسی نهایی می‌توانید درخواست انتشار را ارسال کنید.

نکات تکمیلی

هنگام ایجاد رهانش باندلی به نکات زیر توجه داشته باشید:

  • مرحله پردازش باندل ممکن است بسته به حجم و مشخصات برنامه شما طولانی شود. لطفاً شکیبا باشید.
  • شماره‌ی نسخه‌ی باندل باید همواره از شماره نسخه‌ی تمامی بسته‌ها در رهانش‌های قبلی بیشتر باشد.
  • پس از انجام پردازش، نمی‌توانید بسته‌های تولیدشده از باندل را حذف کنید و برای انجام ویرایش، ابتدا باید رهانش خود  را غیرفعال و سپس رهانش جدید ایجاد کنید. 
  • محدودیتی برای حجم فایل باندل وجود ندارد.
  • در صورت استفاده از قابلیت باندل، امکان استفاده از فایل‌های پیوست (obb) وجود ندارد.
  • شما نیازی به sign فایل باندل برنامه خود در اندروید استودیو ندارید. فقط کافی است برای sign فایل باندل خود، از ابزار bundle signer بازار استفاده کنید. با امضاکردن فایل باندل در اندروید استودیو، فقط یک بلاک رمزگذاری شده به فایل باندل شما اضافه می‌شود و فایل کلید‌تان به مخاطره نمی‌افتد (فرآیندی مشابه با روش بازار طی می‌شود).

سوالات متداول

۱- اپ باندل چیست؟ 

App Bundle یک فرمت پکیج‌بندی است که توسط گوگل ارائه شده و به توسعه‌دهندگان امکان می‌دهد نسخه‌های مختلف و مختصری از برنامه‌شان را بر اساس نیازهای هر دستگاه و کاربر تولید کنند. در هنگام نصب، سیستم عامل اندروید فقط فایل‌های مورد نیاز را برای دستگاه مقصد دانلود و نصب می‌کند.

۲- اپ باندل چه مزایایی دارد؟

کاهش حجم فایل‌های دانلودی برای کاربران.

بهینه‌سازی استفاده از فضای ذخیره‌سازی دستگاه.

افزایش سرعت دانلود و نصب برنامه.

پشتیبانی از تقسیم‌بندی پکیج‌ها بر اساس فیچرها یا زبان‌ها

۳- چگونه می‌توان اپ باندل ایجاد کرد؟

شما می‌توانید با استفاده از ابزارهای رسمی اندروید، مانند Android Studio، App Bundle خود را ایجاد کنید. در این ابزار، شما می‌توانید تنظیمات مختلفی را انجام دهید، مانند فیچرها، دستگاه‌های پشتیبانی شده، تصاویر و فایل‌های مرتبط و غیره.

۴- چگونه مطمئن شویم که اپ باندل مناسب است؟

اگر برنامه‌ای با حجم بزرگ یا با محدودیت‌های دستگاه‌های مختلف دارید، App Bundle می‌تواند مناسب باشد. همچنین، اگر بهینه‌سازی‌های خاصی برای دستگاه‌ها انجام می‌دهید، از این فرمت بهره ببرید.

۵- آیا اپ باندل اجباری است؟

خیر، App Bundle اجباری نیست، اما به‌عنوان یک توصیه از گوگل مطرح شده است. شما می‌توانید همچنان از فرمت APK سنتی نیز استفاده کنید، اما از App Bundle استفاده کردن تجربه‌ی بهتری برای کاربرانتان را به ارمغان می‌آورد.

۶- چگونه فایل اپ باندل خود را در پیشخان بارگذاری کنم؟

برای انتشار برنامه به صورت App Bundle به عنوان نسخه‌ی جدید و یا برنامه‌ی جدید، می‌توانید به جای بارگذاری apk، فایل aab برنامه‌ی خود را بارگذاری کنید. پس از بارگذاری فایل aab پیام زیر به شما نمایش داده می‌شود:


در این مرحله، لازم است تا با استفاده از ابزار Bundle Signer، به روشی که در مستند «چطور فایل باینری امضا تولید کنیم؟‌» توضیح داده‌شده، فایل Bundle خود را امضا کنید و سپس، فایل باینری خروجی با فرمت bin را بارگذاری کنید. در نهایت پس از پردازش Bundle بارگذاری‌شده، صفحه‌ی رهانش به شما نمایش داده می‌شود و پس از بررسی نهایی می‌توانید «درخواست انتشار» را ارسال کنید.

هنگام رهانش Bundleای، لطفا به موارد زیر توجه کنید:

- مرحله پردازش Bundle ممکن است بسته به حجم و مشخصات برنامه‌ی شما طولانی شود. لطفاً شکیبا باشید.
- شماره‌ی نسخه‌ی Bundle باید همواره از شماره نسخه‌ی (Version Code) تمامی بسته‌ها در رهانش‌های قبلی بیشتر باشد.
- پس از انجام پردازش، نمی‌توانید بسته‌های تولیدشده از باندل را حذف کنید و برای انجام ویرایش، ابتدا باید رهانش خود را غیرفعال و سپس رهانش جدید ایجاد کنید.
- محدودیتی برای حجم فایل Bundle وجود ندارد.
- در صورت استفاده از قابلیت Bundle، امکان استفاده از فایل‌های پیوست (obb.) وجود ندارد.
- امکان پشتیبانی از برنامه Bundle برای دستگاه‌‌هایی با MinSDK 21 (برای دستگاه‌های سامسونگ MinSDK 23) و بالاتر وجود دارد. می‌توانید برای پشتیبانی از MinSDKهای پایین‌تر، یک رهانش با بسته‌ apk با MinSDK پایین‌تر و شماره نسخه‌ی کمتر ایجاد کنید. 
- توجه داشته باشید که همواره کاربران سازگارترین بسته با بالاترین شماره نسخه را دریافت خواهند کرد.

۷- چگونه فایل اپ باندل خود را امضا کنم؟

شما می‌توانید با مطالعه‌ی موارد زیر، فایل باینری (bin.) موردنظر خود را تولید کنید:
- در ابتدا لطفا آخرین ورژن Bundle Signer را از طریق لینک «github بازار» دریافت کنید.
(توجه داشته باشید لازم است برای اجرای این ابزار ابتدا باید JRE نسخه‌ی ۸ یا بالاتر را روی سیستم خود نصب داشته باشید. فایل JRE را می‌توانید از این «لینک» دریافت کنید.

  - در مرحله‌ی بعدی لازم است یک فایل ایجاد کنید و فایل aab، فایل امضای برنامه و فایل Bundle Signer را در آن قرار دهید.

- عبارت cmd را در قسمت جستجوی سیستم، جستجو کنید و پس از باز شدن Command، مانند تصویر زیر مسیر فایل را ست کنید. (با گذاشتن عبارت cd در ابتدای مسیر فایل، Command را به فایل مورد نظر هدایت می‌کنید.) پس از درج مسیر مورد نظر، با زدن «کلید Enter»، کامند به مسیر مورد نظر هدایت می‌شود.

- پس از آن لازم است فایل Bundle Signer را مطابق با تصویر زیر، اجرا کنید. توجه داشته باشید نام نسخه‌ی نصب‌شده در سیستم خودتان را در این قسمت قرار دهید. پس از زدن «کلید Enter» عبارت زیر به شما نمایش داده می‌شود.

- پس از این، لازم است Command مخصوص به ساختن فایل باینری را در اینجا قرار دهید. توجه داشته باشید در این قسمت لازم است نام فایل aab و نام فایل ساین برنامه خود را جایگزین کنید. پس از آن «کلید Enter» را بزنید و چند لحظه منتظر بمانید.

- در این قسمت از شما رمز فایل امضای برنامه را می‌خواهد. توجه داشته باشید به دلیل امنیت این موضوع، هنگام نوشتن رمز، آن را مشاهده نخواهید کرد. رمز را وارد کنید، «دکمه Enter» را بزنید و چند لحظه منتظر بمانید.

و در نهایت فایل باینری (bin.) در داخل فولدری که در ابتدا ساخته بودید، ذخیره خواهدشد.

۸- چرا باید فایل bin برای بارگذاری اپ‌باندل آپلود کنم؟

بازار برای حفظ امنیت توسعه‌دهنده، کلید امضای برنامه‌ شما را دریافت و ذخیره نمی‌کند. به همین دلیل، ابزاری با نام Bundle Signer را در اختیار‌تان قرار داده‌ایم تا مرحله‌ی امضای باندل برنامه، توسط شما و به صورت آفلاین بر روی سیستم خودتان انجام شود. بنابراین، شما تنها فایل باینری امضاشده را برای تولید بسته‌های برنامه، در اختیار ما قرار می‌دهید. لازم به ذکر است که این ابزار به صورت Open Source بوده و می‌توانید آن را از طریق «github بازار» دریافت کنید.

۹- برنامه‌ی من بیشتر از ۱۵۰ مگابایت حجم دارد، چگونه آن را می‌توانم در پیشخان بارگذاری کنم؟

در صورتی که حجم برنامه‌ی شما بیش‌تر از ۱۵۰مگابایت است، می‌توانید از App Bundle برای توسعه‌ی برنامه‌ی خود استفاده کنید. App Bundle یک فرمت انتشار برای برنامه‌های اندرویدی است که تمامی کدها و منابع برنامه‌ی شما را شامل می‌شود. بازار از باندل برنامه‌ی شما برای تولید و انتشار بسته‌های بهینه‌تر برای دستگاه‌هایی با پیکربندی‌های متفاوت استفاده می‌کند. با استفاده از این قابلیت، نیازی به مدیریت بسته‌ها برای بهینه‌سازی برنامه در پیکربندی‌های متفاوت و Build آن ندارید و کاربران برنامه‌ی شما را با حجم کمتر و در حالتی بهینه‌ دریافت خواهندکرد.

به مطالب ارائه شده چه امتیازی می‌دهید؟
محل نوشتن دیدگاه ...

اگر در مورد محتوا نظر یا پیشنهادی دارید لطفا برای ما بنویسید.

زمان انتشار: ۱۴۰۰-۰۳-۲۵ ۱۳:۲۳

آخرین به‌روزرسانی: ۱۴۰۳-۰۲-۲۵ ۲۰:۳۶