نظرة عامة حول الترخيص

خدمة الترخيص في Google Play هي خدمة مستندة إلى الشبكة تتيح للتطبيق طلب معلومات من أحد خوادم ترخيص Google Play الموثوق بها لتحديد ما إذا كان التطبيق مرخَّصًا لمستخدم الجهاز الحالي. تستند خدمة الترخيص إلى قدرة خادم ترخيص Google Play على تحديد ما إذا كان مستخدم معيّن مرخَّصًا لاستخدام تطبيق معيّن. يعتبر Google Play أنّه تم منح المستخدم ترخيصًا إذا كان من المشترين المسجّلين للتطبيق.

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

ملاحظة: إذا كان إصدار من التطبيق في مسارات الاختبار المغلق أو المفتوح، يُعتبَر جميع المستخدمين المفوَّضين بتنزيل هذا التطبيق وتثبيته مستخدمين مرخَّصين للتطبيق. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة استخدام مسارات الاختبار للحصول على ملاحظات مبكّرة قيّمة من المستخدمين.

الشكل 1: يبدأ تطبيقك عملية فحص الترخيص من خلال "مكتبة التحقّق من الترخيص" و"عميل Google Play"، الذي يعالج عملية التواصل مع خادم Google Play.

ملاحظة: في السابق، كان بإمكانك اختبار تطبيق من خلالتحميل إصدار "مسودة" غير منشور. لم تعُد هذه الوظيفة متوفرة، ويجب بدلاً من ذلك نشرها في قنوات الاختبار المغلق أو المفتوح. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة لم يعُد بإمكانك استخدام ميزة "مسودة التطبيق".

لتحديد هوية المستخدم بشكل صحيح وتحديد حالة الترخيص، يتطلّب خادم الترخيص معلومات عن التطبيق والمستخدم. يعمل تطبيقك وتطبيق Google Play معًا لتجميع المعلومات، ويرسل تطبيق Google Play هذه المعلومات إلى الخادم.

لمساعدتك في إضافة ترخيص إلى تطبيقك، توفّر حزمة تطوير البرامج (SDK) لنظام التشغيل Android مجموعة قابلة للتنزيل من مصادر المكتبات التي يمكنك تضمينها في مشروع تطبيقك: حزمة Google Market الترخيص. مكتبة التحقّق من الترخيص (LVL) هي مكتبة يمكنك إضافتها إلى تطبيقك لكي تتمكّن من التعامل مع جميع المراسلات المتعلّقة بالترخيص مع خدمة الترخيص في Google Play. بعد إضافة واجهة برمجة التطبيقات LVL إلى تطبيقك، يمكن لتطبيقك تحديد حالة الترخيص للمستخدم الحالي من خلال استدعاء طريقة وتنفيذ ردّ اتصال يتلقّى استجابة الحالة.

لا يطلب تطبيقك معلومات من خادم الترخيص بشكل مباشر، بل يستدعي بدلاً من ذلك برنامج Google Play عبر واجهة برمجة التطبيقات للتواصل بين العمليات عن بُعد لبدء طلب ترخيص. في طلب الترخيص:

  • يقدّم تطبيقك ما يلي: اسم الحزمة، وعدد عشوائي يُستخدَم لاحقًا للتحقّق من صحة أي استجابة من الخادم، وطريقة استدعاء يمكن من خلالها إرسال الردّ بشكل غير متزامن.
  • يجمع برنامج Google Play العميل المعلومات اللازمة عن المستخدم والجهاز، مثل اسم المستخدم الأساسي لحساب Google على الجهاز ورقم تعريف IMSI وغيرها من المعلومات. بعد ذلك، يُرسِل طلب التحقّق من الترخيص إلى الخادم نيابةً عن تطبيقك.
  • يُقيّم خادم Google Play الطلب باستخدام كل المعلومات المتاحة، ويحاول تحديد هوية المستخدم بمستوى كافٍ من الثقة. بعد ذلك، يتحقق السيرفر من هوية المستخدم مقارنةً بسجلّات الشراء لتطبيقك ويعرض ردًا بشأن الترخيص يعرضه برنامج Google Play العميل لتطبيقك من خلال طلب إعادة الاتصال بواجهة برمجة التطبيقات.

يمكنك اختيار وقت التحقّق من ترخيص تطبيقك ومعدّل تكرار التحقّق، ويمكنك التحكّم بشكل كامل في كيفية معالجة التطبيق للردّ والتحقّق من بيانات الردّ الموقَّعة وفرض عناصر التحكّم في الوصول.

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

استجابات الترخيص آمنة

لضمان سلامة كل طلب تحقّق من الترخيص، يوقّع الخادم بيانات الردّ على طلب الترخيص باستخدام مفتاحَي تشفير RSA يتمّت مشاركتهما حصريًا بين خادم Google Play وأنت.

تُنشئ خدمة الترخيص مفتاحَي ترخيص فرديَّين لكل تطبيق وتُعرِض المفتاح العام في صفحة الخدمات وواجهات برمجة التطبيقات لتطبيقك في Play Console. عليك نسخ المفتاح العام من Play Console وتضمينه في رمز المصدر لتطبيقك. يحتفظ الخادم بالمفتاح الخاص داخليًا ويستخدمه لتوقيع ردود التراخيص للتطبيقات التي تنشرها باستخدام هذا الحساب.

عندما يتلقّى تطبيقك استجابة موقَّعة، يستخدم المفتاح العميق المضمّن للتحقّق من البيانات. يتيح استخدام التشفير باستخدام مفتاح عام في خدمة الترخيص للتطبيق رصد الردود التي تم التلاعب بها أو تزويرها.

مكتبة التحقّق من الترخيص

توفّر حزمة تطوير البرامج (SDK) لنظام التشغيل Android حزمة قابلة للتنزيل تُعرف باسم حزمة ترخيص Google Market، والتي تضمّ "مكتبة التحقّق من الترخيص" (LVL). تعمل واجهة برمجة التطبيقات هذه على تبسيط عملية إضافة الترخيص إلى تطبيقك وتساعد في ضمان تنفيذ تطبيقك بشكل أكثر أمانًا وفعالية. توفّر أداة LVL فئات داخلية تعالج معظم العمليات العادية لطلب الترخيص، مثل التواصل مع عميل Google Play لبدء طلب ترخيص و التحقّق من الردود والتحقق من صحتها. ويقدّم أيضًا واجهات تتيح لك بسهولة إدراج الرمز المخصّص لتحديد سياسة الترخيص وإدارة الوصول حسب الحاجة في تطبيقك. في ما يلي واجهات LVL الرئيسية:

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

لمساعدتك في بدء استخدام Policy، يوفّر LVL طريقتَين كاملتَين لتنفيذ Policy يمكنك استخدامهما بدون تعديل أو تكييفهما لتلبية احتياجاتك:

ServerManagedPolicy
Policy مرن يستخدم الإعدادات التي يوفّرها خادم الترخيص لإدارة ميزة التخزين المؤقت للردّ والوصول إلى التطبيق عندما يكون الجهاز غير متصل بالإنترنت (مثلاً عندما يكون المستخدم على متن طائرة). بالنسبة إلى معظم التطبيقات، يُنصح بشدة باستخدام ServerManagedPolicy.
StrictPolicy
Policy مفروض قيود عليه: لا يخزن مؤقتًا أي بيانات استجابة ويسمح للتطبيق بالوصول فقط عندما يعرض الخادم استجابة مرخّصة.

تتوفّر أداة LVL كحزمة قابلة للتنزيل من حزمة تطوير البرامج (SDK) لنظام التشغيل Android. تتضمّن الحزمة مكتبة LVL نفسها ومثالاً على تطبيق يوضّح كيفية دمج المكتبة مع تطبيقك وكيفية إدارة تطبيقك لبيانات الاستجابة وتفاعل واجهة المستخدم وحالات الخطأ.

يتم توفير مصادر مكتبة LVL كـ مشروع مكتبة في Android، ما يعني أنّه يمكنك الاحتفاظ بمجموعة واحدة من مصادر المكتبة ومشاركتها في تطبيقات متعددة. تتوفّر أيضًا بيئة اختبار كاملة من خلال حزمة تطوير البرامج (SDK)، ما يتيح لك تطوير عملية تنفيذ الترخيص واختبارها في تطبيقاتك قبل نشرها، حتى إذا لم يكن لديك إذن بالوصول إلى جهاز فعلي.

المتطلبات والقيود

تم تصميم خدمة "الترخيص في Google Play" للسماح لك بتطبيق عناصر التحكّم في الترخيص على التطبيقات التي تنشرها من خلال Google Play. لا تمكّنك الخدمة من التحكّم في الوصول إلى التطبيقات التي لم يتم نشرها من خلال Google Play أو التي يتم تشغيلها على الأجهزة التي لا توفّر برنامج Google Play.

في ما يلي بعض النقاط التي يجب أخذها في الاعتبار عند تنفيذ الترخيص في تطبيقك:

  • لا يمكن لأي تطبيق استخدام الخدمة إلا إذا كان العميل المرتبط بخدمة Google Play مثبّتًا على الجهاز المضيف وكان الجهاز يعمل بالإصدار 1.5 من Android (المستوى 3 لواجهة برمجة التطبيقات) أو إصدار أحدث.
  • لإكمال عملية التحقّق من الترخيص، يجب أن يكون خادم الترخيص متاحًا على الشبكات. يمكنك تنفيذ سلوكيات التخزين المؤقت للترخيص لإدارة الوصول إلى تطبيقك في حال عدم توفّر اتصال بالشبكة.
  • يعتمد أمان عناصر التحكّم في الترخيص في تطبيقك في نهاية المطاف على تصميم عملية التنفيذ نفسها. توفّر الخدمة العناصر الأساسية التي تتيح لك التحقّق من الترخيص بأمان، ولكنّ تنفيذ الترخيص والتعامل معه هما عاملان متروكان لك. من خلال اتّباع أفضل الممارسات الواردة في المستندات التالية، يمكنك المساعدة في ضمان أمان عملية التنفيذ.
  • لا تؤثّر إضافة ترخيص إلى تطبيق في طريقة عمله عند تشغيله على جهاز لا يتيح Google Play.
  • يمكنك تنفيذ عناصر التحكّم في الترخيص لتطبيق مجاني، ولكن فقط إذا كنت تستخدم الخدمة لتوفير ملفات بيانات موسّعة لحِزم APK.

بديل لميزة "حماية النسخ"

توفّر ميزة "ترخيص Google Play" آلية مرنة وآمنة للتحكّم في إمكانية الوصول إلى تطبيقاتك. وتُحلّ هذه الميزة بفعالية محلّ آلية "الحماية من النسخ" (التي لم تعُد متاحة) التي كانت مقدَّمة سابقًا على Google Play، وتوفر لك بدورها إمكانية توزيع تطبيقاتك على نطاق أوسع.

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

على الرغم من أنّه لا يمكن لأي آلية ترخيص منع جميع الاستخدامات غير المصرّح بها تمامًا، تسمح لك خدمة الترخيص بالتحكّم في الوصول إلى معظم أنواع الاستخدام العادي، على جميع الأجهزة المتوافقة، سواء كانت مقفلة أو غير مقفلة.

لبدء إضافة ترخيص التطبيق إلى تطبيقك، انتقِل إلى الإعداد لترخيص التطبيق.