تكرار السؤال: …
الإجابة المختصرة
هي دوال برمجية بلغة JavaScript/TypeScript تنفذ أثناء npx expo prebuild لتعديل ملفات البناء الأصلية (مثل Info.plist و AndroidManifest.xml و build.gradle) تلقائياً دون لمسها يدوياً.
الشرح
تسمح الـ Config Plugins لأي مكتبة خارجية بنقل إعداداتها الأصلية إلى ملف app.json أو app.config.js. يمكن للمطور كتابة Plugin مخصص لإضافة أذونات، أو تعديل إعدادات التجميع، أو حقن أكواد في كود البداية (AppDelegate/MainActivity) مع ضمان بقاء الكود نقياً وخالياً من الأخطاء البشرية.
مثال بالكود
// مثال Plugin مخصص لتعديل Info.plist برمجياً:
const { withInfoPlist } = require('@expo/config-plugins');
const withCustomSetting = (config) => {
return withInfoPlist(config, (config) => {
config.modResults.NSMicrophoneUsageDescription = "نحتاج الميكروفون لتسجيل الرسائل الصوتية";
return config;
});
};
module.exports = withCustomSetting;أخطاء شائعة
- محاولة كتابة إضافات Config Plugins معقدة تعتمد على تعديل نصوص عشوائية عبر Regex بدلاً من استخدام الـ Modifiers الهيكلية الرسمية.
أسئلة متابعة
- ما هي معمارية Expo الحديثة وما هو مفهوم Continuous Native Generation (CNG)؟
- ما هي معايير واختبارات القبول الصارمة للـ App Clips (iOS) و Instant Apps (Android) في Expo؟