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

مقدمه

اپ باندل (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) وجود ندارد.
  • امکان پشتیبانی از برنامه باندلی برای دستگاه‌‌هایی با minsdk 21 (برای دستگاه‌های سامسونگ minsdk 23) و بالاتر وجود دارد. می‌توانید برای پشتیبانی از minsdkهای پایین‌تر، یک رهانش با بسته‌ apk با minsdk پایین‌تر و شماره نسخه کمتر ایجاد کنید. توجه داشته باشید که همواره کاربران سازگارترین بسته با بالاترین شماره نسخه را دریافت خواهند کرد.
  • شما نیازی به sign فایل باندل برنامه خود در اندروید استودیو ندارید. فقط کافی است برای sign فایل باندل خود، از ابزار bundle signer بازار استفاده کنید. با امضاکردن فایل باندل در اندروید استودیو، فقط یک بلاک رمزگذاری شده به فایل باندل شما اضافه می‌شود و فایل کلید‌تان به مخاطره نمی‌افتد (فرآیندی مشابه با روش بازار طی می‌شود).

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

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

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

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

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