شارك المقالة

كيف تتخلص من مشاكل التخزين عند حذف التطبيق؟ الحل النهائي على Android وiOS لمطوري Flutter

الحل النهائي لمشاكل التخزين: كيف تبدأ تطبيقك من الصفر بعد الحذف على Android وiOS

عند تطوير التطبيقات باستخدام Flutter، قد تواجه مشكلة شائعة جدًا: عند حذف التطبيق من الهاتف وإعادة تثبيته، تجد أن بعض البيانات ما زالت موجودة! هذا الأمر قد يُسبب مشاكل كبيرة في بعض أنواع التطبيقات مثل:

  • – التطبيقات المالية أو البنكية
  • – التطبيقات التي تعتمد على حساب مستخدم واحد
  • – التطبيقات التي تحتوي على بيانات حساسة


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


تعطيل النسخ الاحتياطي في Android

نظام Android يسمح لك بسهولة بمنع النسخ الاحتياطي لبيانات التطبيق من خلال ملف `AndroidManifest.xml`.


🔧 الخطوات:

افتح ملف `AndroidManifest.xml` وأضف السطرين التاليين داخل وسم `<application>`:


android:allowBackup=”false”

android:fullBackupContent=”false”


بهذه الطريقة، تمنع Android من أخذ نسخة احتياطية من بيانات التطبيق على Google Drive أو أي خدمة أخرى. وبالتالي، عند حذف التطبيق وإعادة تثبيته، سيبدأ التطبيق من جديد بدون أي بيانات قديمة.


مسح التخزين الآمن في iOS عند أول تشغيل

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


 أضف الكود التالي داخل ملف `main.dart` أو في الصفحة التي تُفتح أولًا بعد التشغيل:

try {
const String key = "isFirstRun";
final SharedPreferences prefs = await SharedPreferences.getInstance();
const storage = FlutterSecureStorage();
final bool isFirstRun = prefs.getBool(key) ?? true;

if (isFirstRun) {
await storage.deleteAll();
prefs.clear();
await prefs.setBool(key, false);
}
} catch (e) {
Logger().e("Error clearing secure storage: $e");
}
– يتم التحقق من ما إذا كانت هذه أول مرة يتم فيها تشغيل التطبيق.
– إذا كانت كذلك، يتم مسح جميع البيانات من `FlutterSecureStorage` و `SharedPreferences`.
– بعد ذلك، يتم حفظ قيمة توضح أن التطبيق تم تشغيله من قبل، حتى لا يتم تنفيذ العملية مرة أخرى.

منع ملفات Hive من النسخ الاحتياطي على iOS

إذا كنت تستخدم Hive لتخزين البيانات، فانتبه لأن ملفات Hive تُخزن داخل مجلد `Documents` في iOS، وهذا المجلد يتم نسخه تلقائيًا إلى iCloud.

منع نسخ ملفات Hive إلى iCloud

if (Platform.isIOS) {
final dir = await getApplicationDocumentsDirectory();
final hiveDir = Directory(dir.path);

if (await hiveDir.exists()) {
try {
await Process.run('xattr', [
'-w',
'com.apple.MobileBackup',
'1',
hiveDir.path,
]);
} catch (e) {
Logger().e("Error setting xattr for iOS: $e");
}
}
}

هذا الكود يُخبر نظام iOS بعدم نسخ مجلد Hive إلى iCloud. وبالتالي، إذا تم حذف التطبيق، ستُحذف جميع البيانات معه نهائيًا.

مقاله اخري قد تفيدك : كيفيه تفعيل ميزه AutoFill في مشروعك Flutter

انقر للانتقال للمقاله
شاهد أيضًا
مقالات ذات صلة
شرح كيفية اضافة بصمة جهازك لتطبيقك وامكانية فتح التطبيق بالبصمه فلاتر | Add FingerPrint flutter easy
شرح كيفية اضافة بصمة جهازك لتطبيقك وامكانية فتح التطبيق بالبصمه فلاتر | Add FingerPrint flutter easy

شرح كيفية اضافة بصمة جهازك  لتطبيقك وامكانية فتح التطبيق بالبصمه فلاترالبصمة اصبحت الان موضه شائعه…

امثلة باستخدام لغة البايثون تحسن من مستواك بشكل كبير في المجال

امثلة باستخدام لغة البايثون تحسن من مستواك بشكل كبير في المجال تعد لغه البايثون لغه…

كيفية ادارج صور svg داخل تطبيقك في برنامج اندرويد ستوديو Android Studio

 لماذا يفضل إستخدام الصور Svg في تصميمك داخل الأندرويد استوديو ؟بسم الله الرحمن الرحيم ,…

🚫 مانع الإعلانات مفعل

يجب إيقاف مانع الإعلانات لاستكمال تصفح الموقع