שאלות נפוצות על Android App Bundle

מידע על קובצי Android App Bundle

מהו קובץ Android App Bundle ‏ (AAB)?

Android App Bundle (AAB) הוא פורמט פרסום ל-Android, שהושקה בשנת 2018. הפורמט נתמך על ידי Google Play וחנויות אפליקציות אחרות, ועל ידי כלי build כמו Android Studio,‏ Bazel,‏ Buck,‏ Cocos Creator,‏ Gradle,‏ Unity ו-Unreal.

מה ההבדל בין קובצי AAB לבין קובצי APK?

חבילות האפליקציות מיועדות לפרסום בלבד, ואי אפשר להתקין אותן במכשירי Android. חבילת Android‏ (APK) היא הפורמט של Android לאפליקציות שניתן להתקין ולהריץ. כדי שאפשר יהיה להתקין חבילות של אפליקציות במכשירים, המפיץ צריך לעבד אותן לחבילות APK.

האם פורמט ה-AAB הוא פורמט קנייני שאפשר להשתמש בו רק ב-Google Play?

לא, קובץ ה-AAB אינו קנייני. חבילת האפליקציות היא קוד פתוח, כך שכל חנות אפליקציות יכולה לתמוך בה. חבילות נתמכות ב-Google Play ובחנויות אפליקציות אחרות.

האם יצירת חבילות AAB מונעת מכם לפרסם בחנויות אפליקציות אחרות?

לא, אין לכם הגבלה על פרסום בחנויות אחרות של אפליקציות. כשאתם מפתחים את האפליקציה, אתם יכולים ליצור קובצי AAB ו-APK בו-זמנית, בהתאם לפורמט הפרסום הנדרש בכל חנות אפליקציות.

כמה עבודה נדרשת כדי להשתמש ב-AAB?

ברוב האפליקציות, העבודה על יצירת קובץ AAB זהה לעבודה על יצירת קובץ APK, כי פשוט בוחרים ב-AAB במקום ב-APK בזמן ה-build. יכול להיות שבחלק מהאפליקציות תצטרכו לבצע שינויים כדי ליהנות מהיתרונות המלאים של אפליקציות AAB.

האם מפתחים כבר משתמשים ב-AAB?

כן. יותר ממיליון אפליקציות ומשחקים משתמשים בחבילות אפליקציות כדי לפרסם את הגרסאות שלהם בסביבת הייצור ב-Google Play, כולל רוב האפליקציות הפופולריות, שמייצגות מיליארדי התקנות פעילות. אם אתם משתמשים ב-Google Play כדי להתקין אפליקציות, רבות מהאפליקציות במכשיר שלכם פורסמו כחבילות אפליקציות.

האם קובץ ה-AAB מונע ממשתמשים להתקין אפליקציות 'ממקור לא ידוע'?

לא, קובצי AAB לא מונעים ממשתמשים להתקין קובצי APK מכל מקור. מאחר ש-AAB הוא רק פורמט פרסום, הוא לא משנה את אופן הפעולה של פלטפורמת Android.

אם מפתח משתמש ב-AAB כדי לספק חבילות APK שעברו אופטימיזציה, האם המשמעות היא שמשתמשים שמשתפים את חבילות ה-APK האלה עלולים להיתקל בבעיות?

תמיד היו מקרים נדירים ב-Android שבהם לא ניתן להעביר קובצי APK ישירות ממכשיר אחד למכשיר אחר, גם אם האפליקציה פורסמה באמצעות קובצי APK או AAB. באופן ספציפי, כשחבילות APK אופטימיזציה למכשיר (לדוגמה, לארכיטקטורת צ'יפ ספציפית), העברת החבילות האלה ישירות למכשיר אחר עשויה להיתקל בבעיות אם מכשיר היעד לא תואם למאפיינים של המכשיר המקורי. במקרים כאלה, צריך להתקין APK או קבוצה של חבילות APK שמתאימות למכשיר היעד.

האם אפשר לפרסם את האפליקציה בכמה חנויות אפליקציות?

כן, אפשר לפרסם באפליקציות בחנויות אפליקציות שונות, גם אם משתמשים ב-AAB וגם אם לא. אתם יכולים לפרסם קובצי AAB ב-Google Play ובחנויות אפליקציות אחרות שתומכות ב-AAB, באותו זמן שבו אתם מפרסמים קובצי APK בחנויות אפליקציות או באתרים אחרים שלא תומכים ב-AAB.

האם הדרישה ל-AAB חלה על אפליקציות פרטיות שפורסמו ב-Google Play לארגונים?

לא, אפליקציות פרטיות שפורסמו ב-Google Play לארגונים יכולות לפרסם באמצעות חבילות APK או AAB. כשיוצרים אפליקציה פרטית חדשה, אפשר לבחור באפשרות שינוי מפתח החתימה של האפליקציה ולבטל את ההסכמה לשימוש בחתימת האפליקציות של Play אם רוצים לפרסם קובץ APK פרטי בחתימה עצמית.

מידע על חתימת אפליקציה ב-Play

מהי התכונה 'חתימת אפליקציה ב-Play'?

כדי שאפשר יהיה להתקין חבילות APK ב-Android, הן צריכות להיות חתומות באופן קריפטוגרפי באמצעות מפתח לחתימה על אפליקציות. פלטפורמת Android משתמשת במפתח כדי לוודא שכל עדכוני האפליקציה תואמים לאפליקציה שמותקנת במכשיר, כך שלאחר ההתקנה הראשונית, כל עדכון לאפליקציה מגיע מאותו בעל מפתח. כך מפחיתים את הסיכון לעדכוני אפליקציות זדוניים. Play App Signing הוא שירות ניהול מפתחות של Google Play, שהושקה בשנת 2017. השירות מגן על מפתחות החתימה של האפליקציות של מפתחי Play ומנהל אותם עבור האפליקציות שהם מפיצים ב-Play. בנוסף, שירות Play App Signing מבצע את פעולת החתימה על חבילות ה-APK שמערכת Play יוצרת מקובצי ה-AAB שהועלו. כדי שאפשר יהיה להשתמש ב-AABs באפליקציות חדשות, הן צריכות לעבור את תהליך חתימת האפליקציות ב-Play.

למה Google השיקה את שירות חתימת האפליקציות ב-Play?

במשך שנים, מפתחים ב-Play נתקלו בבעיות שקשורות למפתחות לחתימת אפליקציות. אם המפתח יאבד, לא תוכלו יותר לשלוח עדכוני אפליקציה למשתמשים, ואם המפתח יהיה חשוף לפריצה, המשתמשים יהיו בסיכון לעדכונים זדוניים. בדרך כלל, בערוצי הפצה של תוכנות, המפתחות של התוכנות שהם מפיצים מאוחסנים ומנוהלים, כי כך אפשר לצמצם את הסיכונים האלה. התכונה חתימת אפליקציה ב-Play הושקה בשנת 2017 כדי למנוע את הסיכון של אובדן מפתחות הפצה של Play, כדי לאפשר הגנה על משתמשי Play לאחר פגיעה במפתח, וכדי לתת למפתחים את היתרונות של ההשקעה המתמשכת של Google באבטחה.

איך Google מבטיחה את האבטחה של חתימת האפליקציות ב-Play?

Google מגינה על מפתחות של מפתחים באותה תשתית מאובטחת ומובילה בתחום שבה Google משתמשת כדי להגן על המפתחות שלה. המפתחות מאוחסנים מוצפנים בשרתים ייעודיים לניהול מפתחות, עם רשימות ACL מחמירות ומסלולי ביקורת שאי אפשר לשנות, שמכסים את כל הפעולות. באינטרנט מפורטות השיטות המומלצות והפעולות של Google לאבטחת ענן.

האם אפשר לבחור את מפתח חתימת האפליקציה שבו Play משתמש באפליקציה שלי?

כן, כשיוצרים אפליקציה חדשה, אפשר לבחור ש-Google תיצור ותשמור מפתח לחתימה על האפליקציה בשמכם, או לבחור מפתח משלכם לחתימה על האפליקציה ולהעלות עותק שלו.

אני רוצה להשתמש באותו מפתח לחתימת אפליקציות ב-Play ובחנויות אפליקציות אחרות. האם זה עדיין אפשרי?

אם אחרי שבדקתם את אופן הפעולה של עדכוני האפליקציות, החלטתם להשתמש באותו מפתח חתימה בכמה חנויות אפליקציות, עדיין תוכלו לעשות זאת. חשוב לזכור שהדבר יאפשר לכל חנות אפליקציות לבצע עדכוני אפליקציה בחנויות שונות. יש לכם שתי אפשרויות:

  • אתם יכולים ליצור מפתח באופן מקומי ולהעלות עותק שלו ל-Play. כך תוכלו להשתמש באותו מפתח שמשמש את Google Play כשאתם יוצרים את האפליקציה לחנויות אפליקציות אחרות.
  • אתם יכולים להשתמש במפתח שנוצר על ידי Google לחתימת אפליקציות ב-Play, ואז להוריד מ-Play Console חבילות APK להפצה שחתומות על ידי המפתח שנוצר על ידי Google, ולהשתמש בחבילות ה-APK האלה להפצה בחנויות אפליקציות או באתרים אחרים.

האם אפשר להשתמש ב-Play App Signing לאפליקציה שנוצרה לפני אוגוסט 2021 בלי לספק עותק של מפתח חתימת האפליקציה?

כן, שירות Play App Signing תומך באפשרות 'שדרוג מפתח' לאפליקציות שנוצרו לפני אוגוסט 2021. כך האפליקציה תוכל להתחיל להשתמש בחתימת האפליקציה ב-Play עם מפתח חתימת אפליקציה חדש. עם זאת, כדי להשתמש באפשרות הזו, אחרי ביצוע השדרוג תצטרכו להעלות שני פריטים בכל גרסה: חבילת אפליקציות ו-APK מדור קודם שחתום באמצעות מפתח חתימת האפליקציות הישן. מערכת Play תשתמש בקובצי ה-AAB שלכם כדי ליצור חבילות APK החתומות על ידי המפתח המשודרג עבור התקנות חדשות והעדכונים שלהן. במקביל, מערכת Play תשתמש בחבילות ה-APK הקודמות שלכם לעדכוני האפליקציה למשתמשים שכבר התקינו את האפליקציה. עם הזמן, ההתקנות הקודמות יועברו למפתח המשודרג (למשל, כשמשתמשים עוברים למכשיר נייד חדש).

האם יש דרך להשתמש באותו מפתח לחתימה על אפליקציות שנוצרו לפני אוגוסט 2021 ובאפליקציות שנוצרו אחרי אוגוסט 2021?

באופן כללי, לא מומלץ להשתמש באותה חתימת אפליקציה בכמה אפליקציות. מומלץ יותר להשתמש במפתח ייחודי לכל אפליקציה. עם זאת, אם אתם צריכים להשתמש באותה חתימת אפליקציה בכמה אפליקציות, תוכלו לעשות זאת. לחלופין, אפשר להעלות עותק של מפתח חתימת האפליקציה הקיים כשמגדירים את התכונה 'חתימת אפליקציה ב-Play'. לחלופין, אם אתם לא רוצים לשתף את מפתח חתימת האפליקציה הקיים, תוכלו להשתמש באפשרות 'שדרוג מפתח' שתושק בקרוב לאפליקציות שהונפקו לפני אוגוסט 2021 כדי להתחיל להשתמש ב-Play App Signing. כך תוכלו להשתמש באותו מפתח חדש גם באפליקציה שפרסמתם לפני אוגוסט 2021 וגם באפליקציה שפרסמתם אחרי אוגוסט 2021.

האם אוכל לשנות את מפתח חתימת האפליקציה שבו משתמשת התכונה 'חתימת אפליקציה ב-Play'?

כן, אפשר לשנות את המפתח של האפליקציה על ידי שליחת בקשה לשדרוג מפתח ב-Play Console.

איך אפשר לבדוק אם בוצעו בקוד שינויים לא צפויים על ידי Google Play?

אתם תמיד יכולים להוריד ולבדוק את הפריטים שנוצרים בתהליך הפיתוח (Artifacts) מ-Google Play ומכלי לבדיקת App Bundle ב-Play Console. בנוסף, בקרוב תהיה אפשרות לאמת חבילות APK באמצעות Play Developer API לפני שמחויבים אותן לטראק הפצה. אפשר גם להשתמש בתכונה אופציונלית שנקראת שקיפות קוד בחבילות App Bundle. כשהקוד שקוף, אתם ומשתמשי הקצה יכולים לבדוק את הקוד שמופיע בחנות האפליקציות, כמו Google Play.

איך פועל מנגנון שקיפות הקוד בחבילות App Bundle?

מנגנון של שקיפות קוד הוא תכונה אופציונלית שמאפשרת לדרוש מחנות האפליקציות שמפיצה את האפליקציה שלכם לדווח על הקוד שהיא מספקת. כדי להשתמש בשקיפות הקוד, צריך ליצור קובץ של שקיפות קוד באפליקציה בזמן ה-build, שמייצג את הקוד (במיוחד, קובץ שמכיל גרסאות גיבוב של קוד האפליקציה). חותמים עליו באמצעות מפתח שקיפות פרטי שרק לכם יש גישה אליו. אף פעם לא תצטרכו לספק את מפתח השקיפות של הקוד ל-Google. לאחר מכן, תוכלו לבדוק במכשיר קובץ APK מותקן ולוודא שקובץ השקיפות של הקוד שחתמתם עליו עדיין תואם לקוד של קובץ ה-APK. כך תוכלו להיות בטוחים שגם אם חבילת ה-APK עצמה נחתמה מחדש במהלך ההפצה, הקוד שאומת באמצעות שקיפות הקוד לא השתנה. אם יש אי-התאמה, סימן שהקוד השתנה במהלך הפצת הקוד. שקיפות הקוד לא מחליפה את חתימות ה-APK והיא לא חלק מפלטפורמת Android.

פרסום אפליקציות ומשחקים גדולים ב-Google Play

מהן המגבלות על גודל האפליקציות ב-Google Play כשמשתמשים ב-AAB?

הגודל המקסימלי להורדת קובץ דחוס של מודול בסיס שנוצר מ-AAB הוא 200MB. כלומר, Google Play תיצור קודם את המודול הבסיסי, ואז כל מודול נוסף של תכונה או חבילת נכסים מה-AAB. בשלב הבא, Google Play בודקת שהגודל המצטבר המקסימלי של ההורדות הדחוסות שמתקבלות בכל מכשיר ספציפי לא חורג מ-4GB.

האם Google Play תומך בקובצי הרחבה (OBB) של קבצים מסוג AAB?

לא, Google Play לא תומך בקובצי הרחבה של חבילות AAB. קובצי הרחבה (OBB) הם פתרון מדור קודם שספציפי ל-Google Play, שמאפשר לפרסם אפליקציות ומשחקים גדולים באמצעות חבילות APK. יש חלופות של Google ושל צדדים שלישיים לאפליקציות AAB גדולות מ-200MB.

איך מפרסמים אפליקציה או משחק בגודל של יותר מ-200MB ב-Google Play?

אפליקציות ומשחקים גדולים שמשתמשים ב-AAB יכולים להשתמש בשירותי העברת נתונים של Play, כמו Play Asset Delivery או Play Feature Delivery, כדי לחרוג ממגבלת הגודל של 200MB, או להשתמש ברשתות של צד שלישי להעברת תוכן.

אילו יתרונות יש ל-Play Asset Delivery על פני קובצי הרחבה (קובצי OBB)?

ב-Google Play, חבילות APK נדרשו לקובצי הרחבה נפרדים (קובצי OBB) כדי להציג למשתמשים משאבים נוספים. עם זאת, מכיוון שהקובצי OBB לא חתומים ומאוחסנים באחסון החיצוני של האפליקציה, הם לא מאובטחים במיוחד. באמצעות Play Asset Delivery‏ (PAD), אפשר להחליף קובצי OBB במשחקים בגודל של יותר מ-200MB על ידי פרסום המשחק כולו כחבילת אפליקציות אחת בחנות Play. בנוסף לתהליך פרסום חלק יותר ולמצבי העברה גמישים, השימוש ב-PAD מאפשר להשתמש בפחות נפח אחסון במכשיר. כתוצאה מכך, היא יכולה להגדיל את שיעורי ההתקנות. לבסוף, עכשיו יש תמיכה ב-ASTC ב-80% מהמכשירים, כך שאפשר להשתמש בתכונה של PAD לטירגוט לפי פורמט דחיסת טקסטורה כדי להציג ASTC במכשירים שתומכים בו. אתם יכולים לטרגט את מגוון המכשירים הרחב ביותר תוך ניצול יעיל של החומרה והאחסון הזמינים במכשיר.

תכונות של Google Play להעברת נתונים שנפתחות על ידי חבילות AAB

אילו דוגמאות יש לתכונות חדשות ש-Play מציע למפתחים שמשתמשים ב-AAB?

חנויות אפליקציות כמו Google Play מעבדות קובצי AAB לקובצי APK שניתן להתקין. האחריות על קובצי ה-APK מאפשרת לנו להציע תכונות ושירותים חדשים שמועילים למפתחים ולמשתמשים. כבר יש ב-Play שירותים כאלה שמפתחים משתמשים בהם באופן נרחב ומעריכים אותם מאוד. שתי דוגמאות לכך הן Play Feature Delivery ו-Play Asset Delivery.

מהי הפצת פיצ'רים ב-Play?

אחת מהתכונות של חבילות אפליקציות היא שהן מאפשרות להפריד אפליקציה למספר מודולים, שנקראים 'מודולים של תכונות'. לאחר מכן אפשר להעביר את המודולים האלה באופן דינמי למשתמשים ולמכשירים בזמנים שונים (בניגוד לעבר, שבו היה צריך להעביר את הכל כקובץ אחד בזמן ההתקנה). Play Feature Delivery מאפשר לכם להתאים אישית את המודולים של התכונות שיועברו למכשיר שבו הם ייכללו, ואת הזמן שבו הם יועברו. תוכלו להגדיר את אופני ההעברה: בזמן ההתקנה, מותנה או על פי דרישה. כך תוכלו להקטין את גודל האפליקציה, להגדיל את מספר ההתקנות ולהתאים אישית את חוויית השימוש באפליקציה. לדוגמה, תוכלו לספק תכונה שמשתמשים בה לעיתים רחוקות, כמו תמיכת לקוחות על פי דרישה, למשתמשים שזקוקים לה במקום בזמן ההתקנה, וכך לצמצם את גודל ההתקנה הראשונית של כל המשתמשים. לחלופין, תוכלו לספק את חוויית השימוש המלאה באפליקציה במכשירים מתקדמים, ולהציע חוויית שימוש מצומצמת יותר עם תכונות אופציונליות על פי דרישה במכשירים ברמת הכניסה שיש בהם מגבלות על נתונים ואחסון במכשיר.

מהו Play Asset Delivery?

התכונה Play Asset Delivery מאפשרת למפתחי משחקים לשפר את חוויית המשתמש ולקצר את זמן ההמתנה של המשתמשים על ידי העברה דינמית של נכסים גדולים בזמן האופטימלי. במשחקים שמשתמשים ב-Play Asset Delivery אפשר גם להשתמש בטירגוט לפורמטים ספציפיים של דחיסת טקסטורה, כך שהמשתמשים יקבלו רק את הנכסים שמתאימים למכשיר שלהם, בלי לבזבז נפח אחסון או רוחב פס.

האם תכונות ההעברה האלה של Play זמינות בחנויות אפליקציות אחרות?

לא, Play Feature Delivery ו-Play Asset Delivery כוללים אפליקציות ומשחקים שמתקשרים ישירות עם חנות Google Play. השירותים האופציונליים האלה הם דוגמאות לאופן שבו Play מבדיל את עצמו כחנות אפליקציות ומספק ערך שימושי נוסף למפתחים ולמשתמשים ב-Play. בחנויות אפליקציות אחרות שמשתמשות בחבילות App Bundle וב-APK יש שירותים משלהם לחנויות אפליקציות למפתחים.