توقيع التطبيق في Flutter: فهم Keystore وCertificates خطوة بخطوةتوقيع التطبيق في Flutter: فهم Keystore وCertificates خطوة بخطوة

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

في هذا المقال، سنغوص في مفهوم توقيع التطبيقات (App Signing) داخل Flutter — ما هو، ولماذا هو مهم، وكيف تنفّذه بشكل صحيح على Android و iOS.


أولًا: ما هو توقيع التطبيق ولماذا نحتاجه؟

تخيل أن لديك رسالة سرّية تريد إرسالها، وتريد أن يعرف المستلم أنها منك حقًا ولم يعبث بها أحد.
هنا يأتي دور التوقيع الرقمي (Digital Signature).

في حالة التطبيقات:

  • Android يستخدم ملف Keystore لتوقيع حزمة التطبيق.
  • iOS يستخدم Certificates و Profiles للتأكد من هوية المطور.

ببساطة:

التوقيع هو شهادة تثبت أن التطبيق صُمّم ورفع من طرفك، وليس من جهة مجهولة.


ثانيًا: توقيع تطبيقات Android (Keystore)

🪪 1. إنشاء Keystore جديد

افتح الطرفية داخل مشروعك واكتب:

keytool -genkey -v -keystore my-key.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias my-key

سيُطلب منك:

  • الاسم الكامل
  • المؤسسة
  • المدينة
  • الدولة
  • كلمة مرور keystore

بعدها ستحصل على ملف my-key.keystore — وهو ملف التوقيع الأساسي لتطبيقك.
احفظه في المسار:

android/app/

2. إعداد ملف key.properties

أنشئ ملفًا داخل مجلد android/ باسم key.properties يحتوي على:

storePassword=كلمة_مرور_الملف
keyPassword=كلمة_مرور_المفتاح
keyAlias=my-key
storeFile=app/my-key.keystore

3. تعديل build.gradle لربط المفتاح

افتح الملف:

android/app/build.gradle

وأضف التالي داخل القسم android { ... }:

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file("key.properties")
if (keystorePropertiesFile.exists()) {
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

signingConfigs {
    release {
        keyAlias keystoreProperties['keyAlias']
        keyPassword keystoreProperties['keyPassword']
        storeFile file(keystoreProperties['storeFile'])
        storePassword keystoreProperties['storePassword']
    }
}

buildTypes {
    release {
        signingConfig signingConfigs.release
        minifyEnabled true
        shrinkResources true
    }
}

4. بناء التطبيق الموقّع

الآن يمكنك بناء إصدار موقّع رسميًا عبر:

flutter build appbundle

سيقوم Flutter بتوقيع التطبيق باستخدام keystore تلقائيًا.
النتيجة: ملف .aab جاهز للرفع إلى Google Play.

💡 لا تشارك ملف keystore أو كلمته مع أي شخص.
فقد يؤدي ضياعه إلى استحالة رفع التحديثات المستقبلية!


ثالثًا: توقيع تطبيقات iOS (Certificates & Profiles)

على نظام iOS، الأمر يتم عبر شهادات رقمية تصدرها Apple نفسها.

1️⃣ إنشاء حساب مطور Apple

سجّل في Apple Developer (بتكلفة 99 دولار سنويًا).

2️⃣ إنشاء Certificate

من لوحة التحكم:

  • اختر Certificates, Identifiers & Profiles
  • ثم أنشئ شهادة من نوع iOS Distribution
  • وقم بتحميل ملف .cer الناتج

3️⃣ إنشاء Provisioning Profile

  • اربط الشهادة بالتطبيق عبر معرفه (Bundle ID)
  • قم بتحميل الملف الناتج .mobileprovision

4️⃣ إعداد Xcode للتوقيع

افتح مشروع Flutter في Xcode:

open ios/Runner.xcworkspace

ثم:

  • من قسم Signing & Capabilities
  • فعّل Automatically manage signing
  • اختر حسابك المطور

سيقوم Xcode تلقائيًا بربط الملفات المطلوبة بالتطبيق.


رابعًا: الفرق بين التوقيع أثناء التطوير والإصدار

النوعالغرضالمفاتيح المستخدمة
Debugللتجربة فقط على الأجهزة المحليةمفتاح مؤقت (debug.keystore)
Releaseللنشر في المتاجر الرسميةمفتاحك الخاص (release.keystore أو Certificate)

خامسًا: التوقيع التلقائي في Flutter

بدءًا من إصدارات Flutter الحديثة، يمكنك إدارة التوقيع بسهولة دون الدخول في تعقيدات Xcode أو Gradle.
بمجرد إعداد key.properties أو ربط حساب Apple Developer، فإن Flutter يتكفل بالباقي أثناء عملية:

flutter build appbundle
flutter build ipa

سادسًا: ماذا يحدث إذا فقدت مفتاح التوقيع؟

كارثة صغيرة 😅
إذا فقدت keystore أو certificate:

  • لن يمكنك تحديث التطبيق على المتجر.
  • يجب رفعه كـ تطبيق جديد بعنوان جديد.

لذا احفظ نسخًا احتياطية من مفاتيحك في مكان آمن (مثل Google Drive المشفّر أو GitHub Secrets).


الخلاصة

توقيع التطبيق هو مرحلة الأمان والثقة قبل النشر.
هو بمثابة توقيعك الشخصي الذي يخبر Google وApple:

“أنا المطور الشرعي لهذا التطبيق.”

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

وفي المقال القادم من السلسلة، سنتناول المرحلة التالية:
رفع التطبيقات إلى المتاجر (App Stores) — كيف يتم، ما المتطلبات، وكيف تجهز وصفك وصورك ليجذب المستخدمين فورًا 🚀


By احمد علي

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

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *