تحضير تطبيقك للإصدار

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

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

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

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

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

توضح كيف تتناسب عملية الإعداد مع عملية التطوير

الشكل 1. يعد التحضير للإصدار مهمة تطوير مطلوبة وهي الخطوة الأولى في عملية النشر.

المهام استعدادًا للإصدار

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

تعرض المهام الخمس التي تؤديها لإعداد تطبيقك للإصدار

الشكل 2. هناك خمس مهام رئيسية لإعداد تطبيقك للإصدار.

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

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

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

جمع المواد والموارد

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

مفاتيح التشفير

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

لمعرفة المزيد من المعلومات عن متطلبات الشهادة، راجِع توقيع تطبيقك.

ملاحظة مهمة: يجب توقيع تطبيقك باستخدام مفتاح تشفير تنتهي صلاحيته بعد 22 تشرين الأول (أكتوبر) 2033.

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

رمز التطبيق

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

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

اتفاقية ترخيص المستخدم

ننصحك بإعداد اتفاقية ترخيص المستخدم النهائي (EULA) لتطبيقك. يمكن أن تساعد اتفاقية ترخيص المستخدم النهائي في حماية شخصك ومؤسستك والملكية الفكرية، وننصحك بتوفيرها في تطبيقك.

مواد متنوعة

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

ضبط إعدادات تطبيقك للإصدار

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

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

اختيار رقم تعريف مناسب للتطبيق

تأكّد من اختيار رقم تعريف تطبيق يكون مناسبًا طوال عمر تطبيقك. ولا يمكنك تغيير معرّف التطبيق بعد توزيعه على المستخدمين. لضبطها، استخدِم السمة applicationId في ملف build.gradle أو build.gradle.kts على مستوى الوحدة. لمعرفة مزيد من المعلومات، يمكنك الاطّلاع على إعداد رقم تعريف التطبيق.

إيقاف تصحيح الأخطاء

لتحديد ما إذا كانت حزمة APK قابلة للتصحيح أم لا، استخدِم العلامة debuggable لتطبيق Groovy أو العلامة isDebuggable للنص البرمجي في Kotlin:

Kotlin

  android {
    ...
    buildTypes {
      release {
        isDebuggable = false
        ...
      }
      debug {
        isDebuggable = true
        ...
      }
    }
    ...
  }
  

رائع

  android {
    ...
    buildTypes {
      release {
        debuggable false
        ...
      }
      debug {
        debuggable true
        ...
      }
    }
    ...
  }

تفعيل وضبط تصغير التطبيقات

يمكن برمجة العديد من التحسينات التالية من خلال تفعيل تقليص إصدار إصدارك. على سبيل المثال، يمكنك إضافة قواعد ProGuard لإزالة عبارات السجل، وسيحدد جهاز تقليص الرموز والموارد غير المستخدمة ويزيلها. يمكن لـ تقليص حجم استبدال أسماء الفئات والمتغيرات بأسماء أقصر لتقليل حجم DEX بشكل أكبر.

إيقاف تسجيل الأخطاء

عليك إيقاف التسجيل قبل إنشاء تطبيقك للإصدار. يمكنك إيقاف تسجيل الدخول عن طريق إزالة طلبات البيانات من طُرق Log في ملفاتك المصدر. أزِل أيضًا أي ملفات سجلّ أو ملفات اختبار ثابتة تم إنشاؤها في مشروعك.

احرص أيضًا على إزالة جميع استدعاءات تتبُّع Debug التي أضفتها إلى الرمز، مثل استدعاءات طريقتَي startMethodTracing() وstopMethodTracing().

ملاحظة مهمة: احرص على إيقاف تصحيح الأخطاء لتطبيقك في حال استخدام WebView لعرض المحتوى المدفوع أو في حال استخدام واجهات JavaScript، لأنّ تصحيح الأخطاء يتيح للمستخدمين إدخال نصوص برمجية واستخراج المحتوى باستخدام "أدوات مطوري البرامج في Chrome". لإيقاف تصحيح الأخطاء، استخدِم الطريقة WebView.setWebContentsDebuggingEnabled().

تنظيف أدلة مشروعك

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

  • راجِع محتوى أدلّة cpp/ وlib/ وsrc/. يجب أن يحتوي دليل cpp/ على ملفات المصدر المرتبطة بمنصة Android NDK فقط، مثل ملفات المصدر C أو C++ أو ملفات العناوين أو ملفات إنشاء الملفات. يجب أن يحتوي دليل lib/ على ملفات مكتبة تابعة لجهات خارجية أو ملفات مكتبة خاصة فقط، بما في ذلك المكتبات المشتركة والثابتة التي تم إنشاؤها مسبقًا. يجب أن يحتوي دليل src/ على الملفات المصدر لتطبيقك فقط (ملفات Java وKotlin وAIDL). يجب ألا يحتوي دليل src/ على أي ملفات JAR.
  • افحص مشروعك بحثًا عن ملفات بيانات خاصة أو خاصة لا يستخدمها تطبيقك وأزِلها. على سبيل المثال، ابحث في دليل res/ لمشروعك عن الملفات القديمة القابلة للرسم وملفات التنسيق وملفات القيم التي لم تعُد تستخدمها، ثم احذفها.
  • تحقَّق من دليل lib/ بحثًا عن مكتبات الاختبار وأزِلها إذا لم تعُد يستخدمها تطبيقك.
  • يُرجى مراجعة محتوى دليل assets/ ودليل res/raw/ بحثًا عن ملفات مواد العرض الأولية والملفات الثابتة التي تحتاج إلى تعديلها أو إزالتها قبل إصدارها.

مراجعة وتعديل إعدادات البيان وإصدار Gradle

تحقَّق من ضبط عناصر البيان التالية وملفات الإصدار بشكل صحيح:

  • عنصر <uses-permission>

    عليك تحديد الأذونات ذات الصلة والمطلوبة لتطبيقك فقط.

  • السمتان android:icon وandroid:label

    ويجب تحديد قيم لهذه السمات التي تقع في العنصر <application>.

  • versionCode وversionName موقع

    وننصحك بتحديد قيم لهذه السمات، التي تكون في ملف build.gradle أو build.gradle.kts على مستوى وحدة التطبيق. لمزيد من المعلومات، اطّلِع على إصدار تطبيقك.

هناك العديد من عناصر ملفات الإصدار الإضافية التي يمكنك تعيينها إذا كنت ستطرح تطبيقك على Google Play. على سبيل المثال، السمتان minSdk وtargetSdk اللتان يمكن العثور عليهما في ملف build.gradle أو build.gradle.kts على مستوى وحدة التطبيق. للحصول على مزيد من المعلومات حول هذه الإعدادات وإعدادات Google Play الأخرى، يمكنك الاطّلاع على مقالة الفلاتر على Google Play.

حلّ المشاكل المتعلّقة بالتوافق

يوفر Android العديد من الأدوات والتقنيات التي تجعل تطبيقك متوافقًا مع مجموعة واسعة من الأجهزة. لإتاحة تطبيقك لأكبر عدد من المستخدمين، ننصحك باتّباع الخطوات التالية:

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

تحديث عناوين URL للخوادم والخدمات

إذا كان تطبيقك يصل إلى خوادم أو خدمات بعيدة، تأكَّد من استخدام عنوان URL أو مسار الإنتاج للخادم أو الخدمة وليس عنوان URL تجريبيًا أو مسارًا تجريبيًا.

تنفيذ التراخيص في Google Play

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

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

تطوير تطبيقك من أجل طرحه

بعد الانتهاء من إعداد تطبيقك، يمكنك إنشائه في ملف APK جاهز للإصدار وقد تم توقيعه وتحسينه. يتضمن JDK أدوات توقيع ملف APK (Keytool وJarsigner)، ويتضمن Android SDK أدوات لتجميع ملف APK وتحسينه. إذا كنت تستخدم Android Studio أو كنت تستخدم نظام إصدار Gradle من سطر الأوامر، يمكنك أتمتة عملية التصميم بالكامل. لمزيد من المعلومات حول ضبط إصدارات Gradle، يمكنك الاطّلاع على ضبط خيارات الإصدار.

إذا كنت تستخدم نظام دمج مستمر، يمكنك ضبط مهمة لتشغيل عملية الإصدار تلقائيًا. لا يقتصر ذلك على إنشاء حزمة APK أو تنسيق AAB يمكنك أيضًا ضبطه لتحميل أدوات الإصدار تلقائيًا إلى Play Console.

الإنشاء باستخدام Android Studio

يمكنك استخدام نظام إصدار Gradle المدمَج مع "استوديو Android" لإنشاء ملف APK جاهز للإصدار ومُوقَّع باستخدام مفتاحك الخاص والمحسَّن. للاطّلاع على كيفية إعداد الإصدارات وتشغيلها من "استوديو Android"، يمكنك مراجعة إنشاء تطبيقك وتشغيله.

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

إعداد الخوادم والموارد الخارجية

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

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

اختبار تطبيقك من أجل إصداره

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

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