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

يتطلب Android توقيع جميع حِزم APK رقميًا باستخدام شهادة قبل إذا كانت مثبّتة على جهاز أو تم تحديثها عند طرح التطبيق باستخدام تطبيق Android الحزم: عليك توقيع حِزمة تطبيقك مع عملية تحميل. قبل تحميله إلى Play Console، وستتولى ميزة "توقيع التطبيق" من Play الباقي. للتطبيقات التي يتم توزيعها باستخدام حِزم APK على "متجر Play" أو على يجب توقيع حزم APK يدويًا لتحميلها.

تقدّم لك هذه الصفحة إرشادات حول بعض المفاهيم المهمّة المتعلّقة بتوقيع التطبيق الأمان، وكيفية توقيع تطبيقك لإصداره في Google Play باستخدام "استوديو Android"، وكيفية ضبط ميزة "توقيع التطبيق" من Play

فيما يلي نظرة عامة عالية المستوى على الخطوات التي قد تحتاج إلى اتخاذها توقيع تطبيق جديد ونشره على Google Play:

  1. إنشاء مفتاح تحميل وملف تخزين
  2. توقيع تطبيقك باستخدام مفتاح التحميل
  3. ضبط ميزة "توقيع التطبيق" من Play
  4. تحميل تطبيقك إلى Google Play
  5. الإعداد طرح إصدار تطبيقك

إذا كان تطبيقك منشورًا من قبل في "متجر Google Play" باستخدام المفتاح الحالي لتوقيع التطبيق أو ترغب في اختيار مفتاح توقيع التطبيق تطبيق جديد بدلاً من أن تنشئ Google هذا التطبيق، اتّبِع الخطوات التالية:

  1. وقّع تطبيقك باستخدام مفتاح توقيع التطبيق.
  2. حمِّل مفتاح توقيع تطبيقك إلى ميزة "توقيع التطبيق" من Play.
  3. (إجراء مقترَح) إنشاء شهادة تحميل وتسجيلها للاطّلاع على التحديثات المستقبلية لتطبيقك
  4. تحميل تطبيقك إلى Google Play
  5. الإعداد طرح إصدار تطبيقك

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

ميزة "توقيع التطبيق" من Play

من خلال ميزة "توقيع التطبيق" من Play، تدير Google عملية توقيع تطبيقك وتحميها. لك وتستخدمه لتوقيع حِزم APK للتوزيع. ولأنّ التطبيق لتأجيل إنشاء حِزم APK وتوقيعها على "متجر Google Play"، يجب يجب ضبط ميزة "توقيع التطبيق" من Play قبل تحميل حِزمة تطبيقك. إجراء ذلك تتيح لك الاستفادة مما يلي:

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

تستخدم ميزة "توقيع التطبيق" من Play مفتاحَين: مفتاح توقيع التطبيق والتحميل key والتي تم توضيحها بمزيد من التفصيل في القسم الذي يتناول المفاتيح ملفات تخزين المفاتيح. وتحتفظ بمفتاح التحميل وتستخدمه للتوقيع تطبيقك لتحميله إلى متجر Google Play. تستخدم Google شهادة التحميل لإثبات هويتك وتوقيع حِزم APK باستخدام مفتاح توقيع التطبيق توزيعها كما هو موضح في الشكل 1. وباستخدام مفتاح تحميل منفصل، يمكنك طلب إعادة ضبط مفتاح التحميل في حال فقدان المفتاح أو اختراقه

بالمقارنة مع التطبيقات التي لم يتم تفعيل "متجر Play" عليها ميزة "توقيع التطبيق": في حال فقدان مفتاح توقيع تطبيقك، لن تتمكّن من تحديث تطبيقك.

الشكل 1. توقيع تطبيق باستخدام ميزة "توقيع التطبيق" من Play

يتم تخزين مفاتيحك على البنية الأساسية نفسها التي تستخدمها Google لتخزين مفاتيحك. مفاتيحك الخاصة، حيث تتم حمايتها من خلال "خدمة إدارة مفاتيح التشفير" من Google. يمكنك تعرف على المزيد عن البنية التحتية الفنية لـ Google من خلال قراءة المستندات الموجزة حول الأمان في Google Cloud

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

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

ملفات تخزين المفاتيح والمفاتيح والشهادات

ملفات تخزين مفاتيح Java (.jks أو .keystore) هي ملفات ثنائية تعمل كمستودعات. الشهادات والمفاتيح الخاصة.

شهادة المفتاح العام (ملفات .der أو .pem)، وتُعرف أيضًا باسم الشهادة الرقمية أو شهادة الهوية، تحتوي على المفتاح العام زوج من المفاتيح العامة/الخاصة، بالإضافة إلى بعض البيانات الوصفية الأخرى التي تحدد هوية المالك (مثل الاسم والموقع الجغرافي) التي تحتفظ بالمفتاح الخاص المقابل

في ما يلي الأنواع المختلفة من المفاتيح التي يجب أن تفهمها:

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

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

    ملاحظة: للحفاظ على أمان المفاتيح، من الأفضل التأكّد من أنّ تطبيقك مفتاح التوقيع ومفتاح التحميل مختلفان.

العمل مع موفري واجهات برمجة التطبيقات

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

الملف المرجعي للشهادة هو تمثيل قصير وفريد الشهادة التي يطلبها غالبًا موفّرو واجهة برمجة التطبيقات إلى جانب اسم الحزمة تسجيل تطبيق لاستخدام خدمتهم. الملفات المرجعية لخوارزمية MD5 وSHA-1 وSHA-256 في صفحة توقيع التطبيق، يمكنك العثور على شهادتَي التحميل وتوقيع التطبيق. في Play Console. ويمكن أيضًا حساب بصمات الإصبع الأخرى من خلال تنزيل ملف الشهادة الأصلية (.der) من نفس الصفحة.

التوقيع على إصدار تصحيح الأخطاء

عند تشغيل مشروعك أو تصحيح الأخطاء من خلاله، يمكنك استخدام "استوديو Android" يوقّع تطبيقك تلقائيًا باستخدام شهادة تصحيح أخطاء ينشئها Android. وأدوات حزمة تطوير البرامج (SDK). عند تشغيل مشروعك أو تصحيح الأخطاء فيه للمرة الأولى في "استوديو Android"، ينشئ IDE ملف تخزين المفاتيح والشهادة تلقائيًا لتصحيح الأخطاء في $HOME/.android/debug.keystore، وتعيين كلمات مرور ملف تخزين المفاتيح والمفتاح.

لأنّ شهادة تصحيح الأخطاء تم إنشاؤها بواسطة أدوات الإصدار وهي غير آمنة بواسطة التصميم، لا تقبل معظم متاجر التطبيقات (بما في ذلك "متجر Google Play") التطبيقات موقَّعة بشهادة تصحيح أخطاء للنشر.

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

لمزيد من المعلومات حول طريقة إنشاء التطبيقات وتشغيلها لتصحيح الأخطاء، راجِع إنشاء ثم اختَر "تشغيل تطبيقك"

انتهاء صلاحية شهادة تصحيح الأخطاء

تتضمن الشهادة الموقَّعة ذاتيًا والمستخدَمة لتوقيع تطبيقك لتصحيح الأخطاء بعد 30 عامًا من تاريخ إنشائه. عندما تحصل الشهادة تنتهي صلاحيتها، ستحصل على خطأ في الإصدار.

لحل هذه المشكلة، ما عليك سوى حذف الملف debug.keystore المخزن في أي من المواقع التالية:

  • ~/.android/ على نظامي التشغيل OS X وLinux
  • خيار "C:\Documents and Settings\user\.android\" مفعَّل نظام التشغيل Windows XP
  • C:\Users\user\.android\ على نظامي التشغيل Windows Vista Windows 7 و8 و10

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

توقيع تطبيقك لطرحه على Google Play

عندما تكون مستعدًا لنشر تطبيقك، عليك توقيعه وتحميله. إلى متجر التطبيقات، مثل Google Play. عند نشر تطبيقك على Google Play لأول مرة، عليك أيضًا ضبط ميزة "توقيع التطبيق" من Play. ميزة "توقيع التطبيق" من Play اختيارية للتطبيقات التي تم إنشاؤها قبل آب (أغسطس) 2021. يوضح لك هذا القسم كيفية توقيع تطبيقك بشكل صحيح لإصداره وإعداد ميزة "توقيع التطبيق" من Play

إنشاء مفتاح تحميل وملف تخزين مفاتيح

إذا لم يكن لديك مفتاح تحميل، يمكنك الاستفادة منه عند ضبط Play. يمكنك إنشاء ميزة "توقيع التطبيق" باستخدام "استوديو Android" على النحو التالي:

  1. في شريط القوائم، انقر على إنشاء > إنشاء حِزمة موقَّعة/APK
  2. في مربّع الحوار إنشاء حِزمة موقَّعة أو APK، اختَر مجموعة حزمات تطبيق Android أو APK، ثم انقر على التالي.
  3. انقر على إنشاء مسار جديد أسفل حقل مسار تخزين المفاتيح.
  4. في نافذة ملف تخزين المفاتيح الجديد، قدِّم المعلومات التالية عن ملف تخزين المفاتيح والمفتاح، كما هو موضح في الشكل 2.

    الشكل 2. أنشِئ مفتاح تحميل وملف تخزين جديدَين في "استوديو Android".

  5. ملف تخزين المفاتيح

    • مسار تخزين المفاتيح: اختَر موقع إنشاء ملف تخزين المفاتيح. أيضًا، يجب إضافة اسم الملف إلى نهاية مسار الموقع مع الإضافة .jks.
    • كلمة المرور: يمكنك إنشاء كلمة مرور آمنة وتأكيدها لملف تخزين المفاتيح.
  6. المفتاح

    • الاسم المستعار: أدخِل اسمًا تعريفيًا لمفتاحك.
    • كلمة المرور: عليك إنشاء كلمة مرور آمنة لمفتاحك وتأكيدها. هذا النمط يجب أن تكون هي نفسها كلمة مرور ملف تخزين المفاتيح. (يُرجى الرجوع إلى المشكلة المعروفة للحصول على مزيد من المعلومات)
    • الصلاحية (بالسنوات): حدِّد المدة الزمنية بالسنوات التي سيتم خلالها أن تكون صالحة. يجب أن يكون مفتاحك صالحًا لمدة 25 عامًا على الأقل، حتى تتمكن من التوقيع تحديثات تطبيقك بالمفتاح نفسه طوال عمر تطبيقك.
    • الشهادة: أدخِل بعض المعلومات عن نفسك من أجل الشهادة. لا يتم عرض هذه المعلومات في تطبيقك، ولكن يتم تضمينها. في شهادتك كجزء من حزمة APK.
  7. بعد إكمال النموذج، انقر على حسنًا.

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

توقيع تطبيقك باستخدام مفتاحك

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

لتوقيع تطبيقك باستخدام "استوديو Android"، يُرجى اتّباع الخطوات التالية:

  1. إذا لم يكن لديك حاليًا مربّع الحوار إنشاء حزمة موقَّعة أو APK افتح، وانقر على إنشاء > إنشاء حِزمة موقَّعة/APK
  2. في مربّع الحوار إنشاء حزمة موقَّعة أو APK، اختَر إما تطبيق Android. أضِف الحزمة أو APK وانقر على التالي.
  3. اختَر وحدة من القائمة المنسدلة.
  4. حدِّد المسار إلى ملف تخزين المفاتيح، والاسم المستعار لمفتاحك، وأدخِل كلمات المرور لكليهما. إذا لم تكن قد أعددت ملف تخزين مفاتيح التحميل انقر أولاً على إنشاء مفتاح تحميل وملف تخزين، ثم والرجوع لإكمال هذه الخطوة.

    الشكل 3. وقِّع تطبيقك باستخدام مفتاح التحميل.

  5. انقر على التالي.

  6. في النافذة التالية (الموضحة في الشكل 4)، حدد مجلد وجهة تطبيق موقَّع، اختَر نوع التصميم ثم اختَر نكهات المنتج إن أمكن.

  7. إذا كنت بصدد إنشاء ملف APK وتوقيعه، يجب تحديد التوقيع الإصدارات التي تريد أن يتيحها تطبيقك لمزيد من المعلومات، يمكنك الاطّلاع على مخططات توقيع التطبيق

  8. انقر على إنشاء.

الشكل 5. انقر على الرابط في النافذة المنبثقة لتحليل تطبيقك أو تحديد موقعه. حُزم.

بعد انتهاء "استوديو Android" من إنشاء تطبيقك الموقَّع، يمكنك تنفيذ أحد الإجراءَين التاليَين: تحديد موقع تطبيقك أو تحليله بالنقر على الخيار المناسب في كما هو موضح في الشكل 5.

أصبح بإمكانك الآن تفعيل ميزة "توقيع التطبيق" من Play وتحميله لتفعيل ميزة "توقيع التطبيق" من Play. إصدار تطبيقك. إذا كنت مبتدئًا في عملية نشر التطبيقات، قد تحتاج قراءة مقالة نظرة عامة حول إطلاق الميزة وإلا، انتقِل إلى الصفحة التي تتناول كيفية تحميل تطبيقك على Play Console.

استخدام ميزة "توقيع التطبيق" من Play

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

ضبط تطبيق جديد

لضبط عملية التوقيع على تطبيق لم يتم نشره بعد على Google Play، عليك اتّباع الخطوات التالية: والمتابعة على النحو التالي:

  1. يُرجى إنشاء مفتاح تحميل إذا لم يسبق لك إنشاء مفتاح تحميل. يجب توقيع تطبيقك باستخدام مفتاح التحميل هذا.
  2. يُرجى تسجيل الدخول إلى Play Console.
  3. اتبع الخطوات لإعداد طرح إصدارك لإنشاء إصدار جديد.
  4. بعد اختيار قناة الإصدار المحدود، اضبط ميزة "توقيع التطبيق" ضمن قسم التطبيق التوقيع على النحو التالي:
    • لتطلب من Google Play إنشاء مفتاح توقيع تطبيق لك واستخدامه للتوقيع تطبيقك، فلن تضطر إلى القيام بأي شيء. المفتاح الذي تستخدمه لتوقيع أول يصبح الإصدار مفتاح التحميل، لذا يجب استخدامه لتوقيع والإصدارات.
    • لاستخدام المفتاح نفسه المُستخدَم مع تطبيق آخر في حساب المطوّر، اختَر تغيير مفتاح توقيع التطبيق > استخدام المفتاح نفسه المستخدَم مع تطبيق آخر في هذا المفتاح حسابًا، واختَر تطبيقًا، ثم انقر على متابعة.
    • لتقديم مفتاح التوقيع الخاص بك لكي تستخدمه Google عند توقيع تطبيقك، يُرجى اتّباع الخطوات التالية: وحدد تغيير مفتاح توقيع التطبيق واختر أحد الخيارات تصدير التحميل التي تتيح لك تحميل مفتاح خاص ومفتاحه العام بأمان الشهادة.

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

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

تفعيل تطبيق حالي

إذا كنت بصدد تحديث تطبيق تم نشره من قبل على Google Play باستخدام مفتاح توقيع التطبيق الحالي، يمكنك تفعيل ميزة "توقيع التطبيق" من Play التالي:

  1. سجِّل الدخول إلى Play Console. انتقل إلى تطبيقك.
  2. في القائمة اليمنى، انقر على الإصدار > الإعداد > توقيع التطبيق
  3. راجِع بنود الخدمة وانقر على قبول، إذا كان ذلك منطبقًا.
  4. حدِّد أحد الخيارات التي تقدِّم أفضل وصف لمفتاح التوقيع الذي تريده تحميله إلى Google Play واتباع التعليمات التي تظهر. بالنسبة على سبيل المثال، إذا كنت تستخدم ملف تخزين مفاتيح Java لمفتاح التوقيع، فحدد حمِّل مفتاح توقيع تطبيق جديدًا من ملف تخزين مفاتيح Java واتّبع تعليمات لتنزيل أداة PEPK وتشغيلها، وتحميل الملف الذي تم إنشاؤه باستخدام مفتاحك المشفر.
  5. انقر على تسجيل.

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

إنشاء شهادة تحميل وتسجيلها

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

يمكنك الاطّلاع أدناه على الحالات التي ترى فيها خيار التسجيل. شهادة تحميل في Play Console:

  • عند نشر تطبيق جديد تم توقيعه باستخدام مفتاح توقيع وتفعيله ميزة "توقيع التطبيق" من Play
  • عندما تكون على وشك نشر تطبيق حالي سبق أن تمت الموافقة عليه في Play ميزة "توقيع التطبيق" ولكن يتم توقيعها باستخدام مفتاح التوقيع

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

إذا لم تكن قد قمت بذلك بالفعل، إنشاء مفتاح تحميل وملف تخزين مفاتيح

بعد إنشاء مفتاح التحميل وملف تخزين المفاتيح، يجب إنشاء ملف الشهادة من مفتاح التحميل الخاص بك باستخدام keytool، باستخدام الأمر التالي:

$ keytool -export -rfc
  -keystore your-upload-keystore.jks
  -alias upload-alias
  -file output_upload_certificate.pem

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

ترقية مفتاح توقيع التطبيق

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

في حال نشر تطبيقك على Google Play، يمكنك ترقية مفتاح التوقيع نشر تطبيقك من خلال Play Console، يُستخدَم مفتاحك الجديد لتوقيع عمليات التثبيت. وتحديثات التطبيق على نظام التشغيل Android 13 والإصدارات الأحدث، في حين أنّ مفتاح توقيع التطبيق القديم يُستخدم لتوقيع التحديثات لمستخدمي الإصدارات السابقة من Android.

لمزيد من المعلومات، يُرجى قراءة ترقية مفتاح توقيع التطبيق

إعادة ضبط مفتاح تحميل خاص مفقود أو مخترَق

إذا فقدت مفتاح التحميل الخاص أو تعرَّض مفتاحك الخاص للاختراق، يمكنك إنشاء تسمية جديدة طلب إعادة ضبط مفتاح التحميل في Play Console.

ضبط عملية التصميم لتوقيع تطبيقك تلقائيًا

في "استوديو Android"، يمكنك إعداد مشروعك لتوقيع إصدار الإصدار. تطبيقك تلقائيًا أثناء عملية التصميم من خلال إنشاء توقيع وتعيينه لنوع إصدار الإصدار. توقيع تتكون التهيئة من موقع ملف تخزين المفاتيح وكلمة مرور ملف تخزين المفاتيح والاسم المستعار للمفتاح وكلمة المرور الأساسية. لإنشاء إعدادات توقيع ومنحها للإصدار نوع الإصدار باستخدام Android Studio، أكمِل الخطوات التالية:

  1. في نافذة المشروع، انقر بزر الماوس الأيمن على تطبيقك وانقر على افتح "إعدادات الوحدة".
  2. في نافذة بنية المشروع، ضمن الوحدات في اللوحة اليمنى، انقر على الوحدة التي تريدها. لتوقيعها.
  3. انقر على علامة التبويب توقيع، ثم على إضافة.
  4. اختَر ملف تخزين المفاتيح، وأدخِل اسمًا لإعدادات التوقيع هذه. (حيث يمكنك إنشاء أكثر من واحد)، وإدخال المعلومات المطلوبة.

    الشكل 7. نافذة إنشاء توقيع جديد التكوين.

  5. انقر على علامة التبويب أنواع التصميم.
  6. انقر على الإصدار.
  7. ضمن إعدادات التوقيع، اختَر إعدادات التوقيع الذي قمتَ بإنشائه للتو.

    الشكل 8. اختيار إعدادات التوقيع في Android استوديو YouTube.

  8. انقر على موافق.

والآن في كل مرة تنشئ فيها نوع إصدار تطبيقك من خلال تحديد خيار ضمن إنشاء > إنشاء حِزم أو حِزم APK في "استوديو Android" سيوقّع IDE تطبيقك تلقائيًا باستخدام إعدادات التوقيع التي المحددة. يمكنك العثور على حِزمة APK أو حِزمة التطبيق المُوقَّعة في دليل build/outputs/ داخل دليل المشروع التي تقوم بإنشائها.

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

توقيع كل نكهة منتج بشكل مختلف

إذا كان تطبيقك يستخدم نكهات المنتجات وتريد توقيع كل نكهة بشكلٍ مختلف، يمكنك إنشاء إعدادات توقيع إضافية وتعيينها. حسب النكهة:

  1. في نافذة المشروع، انقر بزر الماوس الأيمن على تطبيقك وانقر على افتح "إعدادات الوحدة".
  2. في نافذة بنية المشروع، ضمن الوحدات في اللوحة اليمنى، انقر على الوحدة التي تريدها. لتوقيعها.
  3. انقر على علامة التبويب توقيع، ثم على إضافة.
  4. اختَر ملف تخزين المفاتيح، وأدخِل اسمًا لإعدادات التوقيع هذه. (حيث يمكنك إنشاء أكثر من واحد)، وإدخال المعلومات المطلوبة.

    الشكل 10. نافذة إنشاء توقيع جديد التكوين.

  5. كرِّر الخطوتين 3 و4 حسب الضرورة حتى تنتهي من إنشاء كل عناصر التوقيع الإعدادات.
  6. انقر على علامة التبويب النكهات.
  7. انقر على النكهة التي تريد إعدادها، ثم حدد النكهة المناسبة التوقيع من القائمة المنسدلة إعدادات التوقيع.

    الشكل 11. يمكنك ضبط إعدادات التوقيع حسب نكهة المنتج.

    كرِّر هذه الخطوات لضبط أي نكهات إضافية للمنتج.

  8. انقر على موافق.

ويمكنك أيضًا تحديد إعدادات التوقيع في ملفات إعداد Gradle. بالنسبة لمزيد من المعلومات، يمكنك الاطّلاع على ضبط إعدادات التوقيع.

تشغيل تقرير توقيع

للحصول على معلومات التوقيع لكل صيغة من صيغ التطبيق، شغِّل أداة Gradle مهمة واحدة (signingReport) في "استوديو Android":

  1. حدّد عرض > نوافذ الأدوات > Gradle لفتح نافذة أداة Gradle
  2. اختَر YourApp > المهام > android > SignReport لتشغيل التقرير

إدارة مفتاح التوقيع الخاص بك

في حال اختيار عدم تفعيل ميزة "توقيع التطبيق" من Play (فقط للتطبيقات التي يتم إنشاؤها قبل آب (أغسطس) 2021)، يمكنك إدارة مفتاح توقيع التطبيق وملف تخزين المفاتيح الخاصَّين بك. أنت مسؤول عن تأمين المفتاح وملف تخزين المفاتيح. بالإضافة إلى ذلك، لن يتوافق تطبيقك مع تنسيق "مجموعة حزمات تطبيق Android" عرض الميزات في Play وعرض المواد في Play

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

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

الشكل 12. توقيع تطبيق عند إدارة مفتاح توقيع تطبيقك

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

اعتبارات التوقيع

يجب توقيع تطبيقك باستخدام الشهادة نفسها خلال وعمره. وهناك عدة أسباب لوجوب إجراء ذلك:

  • ترقية التطبيق: عندما يثبِّت النظام تحديثًا لأحد التطبيقات، فإنه تقارن الشهادات في الإصدار الجديد بالشهادات الحالية . يسمح النظام بالتحديث في حال تطابق الشهادات. إذا وقّعت على إصدار جديد بشهادة مختلفة، يجب تعيين حزمة مختلفة اسم التطبيق - في هذه الحالة، يثبّت المستخدم الإصدار الجديد على أنه تطبيق جديد.
  • نمط التطبيق: يسمح Android بتشغيل حِزم APK الموقَّعة باستخدام الشهادة نفسها. في نفس العملية، إذا طلبت التطبيقات ذلك، ولذلك يعاملها النظام تطبيقًا واحدًا. بهذه الطريقة، يمكنك نشر التطبيق في وحدات، ليتمكّن المستخدمون من تحديث التطبيق. كل وحدة من الوحدات على حدة.
  • مشاركة الرموز أو البيانات من خلال الأذونات: يوفّر Android ميزات تستند إلى التوقيع فرض الأذونات، ليتمكّن أحد التطبيقات من عرض وظائفه على تطبيق آخر التي تم توقيعها باستخدام شهادة محددة. من خلال توقيع عدة حِزم APK باستخدام الشهادة نفسها واستخدام عمليات التحقق من الأذونات المستندة إلى التوقيعات، فيمكن لتطبيقاتك مشاركة الرمز والبيانات بطريقة آمنة.

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

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

الحفاظ على أمان مفتاحك

إذا اخترت إدارة مفتاح توقيع التطبيق وملف تخزين المفاتيح وتأمينهما بنفسك (بدلاً من الاشتراك في ميزة "توقيع التطبيق" من Play)، وتأمين تطبيقك مفتاح التوقيع أمر بالغ الأهمية الأهمية، سواء بالنسبة لك أو للمستخدم. إذا سمحت لشخص آخر باستخدام مفتاحك، أو إذا تركت ملف تخزين المفاتيح وكلمات المرور في مكان غير آمن بحيث والجهة الخارجية من العثور عليها واستخدامها، وهوية التأليف الخاصة بك، والثقة تعرض المستخدم للاختراق.

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

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

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

  • اختَر كلمات مرور قوية لتخزين المفاتيح والمفتاح.
  • لا تمنح أي شخص مفتاحك الخاص أو تُبرره، ولا تسمح لأي شخص يعرف الأشخاص كلمات مرور ملف تخزين المفاتيح وكلمات المرور الرئيسية.
  • احتفِظ بملف تخزين المفاتيح الذي يحتوي على مفتاحك الخاص في مكان آمن وموثوق به.

بشكل عام، إذا كنت تتبع احتياطات المنطق السليم عند إنشاء تخزين مفتاحك، سيظل آمنًا.

إزالة معلومات التوقيع من ملفات التصميم

عند إنشاء إعداد توقيع، يضيف "استوديو Android" توقيعك المعلومات بتنسيق نص عادي إلى ملفات build.gradle في الوحدة. في حال حذف كنت تعمل مع فريق أو تفتح مصدر التعليمات البرمجية، فيجب عليك نقل المعلومات الحساسة من ملفات الإصدار بحيث لا يمكن الوصول إليها بسهولة للآخرين. لإجراء ذلك، عليك إنشاء ملف مواقع منفصل لتخزينه. معلومات آمنة ونشير إلى ذلك الملف في ملفات الإصدار على النحو التالي:

  1. أنشِئ إعدادات توقيع، وخصِّصها لنوع واحد أو أكثر من أنواع الإصدارات. تفترض هذه التعليمات أنك ضبطت إعدادات توقيع واحدة. لنوع إصدار الإصدار لديك، على النحو الموضَّح في ضبط في عملية التصميم لتوقيع تطبيقك تلقائيًا أعلاه.
  2. أنشئ ملفًا باسم "keystore.properties" في الجذر. دليل مشروعك. يجب أن يحتوي هذا الملف على معلومات التوقيع، على النحو التالي:
    storePassword=myStorePassword
    keyPassword=mykeyPassword
    keyAlias=myKeyAlias
    storeFile=myStoreFileLocation
    
  3. في ملف build.gradle الخاص بالوحدة، أضِف الرمز لتحميل ملف واحد (keystore.properties) قبل android {} حظر.

    Groovy

    ...
    
    // Create a variable called keystorePropertiesFile, and initialize it to your
    // keystore.properties file, in the rootProject folder.
    def keystorePropertiesFile = rootProject.file("keystore.properties")
    
    // Initialize a new Properties() object called keystoreProperties.
    def keystoreProperties = new Properties()
    
    // Load your keystore.properties file into the keystoreProperties object.
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
    
    android {
        ...
    }
    

    Kotlin

    ...
    import java.util.Properties
    import java.io.FileInputStream
    
    // Create a variable called keystorePropertiesFile, and initialize it to your
    // keystore.properties file, in the rootProject folder.
    val keystorePropertiesFile = rootProject.file("keystore.properties")
    
    // Initialize a new Properties() object called keystoreProperties.
    val keystoreProperties = Properties()
    
    // Load your keystore.properties file into the keystoreProperties object.
    keystoreProperties.load(FileInputStream(keystorePropertiesFile))
    
    android {
        ...
    }
    

    ملاحظة: يمكنك اختيار تخزين keystore.properties في موقع آخر (على سبيل المثال، في مجلد الوحدة بدلاً من المجلد الجذر للمشروع أو في خادم الإصدار إذا كنت تستخدم أداة تكامل مستمر). ضِمن في هذه الحالة، يجب تعديل الرمز البرمجي الوارد أعلاه لتهيئة هذه الحالة بشكلٍ صحيح keystorePropertiesFile باستخدام القيمة الفعلية موقع ملف keystore.properties

  4. يمكنك الرجوع إلى المواقع الإلكترونية المخزَّنة في keystoreProperties. باستخدام الصيغة keystoreProperties['propertyName']. عدِّل كتلة signingConfigs من الوحدة. ملف build.gradle للإشارة إلى معلومات التوقيع المخزّنة فيه keystoreProperties باستخدام هذه البنية.

    Groovy

    android {
        signingConfigs {
            config {
                keyAlias keystoreProperties['keyAlias']
                keyPassword keystoreProperties['keyPassword']
                storeFile file(keystoreProperties['storeFile'])
                storePassword keystoreProperties['storePassword']
            }
        }
        ...
      }

    Kotlin

    android {
        signingConfigs {
            create("config") {
                keyAlias = keystoreProperties["keyAlias"] as String
                keyPassword = keystoreProperties["keyPassword"] as String
                storeFile = file(keystoreProperties["storeFile"] as String)
                storePassword = keystoreProperties["storePassword"] as String
            }
        }
        ...
      }
  5. افتح نافذة أداة إنشاء صيغ وتأكَّد من أنّ تم اختيار نوع إصدار الإصدار.
  6. حدد خيارًا ضمن إنشاء > إنشاء حِزم أو حِزم APK المطلوب إنشاؤها حِزمة APK أو حِزمة تطبيق خاصة بإصدار الإصدار من المفترض أن يظهر لك ناتج الإصدار دليل build/outputs/ للوحدة الخاصة بك.

بما أنّ ملفات الإصدار لم تعُد تحتوي على معلومات حسّاسة، يمكنك الآن تضمينها في التحكم في المصدر أو تحميلها إلى قاعدة رموز مشتركة. التأكد من للحفاظ على أمان ملف keystore.properties. وقد يشمل ذلك ما يلي: وإزالته من نظام التحكم في المصدر.