איך פועלים עדכוני האפליקציות

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

איך מערכת Android מטפלת בעדכוני אפליקציות

לכל אפליקציה ל-Android יש מזהה אפליקציה ייחודי שנראה כמו שם חבילה ב-Java או ב-Kotlin, למשל com.example.myapp. המזהה הזה מזהה באופן ייחודי כל אפליקציה במכשיר. במכשירי Android אפשר להתקין רק אפליקציה אחת עם מזהה אפליקציה נתון בכל זמן נתון.

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

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

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

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

איך Google Play מעדכן אפליקציות

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

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

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

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

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

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

פורסם ב-Google Play

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

חלק מהספרייה של המשתמש

התנאי הזה מתקיים אם אחד מהתנאים הבאים מתקיים:

  • כל חשבון Google פעיל במכשיר רכש בעבר את האפליקציה על ידי הקשה על לחצן ההתקנה או הרכישה ב-Google Play.
  • יצרן הציוד המקורי טען מראש את האפליקציה כחלק מתמונת המערכת.

משתמשים יכולים גם להסיר אפליקציות באופן ידני מהספריות שלהם.

לא עדכני

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

אפליקציות בכמה חנויות אפליקציות

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

מניעת עדכונים בחנויות אחרות

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

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

לא משנה באיזו גישה תבחרו, מערכת Android תתייחס לאפליקציות ללא מזהה אפליקציה תואם ומפתח חתימה כאל אפליקציות לא תואמות. משתמש שרוצה לעבור מחנות אחת לחנות אחרת צריך למחוק את האפליקציה המותקנת – פעולה שתגרום למחיקת כל הנתונים שמשויכים לאפליקציה – ולהתקין אותה מחדש מהחנות השנייה.

אישור לעדכונים בחנויות שונות

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

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

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