قبل النشر: قائمة التحقّق
- [ ] التطبيق يعمل على 3+ أجهزة حقيقية
- [ ] أيقونة التطبيق جاهزة (1024×1024)
- [ ] اسم التطبيق النهائي محدّد
- [ ] bundle identifier فريد (مثل
com.mycompany.myapp) - [ ] screenshots جاهزة لكل منصّة
- [ ] سياسة خصوصية متوفّرة على URL
- [ ] الإصدار (version) محدّد في
pubspec.yaml
Android: النشر على Google Play
1. إعداد التوقيع
أنشئ مفتاح توقيع:
keytool -genkey -v -keystore ~/upload-keystore.jks \
-keyalg RSA -keysize 2048 -validity 10000 -alias uploadأنشئ android/key.properties:
storePassword=YOUR_PASSWORD
keyPassword=YOUR_PASSWORD
keyAlias=upload
storeFile=/path/to/upload-keystore.jksلا تضع هذا الملف في Git — أضفه لـ .gitignore.
2. تحديث android/app/build.gradle
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}3. بناء AAB (Android App Bundle)
flutter build appbundle --releaseالملف في build/app/outputs/bundle/release/app-release.aab.
4. رفع على Google Play Console
- سجّل في Google Play Console ($25 رسم لمرّة واحدة)
- Create app → املأ التفاصيل
- Production → Create new release
- ارفع الـ AAB
- املأ:
- متجر الصور (screenshots، أيقونة، feature graphic)
- Content rating
- Data safety
- Privacy policy URL
- Review و Publish
مدّة المراجعة
أول إصدار: 3-7 أيام. التحديثات: 1-3 أيام.
iOS: النشر على App Store
المتطلّبات
- جهاز Mac
- Xcode أحدث إصدار
- Apple Developer Account ($99/سنة)
1. فتح المشروع في Xcode
open ios/Runner.xcworkspace2. إعدادات التطبيق
في Xcode:
- Runner → Signing & Capabilities → Team: حدّد فريقك
- Bundle Identifier: unique
- Deployment Info → iOS 12.0+
3. بناء Archive
flutter build ios --releaseثم من Xcode: Product → Archive
4. رفع على App Store Connect
في نافذة Archives:
- Distribute App → App Store Connect → Upload
بعد الرفع، اذهب لـ App Store Connect:
- My Apps → + → Add app
- املأ البيانات + ارفع screenshots + أيقونة
- Submit for Review
مدّة مراجعة Apple
1-7 أيام عادةً. أكثر صرامة من Google — رفضات شائعة:
- نقص معلومات الخصوصية
- crashes في الاختبار
- محتوى مكرّر بدون قيمة مضافة
تحديث التطبيق
بعد أول نشر:
# pubspec.yaml
version: 1.1.0+21.1.0الـ version name (مرئي للمستخدم)+2الـ version code (رقم داخلي — يزيد مع كل إصدار)
ثم build ورفع جديد.
CI/CD: النشر الآلي
Codemagic و Fastlane يؤتمتان العملية. مثال workflow مع Codemagic:
workflows:
android-release:
name: Android Release
environment:
groups: [keystore]
scripts:
- flutter pub get
- flutter build appbundle --release
publishing:
google_play:
credentials: $GCLOUD_SERVICE_ACCOUNT_CREDENTIALS
track: productionالأخطاء الشائعة
- "You uploaded an APK that is not zip aligned": استخدم appbundle بدل apk
- "Signature does not match": فقدت keystore — لا يمكن تحديث التطبيق. احفظ keystore في مكانين آمنين
- "Missing Info.plist key": أضف المفاتيح المطلوبة لاستخدام الكاميرا/الموقع
الأسئلة الشائعة
كم يكلّف نشر التطبيق؟
- Google Play: $25 لمرّة واحدة
- App Store: $99/سنة
هل يمكن نشر التطبيق بدون شركة؟
نعم — Google Play يسمح لحسابات فردية. Apple كذلك لكن اسمك الحقيقي يظهر.
هل أستخدم Expo EAS لـ Flutter؟
لا — Expo خاص بـ React Native. لـ Flutter استخدم Codemagic أو Fastlane.
مقالات ذات صلة
الفرق بين Flutter و React Native: أيّهما تختار في 2026؟
مقارنة عميقة بين أشهر إطارَي عمل لتطوير الجوّال — الأداء، المجتمع، سوق العمل، وتجربة المطوّر.
State Management في Flutter: Provider، Riverpod، BLoC
إدارة الحالة أكبر تحدٍّ في تطبيقات Flutter. قارن بين أشهر 3 حلول واختر الأنسب لمشروعك.
بناء أول تطبيق React Native: دليل خطوة بخطوة
React Native يسمح لك ببناء تطبيقات native للـ iOS و Android باستخدام React. ابدأ من الصفر.