توزيع التطبيقات

تتيح واجهة برمجة التطبيقات 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: يتم تثبيت التطبيق تلقائيًا، وإذا ألغى المستخدم تثبيته، فسيتم تثبيته مرة أخرى. على الأجهزة المُدارة، يجب أن تحظر وحدة التحكّم بسياسة الجهاز إلغاء التثبيت باستخدام DevicePolicyManager.setUninstallBlocked.

في حال تعذُّر الاتصال (فقدان الاتصال أو عدم توفُّر مساحة تخزين أو ما إلى ذلك)، تتم إعادة إجراء عمليات التثبيت تلقائيًا إلى أن تنجح العملية. يتم تطبيق استراتيجية إعادة محاولة الرقود الأسي لتجنب إهدار البطارية والبيانات في حالة الإخفاقات التي لا يمكن استردادها.

أولوية التثبيت

يمكنك اختيار ترتيب عمليات التثبيت من خلال ضبط autoInstallPriority. يجب أن تكون الأولوية عددًا صحيحًا بدون توقيع والقيمة التلقائية 0. سيتم تثبيت التطبيقات بترتيب متزايد أو حسب الأولوية، أي سيتم تثبيت التطبيقات ذات الأولوية الأقل أولاً.

قيود التثبيت

يمكنك ضبط قيود التثبيت لكل تطبيق عن طريق ضبط autoInstallConstraint، ما يسمح لك بالتحكّم في الحالة المطلوبة للجهاز أثناء التثبيت:

  • وما إذا كان يجب توصيل الجهاز بشبكة Wi-Fi أم لا،
  • وما إذا كان يجب شحن الجهاز،
  • وما إذا كان يجب أن يكون الجهاز غير نشِط لفترة قصيرة (أي لا يستخدمه المستخدم بشكل نشط).

في حال عدم استيفاء القيود على الفور، ستتم إضافة عمليات التثبيت المتأثرة إلى قائمة الانتظار حتى يتم استيفاء القيود.

في autoInstallConstraint، يتم تطبيق القاعدة AND بين الحقول. على سبيل المثال، مع autoInstallConstraint التالية، يجب أن يكون الجهاز قيد الشحن ومتصلاً بشبكة لا تفرض تكلفة استخدام (مثل شبكة Wi-Fi) حتى يتم تثبيت التطبيق:

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

تثبيت التطبيقات تلقائيًا على الأجهزة التي يتم توفير المتطلبات اللازمة لها حديثًا

ترسل واجهة برمجة التطبيقات Google Play EMM API إشعارًا NewDeviceEvent عند إدارة الجهاز لأول مرة. لتثبيت التطبيقات تلقائيًا على الأجهزة المُدارة حديثًا، استمع إلى إشعارات NewDeviceEvent. من كل NewDeviceEvent، استرِد userId وdeviceId، ثم اطلب Devices.update لضبط السياسة لهذا الجهاز.

لمعرفة كيفية الاشتراك في إشعارات إدارة الخدمات الجوّالة للمؤسسات (EMM)، يمكنك الاطّلاع على إعداد إشعارات إدارة الخدمات الجوّالة للمؤسسات (EMM).

توزيع التطبيقات للاختبار المغلق

يتيح الاختبار المغلق لمطوّري التطبيقات الحصول على ملاحظات من مستخدمين موثوق بهم حول الإصدارات المبكرة من تطبيقاتهم. يمكن للمطوّرين إعداد اختبارات مغلقة في Google Play Console. يمكنك استخدام واجهة برمجة التطبيقات Play EMM API للسماح لمشرفي تكنولوجيا المعلومات بتوزيع الإصدارات المغلقة من التطبيقات (تُسمّى أيضًا قنوات الإصدار) على مستخدمين محدَّدين. يمكن لعملاء مؤسستك استخدام هذه الميزة ليس فقط لاختبار التطبيقات التابعة لجهات خارجية، ولكن أيضًا لاختبار التطبيقات الخاصة التي تم تطويرها داخليًا.

التطبيقات المؤهَّلة

قبل أن يضيف أحد المطوِّرين مؤسسة إلى قائمة المختبِرين المغلقين في أحد التطبيقات، يجب أن يستوفي التطبيق المعايير التالية:

  • تم نشر إصدار علني من التطبيق على Google Play.
  • في Google Play Console، يتم تفعيل Google Play للأعمال في صفحة الإعدادات المتقدّمة الخاصة بالتطبيق.
  • وتفي أي إصدارات مغلقة من التطبيق بمتطلبات رمز الإصدار.

إضافة مؤسسة إلى الاختبارات المغلقة

يمكن لمطوّري التطبيقات إضافة مؤسسات إلى الاختبارات التي تستخدم طريقتَي اختبار ألفا المغلق أو اختبار ألفا باستخدام "مجموعات Google". للحصول على التعليمات، اطّلِع على الدليل حول كيفية إعداد اختبار مفتوح أو مغلق أو داخلي. على المطوِّر إدخال رقم تعريف المؤسسة (يُشار إليه أيضًا باسم رقم تعريف المؤسسة) لكل مؤسسة مشارِكة. يمكن لمشرفي تكنولوجيا المعلومات تقديم معرّف مؤسستهم إلى مطوّري التطبيقات التابعين لجهات خارجية من خلال اتّباع الخطوات التالية:

  1. سجِّل الدخول إلى متجر Google Play.
  2. انقر على إعدادات المشرف.
  3. انسخ سلسلة معرّف المؤسسة من مربع معلومات المؤسسة وأرسلها إلى المطور.

متطلبات إضافية للتطبيقات الخاصة

بالنسبة إلى التطبيقات الخاصة، يحتاج مطوّر البرامج أيضًا إلى إضافة معرّف المؤسسة لكل مؤسسة مشارك في علامة التبويب Google Play للأعمال في صفحة "الإعدادات المتقدمة" للتطبيق. للحصول على التعليمات، يُرجى الاطّلاع على نشر تطبيق خاص.

توزيع مسارات الاختبار المغلقة على المستخدمين

لاسترداد قائمة قنوات الإصدار المتاحة لمؤسسة ما لتطبيق محدَّد، يمكنك استدعاء Products.get. تتضمن قائمة appTracks[] المضمّنة في الاستجابة المسارات المتوفرة لكل تطبيق. إنّ appTracks[].trackAlias هو اسم للمقطع الصوتي الذي يمكنك عرضه في وحدة التحكّم في إدارة الخدمات الجوّالة للمؤسسات، ويكون appTracks[].trackId هو رقم التعريف القابل للقراءة آليًا للمسار.

لمنح المستخدم إذن الوصول إلى المسار المغلق لتطبيق معيَّن، يجب ضبط policy.productPolicy[].trackIds[] في policy على Device. إذا توفرت عدة مسارات للجهاز، سيتم تثبيت الإصدار المتاح بأعلى رمز إصدار.

ستتم إزالة أرقام تعريف التتبع تلقائيًا من استدعاء Products.get في سيناريوهات معيّنة، مثل ما يلي:

  • تتم ترقية حزمة APK الخاصة بالمقطع الصوتي إلى مسار آخر أو في قناة الإنتاج.
  • يتم تحديث الإصدار العلني بإصدار أحدث من قناة الإصدار العلني.
  • ويوقف مطوّر البرامج المسار.

تتبُّع تراخيص التطبيقات المدفوعة

بالنسبة إلى التطبيقات المدفوعة، يتتبّع عنصر Grouplicenses عدد التراخيص التي تمتلكها المؤسسة وعدد التراخيص المستخدَمة. يمكنك الاتصال بالرقم Grouplicenses.get للحصول على تفاصيل ترخيص التطبيق.

قبل تثبيت تطبيق مدفوع على أحد الأجهزة، يجب أن تمتلك المؤسسة ترخيصًا لهذا التطبيق. وفي حال توفُّر ترخيص، يتم تثبيت التطبيق على الجهاز ويتم إنشاء عنصر Entitlements. يربط كائن Entitlements ترخيصًا بمستخدم ويقلّل عدد التراخيص المتاحة للتطبيق. في حال عدم توفّر أي تراخيص، سيتعذّر تثبيت التطبيق ولا يتم إنشاء كائن Entitlements.

ولا يتم استخدام العنصرين Grouplicenses وEntitlements في التطبيقات التي يتم توزيعها بدون رسوم.