במדריך הזה נסביר איך פלטפורמת 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.
- יצרן הציוד המקורי (OEM) טוען מראש את האפליקציה כחלק מתמונת המערכת.
המשתמשים יכולים גם להסיר אפליקציות באופן ידני מהספריות שלהם.
לא עדכני
Google Play קובעת אם אפליקציה שמותקנת במכשיר לא עדכנית על סמך קוד הגרסה שלה. אם קוד הגרסה של הגרסה שזמינה להורדה ב-Google Play גבוה יותר מקוד הגרסה של הגרסה שמותקנת במכשיר, Google Play מתייחסת לאפליקציה שמותקנת במכשיר כאל אפליקציה לא עדכנית.
אפליקציות בכמה חנויות אפליקציות
יש כמה דרכים לשלוט בעדכונים בחנויות שונות כשמפרסמים אפליקציה בכמה חנויות אפליקציות. בסעיפים הבאים מוסבר על האפשרויות האלה ועל היתרונות והחסרונות הפוטנציאליים שלהן.
מניעת עדכונים בחנויות שונות
יכול להיות שתרצו למנוע מכל חנות אפליקציות לבצע עדכונים לאפליקציה שלכם בחנויות השונות. כדאי לעשות זאת אם התוכן של האפליקציה שונה בכל חנות אפליקציות. כדי לעשות זאת, אפשר לפרסם את האפליקציה עם שני מזהי אפליקציה שונים, או לפרסם את האפליקציה עם אותו מזהה אפליקציה ושני מפתחות חתימה שונים.
מומלץ לצמצם את השימוש החוזר במפתח החתימה כדי לצמצם את הסיכון לפריצה למפתח, ולכן כדאי להשתמש במפתח חתימת אפליקציה שונה לכל חנות אפליקציות. הפעולה הזו תמנע עדכונים בחנויות שונות.
ללא קשר לגישה שבחרתם, מערכת Android מתייחסת לאפליקציות ללא מזהה אפליקציה ומפתח חתימה תואמים כאל אפליקציות לא תואמות. משתמש שרוצה לעבור מחנות אחת לחנות אחרת צריך למחוק את האפליקציה המותקנת – וכך למחוק את כל הנתונים שמשויכים לאפליקציה הזו – ולהתקין אותה מחדש מהחנות השנייה.
אישור לעדכונים בחנויות שונות
יכול להיות שתרצו לאפשר לכל חנות אפליקציות לבצע עדכונים לאפליקציה שלכם בחנויות השונות. כדאי לעשות זאת אם אתם מפיצים את האפליקציה עם אותו תוכן בכל חנויות האפליקציות, ואתם רוצים לתת עדיפות למשתמשים עם גרסה עדכנית. כל עוד משתמשים באותו מזהה אפליקציה ובאותו מפתחות חתימה בכל חנויות האפליקציות שבהן מפרסמים את האפליקציה, כל חנות אפליקציות יכולה לעדכן את ההתקנות של האפליקציה, ללא קשר למקום שבו המשתמש הוריד את האפליקציה במקור.
עם זאת, הדבר עלול להוביל להתנהגות בלתי צפויה של המשתמשים, בהתאם לאופן שבו כל חנות אפליקציות בוחרת להטמיע עדכוני אפליקציות בחנויות שונות. לדוגמה, משתמש יכול להשבית עדכונים מחנות אחת בלי לדעת שעדכונים יכולים להמשיך להגיע מחנות אחרת.
אם בעבר אישרת עדכונים בחנויות שונות, אבל רוצה להתחיל להעדיף מקור עדכון מסוים כשהוא נמצא במכשיר, אפשר לפרסם את האפליקציה עם קוד גרסה גבוה יותר בחנות האפליקציות המועדפת ולהמשיך לפרסם אותה עם קודי גרסה נמוכים יותר בחנויות אפליקציות אחרות. אחרי שתתקינו את עדכון הקוד של הגרסה הגבוהה יותר מהמקור המועדף, שאר חנויות האפליקציות לא יוכלו לבצע עדכון חוצה במכשיר הזה.