הפצת אפליקציות

Google Play EMM API תומך בשיטות ההפצה הבאות לאפליקציות ציבוריות ופרטיות:

התקנה ידנית של אפליקציות מחנות Google Play לארגונים

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

ההתנהגות המנוהלת בחנות Play מוגדרת על ידי הערך של policy.productAvailabilityPolicy:

  • all: כל האפליקציות הציבוריות מחנות Play זמינות.
  • whitelist: רק האפליקציות שרשומות בpolicy.productPolicy זמינות.

בשני המקרים, כל האפליקציות ב-policy.productPolicy מתווספות כברירת מחדל לפריסת החנויות של הארגון. פריסת החנות של הארגון היא דף הבית של חנות Play המנוהלת כשבוחרים באפשרות whitelist, וניתן לגשת אליה בכרטיסייה 'אפליקציות לעבודה' כשבוחרים ב-all. תוכלו לאפשר ללקוחות להתאים אישית את פריסת החנות בארגון על ידי הטמעת ה-iframe המנוהל של Google Play (קראו את המאמר ארגון אפליקציות באמצעות ה-iframe המנוהל של Google Play).

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

כדי להתקין מרחוק אפליקציה במכשיר של משתמש (שנקראת גם בדחיפה, צריך להגדיר את policy.productPolicy.autoInstallPolicy ב-policy של Device). כשמקצים מכשיר חדש, יש להגדיר את המדיניות לפני שמוסיפים למכשיר את חשבון Google Play המנוהל, אחרת המדיניות לא תחול למשך זמן קצר אחרי הוספת החשבון למכשיר.

אפשר להגדיר את autoInstallMode לערך:

  • doNotAutoInstall: האפליקציה לא מותקנת באופן אוטומטי.
  • autoInstallOnce: האפליקציה מותקנת פעם אחת באופן אוטומטי, אם המשתמש מסיר את ההתקנה של האפליקציה היא לא תותקן שוב.
  • forceAutoInstall: האפליקציה מותקנת אוטומטית, אם המשתמש יסיר את האפליקציה היא תותקן שוב. במכשירים מנוהלים, ה-DPC צריך לחסום את ההסרה באמצעות DevicePolicyManager.setUninstallBlocked.

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

עדיפות התקנה

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

מגבלות התקנה

אפשר להגדיר אילוצי התקנה לכל אפליקציה באמצעות הגדרה של autoInstallConstraint, וכך לשלוט במצב הנדרש של המכשיר במהלך ההתקנה:

  • האם המכשיר מחובר לרשת Wi-Fi,
  • אם המכשיר בטעינה,
  • והאם המכשיר צריך להיות ללא פעילות (לא בשימוש פעיל של המשתמש).

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

ב-autoInstallConstraint, כלל AND יחול בין השדות. לדוגמה, עם ה-autoInstallConstraint הבא, המכשיר צריך להיות גם בטעינה וגם מחובר לרשת ללא שימוש בנתונים (כמו Wi-Fi) כדי להתקין את האפליקציה:

"autoInstallConstraint": [
  "chargingStateConstraint" : "chargingRequired",
  "networkTypeConstraint" : "unmeteredNetwork"
]

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

ממשק ה-API של EMM של Google Play שולח התראה NewDeviceEvent כשמתבצע ניהול תצורה ראשוני של המכשיר. כדי להתקין אפליקציות בדחיפה באופן אוטומטי במכשירים חדשים שהוקצו, יש להאזין להתראות של NewDeviceEvent. מכל NewDeviceEvent, מאחזרים את userId ואת deviceId, ולאחר מכן מבצעים קריאה אל Devices.update כדי להגדיר את המדיניות למכשיר הזה.

במאמר הגדרת התראות EMM מוסבר איך נרשמים להתראות של EMM.

הפצת אפליקציות לבדיקות סגורות

בדיקה סגורה מאפשרת למפתחי אפליקציות לקבל משוב ממשתמשים מהימנים לגבי גרסאות מוקדמות של האפליקציה. המפתחים יכולים להגדיר בדיקות סגורות במסוף Google Play. אפשר להשתמש ב-Play EMM API כדי לאפשר לאדמינים ב-IT להפיץ גרסאות סגורות (שנקראות גם מסלולים) של אפליקציות למשתמשים ספציפיים. הלקוחות הארגוניים שלכם יכולים להשתמש בתכונה הזו לא רק כדי לבדוק אפליקציות של צד שלישי, אלא גם כדי לבדוק אפליקציות פרטיות שפותחו באופן פנימי.

אפליקציות כשירות

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

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

הוספת ארגון לבדיקות סגורות

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

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

דרישות נוספות לאפליקציות פרטיות

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

הפצת מסלולים סגורים למשתמשים

על מנת לאחזר את רשימת המסלולים שזמינים לארגון לאפליקציה מסוימת, צריך להתקשר אל Products.get. התשובה appTracks[] כוללת את המסלולים שזמינים לכל אפליקציה. appTracks[].trackAlias הוא שם לטראק שקריא למשתמשים, ואפשר להציג אותו במסוף ה-EMM, והמזהה appTracks[].trackId הוא המזהה הקריא למחשבים של הטראק.

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

מזהי TrackId יוסרו באופן אוטומטי מהקריאה ל-Products.get בתרחישים מסוימים, למשל:

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

מעקב אחר רישיונות לאפליקציות בתשלום

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

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

האובייקטים Grouplicenses ו-Entitlements לא נמצאים בשימוש באפליקציות שמופצות ללא חיוב.