إنّ Google Play Licensing هي خدمة مستنِدة إلى شبكة تتيح لأحد التطبيقات طلب الحصول على خادم ترخيص Google Play موثوق به لتحديد ما إذا كان التطبيق حاصلاً على ترخيص لمستخدم الجهاز الحالي أم لا. تعتمد خدمة الترخيص على إمكانية استخدام خادم ترخيص Google Play لتحديد ما إذا كان مستخدم معيّنًا حاصلاً على ترخيص لاستخدام تطبيق معيّن. تعتبر Google Play المستخدم مرخَّصًا إذا كان المستخدم هو مشترٍ مسجَّل للتطبيق.
يبدأ الطلب عندما يُجري تطبيقك طلبًا إلى خدمة يستضيفها تطبيق عميل Google Play. بعد ذلك، يرسل تطبيق Google Play طلبًا إلى خادم الترخيص ويتلقى النتيجة. يرسل تطبيق Google Play النتيجة إلى تطبيقك، والتي قد تسمح أو لا يسمح باستخدام التطبيق لاحقًا حسب الحاجة.
ملاحظة: إذا كان إصدار التطبيق في مسارات الاختبار المغلقة أو المفتوحة، يتم اعتبار جميع المستخدمين المصرَّح لهم بتنزيل هذا التطبيق وتثبيته على أنهم مستخدمين حاصلين على ترخيص للتطبيق. لمزيد من المعلومات، يُرجى الاطّلاع على استخدام مسارات الاختبار للحصول على ملاحظات قيّمة وقيّمة من المستخدمين في مرحلة مبكرة.
![](https://developer.android.com/static/images/google/play/licensing/licensing_arch.png?hl=ar)
الشكل 1. يبدأ تطبيقك عملية فحص للترخيص من خلال "مكتبة التحقّق من الترخيص" وبرنامج Google Play، الذي يعالج الاتصال بخادم Google Play.
ملاحظة: كان بإمكانك في السابق اختبار تطبيق عن طريق تحميل إصدار "مسودّة" غير منشور. لم تعُد هذه الوظيفة متوافقة. وبدلاً من ذلك، عليك نشرها في مسارات الاختبار المغلقة أو المفتوحة. لمزيد من المعلومات، يُرجى الاطّلاع على مسودّة التطبيقات لم تعُد متوافقة.
لتحديد هوية المستخدم وتحديد حالة الترخيص على نحو سليم، يطلب خادم الترخيص معلومات عن التطبيق والمستخدم، حيث يعمل تطبيقك وعميل Google Play معًا لتجميع المعلومات، ويمررها عميل Google Play إلى الخادم.
لمساعدتك في إضافة ترخيص إلى تطبيقك، توفر حزمة SDK لنظام التشغيل Android مجموعة قابلة للتنزيل من مصادر المكتبات التي يمكنك تضمينها في مشروع تطبيقك وهي: حزمة ترخيص Google Market. إنّ مكتبة التحقق من الترخيص (LVL) هي مكتبة يمكنك إضافتها إلى تطبيقك لمعالجة جميع الاتصالات ذات الصلة بالترخيص من خلال خدمة ترخيص Google Play. مع إضافة LVL إلى طلبك، يمكن لتطبيقك تحديد حالة الترخيص للمستخدم الحالي من خلال طلب طريقة وتنفيذ معاودة اتصال تتلقى رد الحالة.
لا يطلب تطبيقك خادم الترخيص مباشرةً، بل يستدعي عميل Google Play عبر IPC عن بُعد لبدء طلب ترخيص. في طلب الترخيص:
- يقدم تطبيقك ما يلي: اسم الحزمة الخاص به، ورقم تعريف يتم استخدامه لاحقًا للتحقق من صحة أي استجابة من الخادم، واستدعاء يمكن عرض الاستجابة من خلاله بشكل غير متزامن.
- يجمع برنامج Google Play المعلومات اللازمة حول المستخدم والجهاز، مثل اسم المستخدم الأساسي لحساب Google للجهاز، ورقم التعريف الدولي للمشترِك في خدمات الجوّال (IMSI) وغير ذلك من المعلومات. ثم يرسل طلب فحص الترخيص إلى الخادم نيابةً عن تطبيقك.
- يقيّم خادم Google Play الطلب باستخدام جميع المعلومات المتاحة، محاولًا إثبات هوية المستخدم بمستوى كافٍ من الثقة. يتحقق الخادم بعد ذلك من هوية المستخدم في سجلات الشراء الخاصة بتطبيقك ويعرض استجابة الترخيص التي يعيدها عميل Google Play إلى تطبيقك من خلال استدعاء IPC.
يمكنك اختيار الوقت وعدد المرات التي تريد فيها أن يتحقّق تطبيقك من ترخيصه، ويمكنك التحكّم بشكل كامل في كيفية تعامله مع الاستجابة، والتحقق من بيانات الاستجابة الموقَّعة، وفرض عناصر التحكّم في الوصول.
لاحظ أنّه أثناء فحص الترخيص، لا يدير تطبيقك أي اتصالات شبكة ولا يستخدم أي واجهات برمجة تطبيقات ذات صلة بالترخيص في نظام Android الأساسي.
استجابات الترخيص آمنة
لضمان سلامة كل طلب بحث للترخيص، يوقِّع الخادم بيانات استجابة الترخيص باستخدام مفتاحَي تشفير RSA تتم مشاركتهما حصريًا بين خادم Google Play وبينك.
تنشئ خدمة الترخيص زوجًا واحدًا من مفاتيح الترخيص لكل تطبيق وتعرض المفتاح العام في صفحة الخدمات وواجهات برمجة التطبيقات لتطبيقك في Play Console. يجب نسخ المفتاح العام من Play Console وتضمينه في رمز مصدر التطبيق. ويحتفظ الخادم بالمفتاح الخاص داخليًا ويستخدمه لتوقيع استجابات الترخيص للتطبيقات التي تنشرها باستخدام ذلك الحساب.
عندما يتلقّى التطبيق استجابة موقَّعة، فإنّه يستخدم المفتاح العام المضمّن للتحقّق من البيانات. يتيح استخدام تشفير المفتاح العام في خدمة الترخيص اكتشاف الاستجابات التي تم التلاعب بها أو الانتحال.
مكتبة التحقّق من الترخيص
توفّر "حزمة تطوير البرامج (SDK) لنظام التشغيل Android" حزمة قابلة للتنزيل تُعرف باسم حزمة ترخيص Google Market، والتي تتضمّن "مكتبة التحقّق من الترخيص" (LVL). إنّ LVL يبسّط عملية إضافة الترخيص إلى تطبيقك ويساعد في ضمان تنفيذ تطبيقك بطريقة أكثر أمانًا وفعالية. توفّر LVL فئات داخلية تعالج معظم العمليات العادية لطلب الترخيص، مثل التواصل مع عميل Google Play لبدء طلب ترخيص والتحقّق من صحة الردود. كما أنه يعرض الواجهات التي تتيح لك بسهولة إدخال الرمز المخصص لتحديد سياسة الترخيص وإدارة الوصول حسب ما يحتاجه التطبيق. واجهات LVL الرئيسية هي:
Policy
- تحدد عملية التنفيذ ما إذا كان سيتم السماح بالوصول إلى التطبيق بناءً على استجابة الترخيص التي تم تلقيها من الخادم وأي بيانات أخرى متاحة (مثل البيانات الواردة من خادم خلفية مرتبط بتطبيقك). ويمكن لعملية التنفيذ تقييم الحقول المختلفة لاستجابة الترخيص وتطبيق قيود أخرى، إذا لزم الأمر. تتيح لك عملية التنفيذ أيضًا إدارة معالجة عمليات فحص الترخيص التي تؤدي إلى حدوث أخطاء، مثل أخطاء الشبكة.
LicenseCheckerCallback
- يدير عملية التنفيذ إمكانية الوصول إلى التطبيق، استنادًا إلى نتيجة معالجة العنصر
Policy
لاستجابة الترخيص. يمكن للقائم بالتنفيذ إدارة أذونات الوصول بأي طريقة مطلوبة، بما في ذلك عرض نتيجة الترخيص في واجهة المستخدم أو توجيه المستخدم إلى شراء التطبيق (إذا لم يكن مرخَّصًا حاليًا).
لمساعدتك في بدء استخدام Policy
، توفّر LVL عمليتَي تنفيذ
Policy
كاملتَين يمكنك استخدامهما بدون تعديل أو التكيّف مع
احتياجاتك:
ServerManagedPolicy
Policy
مرن يستخدم الإعدادات التي يوفرها خادم الترخيص لإدارة التخزين المؤقت للاستجابة والوصول إلى التطبيق عندما يكون الجهاز غير متصل بالإنترنت (مثلاً، عندما يكون المستخدم على متن طائرة). في معظم التطبيقات، ننصح بشدة باستخدامServerManagedPolicy
.StrictPolicy
- سياسة
Policy
مشروطة لا تخزّن أي بيانات استجابة في ذاكرة التخزين المؤقت، وتسمح للتطبيق بالوصول فقط عندما يعرض الخادم استجابة مرخَّصة.
ويتوفر LVL كحزمة قابلة للتنزيل من Android SDK. تتضمّن الحزمة كلاً من LVL نفسه ومثالاً يوضح كيفية دمج المكتبة مع تطبيقك وكيف يجب أن يدير تطبيقك بيانات الاستجابة وتفاعل واجهة المستخدم وشروط الخطأ.
يتم توفير مصادر LVL على أنها مشروع لمكتبة Android، ما يعني أنّه يمكنك الاحتفاظ بمجموعة واحدة من مصادر المكتبة ومشاركتها عبر تطبيقات متعدّدة. تتوفر بيئة اختبار كاملة أيضًا من خلال SDK، حتى تتمكن من تطوير واختبار تنفيذ الترخيص في تطبيقاتك قبل نشرها، حتى إذا لم يكن لديك إمكانية الوصول إلى جهاز مادي.
المتطلبات والقيود
تم تصميم ترخيص Google Play ليتيح لك تطبيق عناصر التحكم في الترخيص على التطبيقات التي تنشرها من خلال Google Play. ولم يتم تصميم الخدمة للسماح لك بالتحكم في الوصول إلى التطبيقات غير المنشورة من خلال Google Play أو التطبيقات التي يتم تشغيلها على الأجهزة التي لا تقدم برنامج Google Play.
في ما يلي بعض النقاط التي يجب مراعاتها عند تنفيذ الترخيص في تطبيقك:
- لا يمكن لأحد التطبيقات استخدام الخدمة إلا إذا كان برنامج Google Play مثبّتًا على الجهاز المضيف وكان الجهاز يعمل بنظام التشغيل Android 1.5 (المستوى 3 من واجهة برمجة التطبيقات) أو إصدار أحدث.
- لإكمال عملية التحقّق من الترخيص، يجب أن تتوفّر إمكانية الوصول إلى خادم الترخيص عبر الشبكة. يمكنك تنفيذ سلوكيات التخزين المؤقت للتراخيص لإدارة الوصول إلى تطبيقك في حال عدم توفّر اتصال بالشبكة.
- يعتمد أمان عناصر التحكم في ترخيص تطبيقك في الأساس على تصميم التطبيق نفسه. توفر الخدمة اللبنات الأساسية التي تتيح لك التحقق من الترخيص بأمان، إلا أن التنفيذ الفعلي للترخيص والتعامل معه هما عاملان يعودان إليك. باتباع أفضل الممارسات الواردة في المستندات التالية، يمكنك المساعدة في ضمان أن تكون عملية التنفيذ لديك آمنة.
- لا تؤثر إضافة الترخيص إلى تطبيق في طريقة عمل التطبيق عند تشغيله على جهاز لا يقدم Google Play.
- يمكنك تنفيذ عناصر التحكّم في الترخيص لتطبيق مجاني، ولكن فقط إذا كنت تستخدم الخدمة لتوفير ملفات توسيع APK.
بديل حماية النسخ
يعد ترخيص Google Play آلية مرنة وآمنة للتحكم في الوصول إلى تطبيقاتك. كما أنّها تحلّ محلّ آلية "حماية النسخ" (التي لم تعُد متوافقة) التي كانت تُقدَّم سابقًا على Google Play، كما تمنحك إمكانية توزيع أوسع لتطبيقاتك.
يتيح لك الترخيص الانتقال إلى نموذج مستند إلى ترخيص يكون واجب النفاذ على جميع الأجهزة التي يمكنها الوصول إلى Google Play. لا تكون إمكانية الوصول مرتبطة بخصائص الجهاز المضيف، بل بتطبيقك على Google Play (من خلال المفتاح العام للتطبيق) وسياسة الترخيص التي تحدّدها. يمكن تثبيت تطبيقك وإدارته على أي جهاز على أي وحدة تخزين، بما في ذلك بطاقة SD.
وعلى الرغم من أنّه لا يمكن لآلية ترخيص منع جميع حالات الاستخدام غير المصرّح به تمامًا، تتيح لك خدمة الترخيص التحكّم في الوصول إلى معظم أنواع الاستخدام العادي، على جميع الأجهزة المتوافقة، سواء المقفلة أو غير المقفلة.
لبدء إضافة ترخيص التطبيق إلى تطبيقك، يمكنك المتابعة إلى الإعداد للترخيص.