انجمن تخصّصی کانستراکت

نسخه‌ی کامل: AAB (بسته برنامه اندروید) چيست؟ + نحوه خروجي گرفتن در كرودوا
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
1 ‌
به نام خـدا
سلام دوستان اميدوارم حالتون خوب باشه...   1

چند وقته پيش نريمان عزيز گفت كه حالا كه aab جاي apk رو گرفته، چجوري ميخوايم از كانس 2 خروجي بگيريم؟! اگر كه شما هم نميدونين كه چيكار بايد بكنين اين تاپيك رو با دقت بخونيد!

اين فرمت چيه؟

يه فرمته جديده كه گوگل پلي بطور رسمي چند وقته پيش خبر جايگزين كردنش رو با فرمت apk داد و از اول آگوست (يك ماه و خورده اي روز گذشته) ديگه فرمت apk رو براي پابليش روي سروراش قبول نميكنه! (اما اون برنامه هايي كه قبلا منتشر شدن لازم به ارائه اين فرمت رو فعلا ندارن!) ؛ البته aab يه فرمت جديد نيستش و كمپاني بزرگ گوگل از چند سال پيش (2018) داشت روي اين فرمت كار ميكرد و اينجوري اعلام كرده بود كه اين فرمت  يک فرمت انتشار اپ جديد هست كه فايل‌هاي aab در مقايسه با فرمت محبوب (و خدا بيامرز 17) apk مزايايي داره که براي مثال مي‌شه به کاهش سايز برنامه ها و قابليت‌هاي شخصي‌سازي بيشتر اشاره کرد، تا بالاخره بتونه يه روزي ازش استفاده كنه...

فرمت aab در اندرويد استوديو 3.2 و نسخه‌هاي جديدتر، Unity 2018.3 و 2017.4.17 و نسخه 2.0.9 Cocos Cretor و Corodova و... پشتيباني ميشه!  3


حالا مزاياش چيه؟!

استفاده از يه فرمت جديد اين مزايا رو بدنبال داشته:

1- حجم كمتر و تطابق بيشتر!
خب يعني چي؟! 
يعني يه فايل aab و هزاران فايل apk براي نصب روي گوشي ها كه هر كدوم با توجه به سخت افزار طرف آپتيمايز شدن:
[تصویر:  c9DIq.jpg]

فرض كنين يه برنامه از تكسچر هاي خيلي با كيفيتي استفاده مي كنه ، و عملا يه گوشي رده پايين كه نمايشگرش نميتونه اون كيفيت رو نشون بده نيازي به اين كيفيت و حجم نداره، و اينجا هست كه گوگل پلي مياد و يه apk ميسازه اما ايندفعه كيفيت اون تكسچر ها رو كم ميكنه و اينطوري حجم اون برنامه يا بازي هم كم ميشه!  13

و يا ميشه وقتي كاربر مرحله 1 رو رد كرد مرحله 2 هم براش دانلود شه! (نميدونم توي كانس چجوريه! 4 ‌)

و حدود 10 تا 50 درصد (خودمم نميدونم اين آمار رو از كجا آوردم 4 ‌ ) از حجم برنامه يا بازي كم ميشه:

[تصویر:  app-size-reduction-after-aab-1.jpg]

خب حالا چي ميشه؟
1- دانلود برنامه صورعتش بالاتر ميره!
2- و فضاي كمتري رو از مموري و حافظه رو ميگيره و كاربر كمتر تصميم به حذف اون ميگيره!

2- سرعت بيلد بالاتر ميره! (هورا  22 ‌)

3- برنامه ها امنيت بيشتري پيدا ميكنن! (دقيق نميدونم منظور از اين مزيت دست بردن توي گرافيك هست يا منظورش لاكي پچر و ... هستش! 4 ‌)

4- تجربه فوي برنامه:
توي گوگل پلي ميتوني برتامه رو بدون نصب كردن ببيني! 

خب حالا معايبش چيه؟! (بيشتر نگراني هستن تا معايب!)

1- امنيت!!!! (جزو مزاياش هم بود كه چيشد يدفعه؟! 17 )
منظور از امنيت اينه كه چون كي استور رو در اختيار گوگل؛ غول عظيم دنيا امروزي ميذاري اگر به هر دليلي ينفر به ديتاسنتري كه كي استور ها داخلش آپلود ميشن دست پيدا كنه نور علي نور ميشه! 4

2- اگر ينفر برنامه رو از پلي استور بگيره نميتونه از بازار يا مايكت اون رو آپديت كنه! چرا؟؟؟؟؟! چون اون برنامه توسط اون ماركت ساين شده! 

با اينكار گوگل به سمت انحصارگرايي مثل اپل پيش رفته و شايد رفته رفته بازار و مايكت هم دار فاني رو وداع بگن 5 ‌همينطور بعضيا معتقدن اين كار گوگل بيشتر براي اين بود كه برادراي ردموندي (Windows) رو سرجاشون بشينه تا ديگه نخوان فايلهاي apk رو داخل ويندوز 11 (13 مهر امسال بصورت آپديت رايگان منتشر ميشه) اجرا كنن!  17

طبق چيزايي كه خوندم بازار هم به تازگي از اين فرمت پشتيباني ميكنه!  3
اما اينا همه يسري چيز جزئي بودن و اما اصل كار:
نحوه خروجي گرفتن از كانس بصورت aab (بسته برنامه اندرويد)!:
اول بگم كه براي اينكه بتونيد يه خروجي سالم داشته باشين مهمترين چيز، يه دل پاكه و يه نيت خالصانه!  23
از اينجا خروجي مستقيم رو طبق اين آموزش عالي از رضا جان عزيز پيش بريد:
آموزش خروجی اندروید روی سیستم شخصی

بعد بجاي:
کد:
cordova build android --release -- --keystore="Location keystore" --storePassword="pass key" --alias="alias name" --Password="pass alias"

اينو وارد كنيد:
کد:
cordova build android --release -- --keystore="Location keystore" --storePassword="pass key" --alias="alias name" --Password="pass alias" --packageType=bundle

و Enter رو بزنيد! همين!  4 ‌

و كمي صبر كنيد تا BUILD SUCCUSFULLY رو ببينيد 7 ‌


اگر نديديد بدونيد كه حتما نيتتون خالصانه نبوده!

واقعا اگر با همچين نوشته ي وجيحي روبرو شديد:
BUILD FAILEDD
بدونيد كه گوگل ايران رو تحريم كرده و بايد از يه تحريم شكن مثل شكن استفاده كنيد و در حين خروجي گرفتن حتما به اينترنت وصل باشين! (البته فقط براي بار اول)

سعي كردم كه نكاتي كه بيشتر بدرد كانس ميخوره رو اينجا بنويسم اما براي اطلاعات بيشتر ميتونين از قسمت منابع اطلاعات بيشتري پيدا كنين!
راستي اگر نكته نظري داريد و جايي رو نفهميديد يا من جايي رو اشتباه كردم (فكر كنم زياد غلط املايي داشتم) ، ممنون ميشم گوشزد كنيد...  [تصویر:  3.gif] ‌ ‌
با آرزوي موفقيت براي تموم بچه هاي انجمن
با تــــــــشكر از همراهيتـــــــون موفــــــــق باشيد...


1 ‌
 منابع:
digiato.com]https://digiato
https://developer.android.com
https://www.faramaham.com/what-is-aab/
Android Platform Guide - Apache Cordova

کسانی که از GDevelop استفاده می کنند می توانند Android App Bundle(AAB) راحت خروجی بگیرند 1

جدا به صورت خودکار کیفیت و سایز تکسچرها رو متناسب با هر دستگاه تغییر میده و بهینه میکنه ؟ اگه اینطور باشه که خوبه .
ولی راستش من بعید میدونم . اخه چه جوری میتونه به تصاویر داخلی یک بازی که کامپایل شده دسترسی داشته باشه؟
(1400/6/10، 03:20 عصر)Alireza3d نوشته است: [ -> ]جدا به صورت خودکار کیفیت و سایز تکسچرها رو متناسب با هر دستگاه تغییر میده و بهینه میکنه ؟ اگه اینطور باشه که خوبه .
ولی راستش من بعید میدونم . اخه چه جوری میتونه به تصاویر داخلی یک بازی که کامپایل شده دسترسی داشته باشه؟
اينجوري گفته شده!
فايل هاي تصويري با تبديل پسوند آخر برنامه به زيپ قابل دسترسين ، با تغيير اونها و دوباره ساين كردن برنامه توسط خود گوگل ، قاعدتا نبايد مشكلي باشه!
و همينطور اندرويد ساخته ي دست گوگله و خودش ميدونه چيكار بايد بكنه...
سلام ، بسیار عالی بود. فقط یه سوال ؛ این کدی که زدید موقع کی استور زدن برای برنامه است . یه سری مثل من (داخل فیلم هم همینطور بود) با جاواساینر برنامه و بازی رو ساین میکنن . ایا کد جایگزینی هست ؟ در واقع ما کلا دوتا دستور میدیم ، یکی cordova platform add android و یکی cordova build android . حالا این کدی که باید بدیم تا خروجی aab بده رو کجا بزنیم ؟ و اینکه اصلا جاواساینر قبول میکنه این خروجی رو برای ساین کردن یا امکانش رو نداره . یا اصلا باید فایل aab رو بدون امضا بفرستیم برای مارکت موردنظر و اونجا امضا میشه ؟ (طبق نوشته شما)
راستی شما گفتید خود گوگل ساین میکنه انگار ، اما تو تیکه کدی که دادید بازهم مشخصات کی استور رو میخواد . چطوریه ؟
یه سوال دیگه الان یادم اومد ، اگه الان یه فایل به فرمت aab داشته باشیم مثل همون apk رو گوشی نصب میشه ؟ یا از ایناست که انلاینه و فقط یه میانبر میاره رو صفحه برنامه ها و هروقت روش کلیک کردی انلاین اجرا میشه ؟ یادم نیست بازار بود یا مایکت اما چند وقت پیش این قابلیت رو ارائه میداد که برنامه های بدون نیاز به نصب قرار بدی . این هم مثل همونه یا مثل apk قابل نصب هم هست (افلاین) . این رو چون تو متن بهش اشاره کردید که بدون نیاز به نصب میشه اجراش کرد گفتم بپرسم.
سینا جان سلام
اینم راهکار کافه بازار برای مقابله با ساین شدن باندل!!!
عینا نقل قول میکنم...


ابزار 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 -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
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
C:> java -jar bundlesigner-0.1.4.jar --help
کپی کردن
در سیستم‌ عامل‌های بر پایه‌ی unix، پس از بازکردن terminal دستور زیر را اجرا کنید:

user@unix-machine:~$ java -jar bundlesigner-0.1.4.jar --help
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 بازار استفاده کنید. با امضاکردن فایل باندل در اندروید استودیو، فقط یک بلاک رمزگذاری شده به فایل باندل شما اضافه می‌شود و فایل کلید‌تان به مخاطره نمی‌افتد (فرآیندی مشابه با روش بازار طی می‌شود).
(1400/6/10، 04:46 عصر)محمد 82 نوشته است: [ -> ]سلام ، بسیار عالی بود. فقط یه سوال ؛ این کدی که زدید موقع کی استور زدن برای برنامه است . یه سری مثل من (داخل فیلم هم همینطور بود) با جاواساینر برنامه و بازی رو ساین میکنن . ایا کد جایگزینی هست ؟ در واقع ما کلا دوتا دستور میدیم ، یکی cordova platform add android و یکی cordova build android . حالا این کدی که باید بدیم تا خروجی aab بده رو کجا بزنیم ؟ و اینکه اصلا جاواساینر قبول میکنه این خروجی رو برای ساین کردن یا امکانش رو نداره . یا اصلا باید فایل aab رو بدون امضا بفرستیم برای مارکت موردنظر و اونجا امضا میشه ؟ (طبق نوشته شما)
راستی شما گفتید خود گوگل ساین میکنه انگار ، اما تو تیکه کدی که دادید بازهم مشخصات کی استور رو میخواد . چطوریه ؟
یه سوال دیگه الان یادم اومد ، اگه الان یه فایل به فرمت aab داشته باشیم مثل همون apk رو گوشی نصب میشه ؟ یا از ایناست که انلاینه و فقط یه میانبر میاره رو صفحه برنامه ها و هروقت روش کلیک کردی انلاین اجرا میشه ؟ یادم نیست بازار بود یا مایکت اما چند وقت پیش این قابلیت رو ارائه میداد که برنامه های بدون نیاز به نصب قرار بدی . این هم مثل همونه یا مثل apk قابل نصب هم هست (افلاین) . این رو چون تو متن بهش اشاره کردید که بدون نیاز به نصب میشه اجراش کرد گفتم بپرسم.
سلام؛
من چون اكانت توسعه دهندگي گوگل پلي رو ندارم ، نميدونم توي گوگل پلي چجوريه!
اون تيكه كدي هم كه براي كرودوا دادم، رو توي صفحه ي خود كرودوا ديدم، امتحانش هم كردم اروري نداد!
دوستاني كه اكانت توسعه دهندگي گوگل پلي رو دارن ممنون ميشم يه تستي بكنن
نحوه ساين كردن برنامه براي كافه بازار رو هم نريمان جان لطف كردن اينجا گذاشتن!

موفق باشي!
از نحوه ساین کردن برنامه در کافه بازار چیزی فهمیدید ؟ اگه فهمیدید یه اموزش متنی یا ویدئویی هم واسه ما بزارید . به نظرم نامفهوم بود . 
ضمنا من یک فایل با فرمت aab در گوشی اجرا کردم و نوشت نرم افزار برای بازکردنش نیست . چطوریاس ؟ 
(1400/6/11، 09:16 عصر)محمد 82 نوشته است: [ -> ]از نحوه ساین کردن برنامه در کافه بازار چیزی فهمیدید ؟ اگه فهمیدید یه اموزش متنی یا ویدئویی هم واسه ما بزارید . به نظرم نامفهوم بود . 
ضمنا من یک فایل با فرمت aab در گوشی اجرا کردم و نوشت نرم افزار برای بازکردنش نیست . چطوریاس ؟ 
امتحانش ميكنم اگر كاري از دستم بر اومد در خدمتتم! 

فكر ميكنم اين فايل رو بايد روي ماركت بذاري ، و اون ماركت فايل رو تبديل به همون فرمت apk ميكنه!
حرفتون منطقیه . یعنی دردسرش واسه توسعه دهنده است 4 ‌ اخرش کاربر بدون هیچ تفاوتی همون apk رو دانلود میکنه . فقط یه مرحله اضافی واسه ماست  21
صفحه‌ها: 1 2