اذهب إلى المحتوى

Flutter Dev

الأعضاء
  • المساهمات

    787
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    2

أجوبة بواسطة Flutter Dev

  1. كنت اشتغل على مشروع فلاتر في iOS ولكن فجاه صار تظهر معي هذا المشكلة مع محاولة تثبيت التطبيق لا  اعلم السبب او ما تغير ياليت اذا احد يعرف شو الحل يساعدنا

    Launching lib/Splash.dart on iPhone Rmsg in debug mode...
    Automatically signing iOS for device deployment using specified development team in Xcode project: ******
    Running pod install...
    CocoaPods' output:
    
          Preparing
    
        Analyzing dependencies
    
        Inspecting targets to integrate
          Using `ARCHS` setting to build architectures of target `Pods-Runner`: (``)
    
        Finding Podfile changes
          A admob_flutter
          A device_info
          A firebase_admob
          A flutter_local_notifications
          A fluttertoast
          - Flutter
          - cloud_firestore
          - firebase_analytics
          - firebase_auth
          - firebase_core
          - firebase_messaging
          - flutter_open_whatsapp
          - image_picker
          - path_provider
          - share
          - shared_preferences
          - url_launcher
    
        Fetching external sources
        -> Fetching podspec for `Flutter` from `Flutter`
        -> Fetching podspec for `admob_flutter` from `.symlinks/plugins/admob_flutter/ios`
        -> Fetching podspec for `cloud_firestore` from `.symlinks/plugins/cloud_firestore/ios`
        cloud_firestore: Using Firebase SDK version '7.3.0' defined in 'firebase_core'
        -> Fetching podspec for `device_info` from `.symlinks/plugins/device_info/ios`
        -> Fetching podspec for `firebase_admob` from `.symlinks/plugins/firebase_admob/ios`
        -> Fetching podspec for `firebase_analytics` from `.symlinks/plugins/firebase_analytics/ios`
        -> Fetching podspec for `firebase_auth` from `.symlinks/plugins/firebase_auth/ios`
        firebase_auth: Using Firebase SDK version '7.3.0' defined in 'firebase_core'
        -> Fetching podspec for `firebase_core` from `.symlinks/plugins/firebase_core/ios`
        firebase_core: Using Firebase SDK version '7.3.0' defined in 'firebase_core'
        -> Fetching podspec for `firebase_messaging` from `.symlinks/plugins/firebase_messaging/ios`
        -> Fetching podspec for `flutter_local_notifications` from `.symlinks/plugins/flutter_local_notifications/ios`
        -> Fetching podspec for `flutter_open_whatsapp` from `.symlinks/plugins/flutter_open_whatsapp/ios`
        -> Fetching podspec for `fluttertoast` from `.symlinks/plugins/fluttertoast/ios`
        -> Fetching podspec for `image_picker` from `.symlinks/plugins/image_picker/ios`
        -> Fetching podspec for `path_provider` from `.symlinks/plugins/path_provider/ios`
        -> Fetching podspec for `share` from `.symlinks/plugins/share/ios`
        -> Fetching podspec for `shared_preferences` from `.symlinks/plugins/shared_preferences/ios`
        -> Fetching podspec for `url_launcher` from `.symlinks/plugins/url_launcher/ios`
    
        Resolving dependencies of `Podfile`
          CDN: trunk Relative path: CocoaPods-version.yml exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: all_pods_versions_5_9_a.txt exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/5/9/a/Google-Mobile-Ads-SDK/8.1.0/Google-Mobile-Ads-SDK.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: all_pods_versions_0_3_5.txt exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/7.1.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.33.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/1.0.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/1.0.5/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/1.0.7/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/1.0.9/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/1.1.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/1.1.1/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/1.1.2/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/1.1.3/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/1.1.4/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/1.1.5/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/1.1.6/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/1.1.7/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/1.1.9/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/1.1.10/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/1.1.11/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/1.1.12/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/1.2.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/1.2.1/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/1.2.2/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/1.2.3/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/2.0.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/2.0.1/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/2.0.2/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/2.0.3/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/2.1.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/2.1.1/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/2.1.2/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/2.2.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/2.2.1/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/2.2.2/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/2.3.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/2.3.1/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/2.3.2/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/2.3.3/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/2.4.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/2.4.1/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/2.4.1.1/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/2.4.2/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/2.4.3/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/2.5.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/2.5.1/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/3.2.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/3.2.1/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/3.3.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/3.4.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/3.5.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/3.5.1/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/3.5.2/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/3.6.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/3.7.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/3.7.1/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/3.8.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/3.9.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/3.10.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/3.11.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/3.11.1/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/3.12.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/3.13.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/3.14.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/3.15.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/3.16.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/3.17.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/4.0.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/4.0.1/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/4.0.2/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/4.0.3/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/4.0.4/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/4.1.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/4.1.1/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/4.2.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/4.3.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/4.4.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/4.5.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/4.6.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/4.7.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/4.8.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/4.8.2/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/4.9.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/4.10.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/4.10.1/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/4.11.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/4.12.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/4.13.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/5.0.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/5.0.1/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/5.1.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/5.2.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/5.3.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/5.4.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/5.4.1/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/5.5.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/5.6.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/5.7.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/5.8.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/5.8.1/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/5.9.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/5.10.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/5.11.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/5.12.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/5.13.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/5.14.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/5.15.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/5.16.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/5.17.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/5.18.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/5.19.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/5.20.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/5.20.1/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/5.20.2/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.0.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.1.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.2.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.3.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.4.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.5.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.6.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.7.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.8.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.8.1/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.9.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.10.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.11.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.12.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.13.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.14.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.15.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.16.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.17.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.18.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.19.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.20.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.21.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.22.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.23.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.24.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.25.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.26.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.27.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.27.1/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.28.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.28.1/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.29.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.30.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.31.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.31.1/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.32.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.32.2/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.33.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.34.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/7.0.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/7.1.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.33.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.33.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: all_pods_versions_5_1_0.txt exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/5/1/0/Toast/4.0.0/Toast.podspec.json exists! Returning local because checking is only perfomed in repo update
          CDN: trunk Relative path: Specs/0/3/5/Firebase/6.33.0/Firebase.podspec.json exists! Returning local because checking is only perfomed in repo update
        [!] CocoaPods could not find compatible versions for pod "Firebase/Firestore":
          In snapshot (Podfile.lock):
            Firebase/Firestore (= 6.33.0, ~> 6.0)
    
          In Podfile:
            cloud_firestore (from `.symlinks/plugins/cloud_firestore/ios`) was resolved to 0.16.0-1, which depends on
              Firebase/Firestore (= 7.3.0)
    
        Specs satisfying the `Firebase/Firestore (= 6.33.0, ~> 6.0), Firebase/Firestore (= 7.3.0)` dependency were found, but they required a higher minimum deployment target.
    
        /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:328:in `raise_error_unless_state'
        /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:310:in `block in unwind_for_conflict'
        /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:308:in `tap'
        /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:308:in `unwind_for_conflict'
        /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:257:in `process_topmost_state'
        /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:182:in `resolve'
        /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolver.rb:43:in `resolve'
        /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/resolver.rb:94:in `resolve'
        /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/installer/analyzer.rb:1074:in `block in resolve_dependencies'
        /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/user_interface.rb:64:in `section'
        /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/installer/analyzer.rb:1072:in `resolve_dependencies'
        /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/installer/analyzer.rb:124:in `analyze'
        /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/installer.rb:414:in `analyze'
        /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/installer.rb:239:in `block in resolve_dependencies'
        /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/user_interface.rb:64:in `section'
        /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/installer.rb:238:in `resolve_dependencies'
        /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/installer.rb:160:in `install!'
        /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/command/install.rb:52:in `run'
        /Library/Ruby/Gems/2.6.0/gems/claide-1.0.3/lib/claide/command.rb:334:in `run'
        /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/command.rb:52:in `run'
        /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/bin/pod:55:in `<top (required)>'
        /usr/local/bin/pod:23:in `load'
        /usr/local/bin/pod:23:in `<main>'
    
    Error output from CocoaPods:
    
    
        [!] Automatically assigning platform `iOS` with version `12.0` on target `Runner` because no platform was specified. Please specify a platform for this target in your Podfile. See `https://guides.cocoapods.org/syntax/podfile.html#platform`.
    
    Exception: Error running pod install

     

  2. قمت بعمل كلاس منفصل لكلاس اعلانات RewardedVideoAd  من ادموب 

    بشكل التالي:

    import 'package:firebase_admob/firebase_admob.dart';
    
    
    import 'helper.dart';
    
    
    
    
    const String testDevice = '********';
    class AdsReward {
    
      static int  _coins=0;
    
      static RewardedVideoAd videoAd = RewardedVideoAd.instance;
    
      static void initialize() {
        FirebaseAdMob.instance.initialize(appId: AdManager.appId);
      }
    
      static MobileAdTargetingInfo targetingInfo = MobileAdTargetingInfo(
        testDevices: testDevice != null ? <String>[testDevice] : null,
        keywords: <String>['Game', 'Mario'],
        //contentUrl: 'https://flutter.io',
        //childDirected: true,
        nonPersonalizedAds: true,// Android emulators are considered test devices
      );
    
      static RewardedVideoAd _createRewardedVideoAd() {
    
    
        videoAd.load(adUnitId:AdManager.rewardedAdUnitId, targetingInfo: targetingInfo);
        RewardedVideoAd.instance.listener = (RewardedVideoAdEvent event, {String rewardType, int rewardAmount}) {
          if(event == RewardedVideoAdEvent.closed) {
            videoAd.load(adUnitId:AdManager.rewardedAdUnitId, targetingInfo: targetingInfo);
    
    
          }
        };
    
      }
    
      static void showRewardedVideoAd() {
        if (videoAd == null) videoAd = _createRewardedVideoAd();
    
        videoAd .show().catchError((e) =>
            print("error in showing ad: ${e.toString()}"));
    
      }
    
    
    }

    واقوم بستدعاه من الصفحة المستهدفة بشكل التالي :

     onPressed:  (){
    
                  AdsReward.showRewardedVideoAd();
    
    
              },

    ولكن اواجه مشكلة مع كل محاولة عرض للاعلان كالتالي:

    error in showing ad: PlatformException(ad_not_loaded, show failed for rewarded video, no ad was loaded, null, null)

    فيه احد يعرف سبب المشكلة وكيفية حلها لو تكرمتو

  3. بتاريخ 5 ساعات قال بلال زيادة:

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

    ايضا لا تقلق يمكنك الرجوع إلى إصدار فلاتر السابق إذا لا تريد العمل على إصدار فلاتر 2. 

    كما ويمكنك الرجوع إلى كل بكج على pub.dev و متابعة يبدو أن الكثير من البكجات قامت بتحديث إصداراتها لتناسب فلاتر 2.

    يمكنك الرجوع هنا و أختيار أي نسخة sdk ويمكنك استخدامها إذا كنت لا تريد فلاتر 2.

    اهلا بك عزيزي

    شاكر لك ردك الغالي

    لدي استفسار فقط لو تكرمت كيف ممكن ارجع الى الاصدار السابق؟

    بتاريخ منذ ساعة مضت قال Mohammad Issa:

    ك مبرمجين عادةً ما نتريث عندما تكون هناك تحديثات كبيرة ل بيئة عمل معينة 

    لذا انصحك ب الانتظار لمدة اسبوعين أو ثلاثة قبل التحديث ل نسخة Flutter 2  

    يمكنك التراجع عن التحديث والابقاء على الاصدار السابق ريثما تستقر النسخة وهذه نصيحتي لك 

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

    https://github.com/flutter/flutter/wiki/Flutter-Cherrypick-Process

    اهلا بك اخي

    شاكر لك افادتك تسلم

    لدي استفسار فقط لو تكرمت 

    كيف ممكن ارجع الى الاصدار السابق؟

  4. قمت بترقية فلاتر بالامس

    ولان اواجه بعض مشاكل التوافق لدى الحزم او الباكنج المستعمله من فلاتر 

     

    Because auto_direction >=0.0.4+1 depends on intl ^0.16.0 and every version of flutter_localizations from sdk depends on intl 0.17.0, auto_direction >=0.0.4+1 is incompatible with flutter_localizations from sdk.
    And because easy_localization >=2.1.0+1 depends on flutter_localizations any from sdk, auto_direction >=0.0.4+1 is incompatible with easy_localization >=2.1.0+1.
    So, because onefrist depends on both easy_localization ^2.3.2 and auto_direction ^0.0.4+1, version solving failed.
    pub finished with exit code 1
    Process finished with exit code 1

     

    name: example
    description: A new Flutter project.
    
    # The following line prevents the package from being accidentally published to
    # pub.dev using `pub publish`. This is preferred for private packages.
    publish_to: 'none' # Remove this line if you wish to publish to pub.dev
    
    # The following defines the version and build number for your application.
    # A version number is three numbers separated by dots, like 1.2.43
    # followed by an optional build number separated by a +.
    # Both the version and the builder number may be overridden in flutter
    # build by specifying --build-name and --build-number, respectively.
    # In Android, build-name is used as versionName while build-number used as versionCode.
    # Read more about Android versioning at https://developer.android.com/studio/publish/versioning
    # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
    # Read more about iOS versioning at
    # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
    version: 1.0.0+1
    
    environment:
      sdk: ">=2.7.0 <3.0.0"
    
    dependencies:
      enum_to_string: ^1.0.14
      flutter_local_notifications: ^4.0.1+1
      pull_to_refresh: ^1.6.1
      flutter_svg: ^0.18.1
      flutter_open_whatsapp: ^0.1.2
      http: ^0.12.0
      share: ^0.6.5
      url_launcher: "^3.0.2"
      image_picker: ^0.6.7+4
      provider: 3.0.0+1
      admob_flutter: ^1.0.1
      flutter_speed_dial: ^1.0.9
      shared_preferences: ^0.5.6+2
      path_provider: "^0.4.1"
      image: "^2.0.4"
      flutter:
        sdk: flutter
      splashscreen: ^1.3.5
      firebase_admob: ^0.9.0+10
      easy_localization: ^2.3.2
      unicorndial: "^1.1.5"
      cupertino_icons: ^0.1.3
      firebase_messaging: ^6.0.16
      # firebase_core: ^0.4.1+5
      firebase_analytics: ^5.0.2
      # firebase_auth: ^0.14.0+5
      firebase_auth: ^0.18.3
      firebase_core: ^0.5.2
      pinput: ^0.2.6
      # cloud_firestore: ^0.12.9+5
      # firebase_core_web: ^0.2.1+3
      pin_entry_text_field: ^0.1.4
      auto_direction: ^0.0.4+1
      flutter_launcher_icons: "^0.8.0"
      flutter_launcher_name: "^0.0.1"
      device_info: ^1.0.0
      fluttertoast: ^7.1.6
      country_list_pick: ^1.0.1+2
      material_design_icons_flutter: ^4.0.5855
    dev_dependencies:
      flutter_test:
        sdk: flutter
    
    
    flutter_launcher_name:
      name: "example"
    flutter_icons:
      android: true
      ios: true
      image_path: "assets/icons/example.png"
    
    

    فيه احد يقدر يساعدنا في حل هذا المشكله ؟حاولت اغير اصدار الحزم المستعملة ولكن المشكله كل ما اغير اصدار معين من الحزم يظهر لي مشكلة في الحزمة التاليه

    او هل توجد طريقة لرجوع الى الاصدار السابق من فلاتر؟

  5. السلام عليكم ورحمة الله وبركاته

     
    
      final FirebaseMessaging firebaseMessaging = FirebaseMessaging();
      FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
      new FlutterLocalNotificationsPlugin();
    
       Future<Map<String, dynamic>> sendAndRetrieveMessage() async {
        await firebaseMessaging.requestNotificationPermissions(
          const IosNotificationSettings(
              sound: true, badge: true, alert: true, provisional: false),
        );
      }
    
    
    var initializationSettingsAndroid =
        new AndroidInitializationSettings('@mipmap/ic_launcher');
        var initializationSettingsIOS = new IOSInitializationSettings();
        var initializationSettings = new InitializationSettings(
            android: initializationSettingsAndroid, iOS: initializationSettingsIOS);
    
        flutterLocalNotificationsPlugin = new FlutterLocalNotificationsPlugin();
        flutterLocalNotificationsPlugin.initialize(initializationSettings,
            onSelectNotification: onSelectNotification);
    
    
    
    Future<dynamic> onSelectNotification(String payload) async {
        /*Do whatever you want to do on notification click. In this case, I'll show an alert dialog*/
        showDialog(
          context: context,
          builder: (_) => AlertDialog(
            title: Text(payload),
            content: Text("Payload: $payload"),
          ),
        );
      }
    
      Future<void> _showNotification(
          int notificationId,
          String notificationTitle,
          String notificationContent,
          String payload, {
            String channelId = '1234',
            String channelTitle = 'Android Channel',
            String channelDescription = 'Default Android Channel for notifications',
            Priority notificationPriority = Priority.high,
            Importance notificationImportance = Importance.max,
          }) async {
        var androidPlatformChannelSpecifics = new AndroidNotificationDetails(
          channelId,
          channelTitle,
          channelDescription,
          playSound: false,
          importance: notificationImportance,
          priority: notificationPriority,
        );
        var iOSPlatformChannelSpecifics =
        new IOSNotificationDetails(presentSound: false);
        var platformChannelSpecifics = new NotificationDetails(
            android: androidPlatformChannelSpecifics, iOS: iOSPlatformChannelSpecifics);
        await flutterLocalNotificationsPlugin.show(
          notificationId,
          notificationTitle,
          notificationContent,
          platformChannelSpecifics,
          payload: payload,
        );
      }
      notification(){
        firebaseMessaging.configure(
          onMessage: (Map<String, dynamic> message) async {
       
            _showNotification(1234, "GET title FROM message OBJECT", "GET description FROM message OBJECT", "GET PAYLOAD FROM message OBJECT");
            return;
           // print("onMessage: $message");
    
          },
    
          onLaunch: (Map<String, dynamic> message) async {
            print("onLaunch: $message");
    
          },
          onResume: (Map<String, dynamic> message) async {
            print("onResume: $message");
    
          },
        );
      }

    الكود اعلاه هو كود جلب الاشعارات وعرضها في التطبيق من خلال FCM

    الكود شغال بشكل طبيعي على الاندرويد و iOS 

     لو حاولت تعديل السطر التالي من الشكال :

      _showNotification(1234, "GET title FROM message OBJECT", "GET description FROM message OBJECT", "GET PAYLOAD FROM message OBJECT");

    الى الشكل :

    _showNotification(1234, message['notification']['title'], message['notification']['body'], "GET PAYLOAD FROM message OBJECT");

    حتى استطيع عرض محتوى الاشعار والعنوان الكود يصبح في الاندويد شغال 100%100 ولكن في نظام iOS لا يعمل ابدا

    ما هو الحل كيف يمكن عرض المحتوى والعنوان من خلاله ؟

    مع العلم انني كما ذكرت سابقا لو كان بشكل الافتراضي الاول فهو يعمل بشكل ممتاز على كل الانظمة بمعنى لا يوجد لا توجد اي مشكله ولكن احتاج الى عرض العنوان والمحتوى 

  6. بتاريخ 13 ساعات قال بلال زيادة:

    يجب إضافة الأسطر التالية إلى didFinishLaunchingWithOptions في ملف AppDelegate.m إذا كنت تستخدم objective-c أو AppDelegate.swift إذا كنت تستخدم swift

    objective-c

    
    if (@available(iOS 10.0, *)) {
      [UNUserNotificationCenter currentNotificationCenter].delegate = (id<UNUserNotificationCenterDelegate>) self;
    }

    Swift

    
    if #available(iOS 10.0, *) {
      UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
    }

    ثم تشغيل الأوامر التالية 

    
    flutter clean
    flutter run

    إذا لم ينجح الأمر قم بتحديث المكتبة إلى أخر إصدار.

    اهلا بيك اخي

    كل هذا تم اضافته سابقا اخوي

    ولكن بدون فائدته المشكله مستمره

  7. السلام عليكم ورحمة الله وبركاته 

    تحيه طيبه للجميع 

    استفسار لو تكرمتو 

    قمت بربط مشروعي مع الفاير بيز لستقبال المسجات الكود شغال تمام 

    ولكن المشكلة انا استقبل المسجات الان اذا كان التطبيق في الخلفيه في نظام IOS  اما لو كان التطبيق مفتوح المسجات لا تظهر 

    مع العلم ان الكود شغال على نظام الاندويد بشكل طبيعي ولكن مشكلتي في نظام ios 

    الكود المستعمل كالتالي الان :

    طبعا انا اعرض الاشعارات الان من خلال باكجج 

    flutter_local_notifications
      FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
      new FlutterLocalNotificationsPlugin(); 
    
    
    Future onSelectNotification(String payload) async {
        showDialog(
          context: context,
          builder: (_) {
            return new AlertDialog(
              title: Text("PayLoad"),
              content: Text("Payload : $payload"),
            );
          },
        );
      }
      void showNotification(String title, String body) async {
        await _demoNotification(title, body);
      }
    
    
    Future<void> _demoNotification(String title, String body) async {
        var androidPlatformChannelSpecifics = AndroidNotificationDetails(
            'channel_ID', 'channel name', 'channel description',
            importance: Importance.max,
            playSound: true,
            // sound: 'sound',
           // sound: true,
            showProgress: true,
            priority: Priority.high,
            ticker: 'test ticker');
    
        var iOSChannelSpecifics = IOSNotificationDetails();
        var platformChannelSpecifics = NotificationDetails(
            android: androidPlatformChannelSpecifics, iOS: iOSChannelSpecifics);
        await flutterLocalNotificationsPlugin
            .show(0, title, body, platformChannelSpecifics, payload: 'test');
      }
    
    
    
    @override
      void initState() {
        super.initState();
    
    
        var initializationSettingsAndroid =
        new AndroidInitializationSettings('@mipmap/ic_launcher');
        var initializationSettingsIOS = new IOSInitializationSettings();
        var initializationSettings = new InitializationSettings(
            android: initializationSettingsAndroid, iOS: initializationSettingsIOS);
        flutterLocalNotificationsPlugin.initialize(initializationSettings,
            onSelectNotification: onSelectNotification);
      
    
     
      }
      
      
      notification(){
        firebaseMessaging.configure(
          onMessage: (Map<String, dynamic> message) async {
            showNotification(
                message['notification']['title'], message['notification']['body']);
            print("onMessage: $message");
    
          },
    
          onLaunch: (Map<String, dynamic> message) async {
            print("onLaunch: $message");
    
          },
          onResume: (Map<String, dynamic> message) async {
            print("onResume: $message");
    
          },
        );
      }

     

     

    احد يعرف كيف ممكن حل هذا المشكلة ويصير عرض التنبيهات وتطبيق مفتوح ممكن على نظام ios ?

     

  8. بتاريخ On 2/24/2021 at 17:13 قال بلال زيادة:

    ممكن ترفق ملفات المشروع كاملاً؟ 

    وتأكد من 

    
    <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="[ADMOB_APP_ID]"/>

    داخل ملف AndroidManifest.xml بحيث أنه 

    
    [ADMOB_APP_ID]

    هو معرف التطبيق على أدموب.

    لتجريب المشروع والتأكد من أنك قمت بالخطوات كاملاً يرجى إرفاق ملفات المشروع للمساعدة في حل المشكلة.

    حاولت جعل حجمه صغير حتى استطيع ارفاقه لا اعلم لماذا يتم توليد ملفات كبيره apk  في وقت العمل ولكن ملفات المشروع 100%100 في مكانها الصحيح 

    ياليت تطلع عليه وتفيدني لو تكرمت

    flutter_appt.rar

  9. في الكود المنشور في منشور حزمة firebase_admob

    يوجد السطر البرمجي التالي:

    const String testDevice = 'YOUR_DEVICE_ID';

    لما اعمل تشغيل للكود او المثال المنشور في الاضافة 

    احصل على السطر البرمجي التالي:

     Use RequestConfiguration.Builder().setTestDeviceIds(Arrays.asList("****************") to get test ads on this device.

    طبعا هو يعطيني رقم جهازي بدل النجوم وفي حالة قمت بوضعه في السطر المكتوب بـ testDevice بين الاقواس 

    كود الاعلانات شغال لدي 100%100

    ولكن لو لم اضعه احصل على الخطاء البرمجي التالي:

    I/Ads     (29451): Use RequestConfiguration.Builder().setTestDeviceIds(Arrays.asList("*************") to get test ads on this device.
    W/flutter (29451): onAdFailedToLoad: 3
    I/Ads     (29451): Ad failed to load : 3
    I/flutter (29451): BannerAd event MobileAdEvent.failedToLoad

    وهذا الكود البرمجي كامل:

    // Copyright 2017 The Chromium Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style license that can be
    // found in the LICENSE file.
    
    // ignore_for_file: public_member_api_docs
    
    import 'dart:io';
    
    import 'package:flutter/material.dart';
    import 'package:firebase_core/firebase_core.dart';
    import 'package:firebase_admob/firebase_admob.dart';
    
    // You can also test with your own ad unit IDs by registering your device as a
    // test device. Check the logs for your device's ID value.
    const String testDevice = 'YOUR_DEVICE_ID';
    
    Future<void> main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Firebase.initializeApp();
      runApp(MyApp());
    }
    
    class MyApp extends StatefulWidget {
      @override
      _MyAppState createState() => _MyAppState();
    }
    
    class _MyAppState extends State<MyApp> {
      static const MobileAdTargetingInfo targetingInfo = MobileAdTargetingInfo(
        testDevices: testDevice != null ? <String>[testDevice] : null,
        keywords: <String>['foo', 'bar'],
        contentUrl: 'http://foo.com/bar.html',
        childDirected: true,
        nonPersonalizedAds: true,
      );
    
      BannerAd _bannerAd;
      NativeAd _nativeAd;
      InterstitialAd _interstitialAd;
      int _coins = 0;
    
      BannerAd createBannerAd() {
        return BannerAd(
          adUnitId: BannerAd.testAdUnitId,
          size: AdSize.banner,
          targetingInfo: targetingInfo,
          listener: (MobileAdEvent event) {
            print("BannerAd event $event");
          },
        );
      }
    
      InterstitialAd createInterstitialAd() {
        return InterstitialAd(
          adUnitId: InterstitialAd.testAdUnitId,
          targetingInfo: targetingInfo,
          listener: (MobileAdEvent event) {
            print("InterstitialAd event $event");
          },
        );
      }
    
      NativeAd createNativeAd() {
        return NativeAd(
          adUnitId: NativeAd.testAdUnitId,
          factoryId: 'adFactoryExample',
          targetingInfo: targetingInfo,
          listener: (MobileAdEvent event) {
            print("$NativeAd event $event");
          },
        );
      }
    
      @override
      void initState() {
        super.initState();
        FirebaseAdMob.instance.initialize(appId: FirebaseAdMob.testAppId);
        _bannerAd = createBannerAd()..load();
        RewardedVideoAd.instance.listener =
            (RewardedVideoAdEvent event, {String rewardType, int rewardAmount}) {
          print("RewardedVideoAd event $event");
          if (event == RewardedVideoAdEvent.rewarded) {
            setState(() {
              _coins += rewardAmount;
            });
          }
        };
      }
    
      @override
      void dispose() {
        _bannerAd?.dispose();
        _nativeAd?.dispose();
        _interstitialAd?.dispose();
        super.dispose();
      }
    
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          home: Scaffold(
            appBar: AppBar(
              title: const Text('AdMob Plugin example app'),
            ),
            body: SingleChildScrollView(
              child: Center(
                child: Column(
                  crossAxisAlignment: CrossAxisAlignment.center,
                  mainAxisSize: MainAxisSize.min,
                  children: <Widget>[
                    RaisedButton(
                        child: const Text('SHOW BANNER'),
                        onPressed: () {
                          _bannerAd ??= createBannerAd();
                          _bannerAd
                            ..load()
                            ..show();
                        }),
                    RaisedButton(
                        child: const Text('SHOW BANNER WITH OFFSET'),
                        onPressed: () {
                          _bannerAd ??= createBannerAd();
                          _bannerAd
                            ..load()
                            ..show(horizontalCenterOffset: -50, anchorOffset: 100);
                        }),
                    RaisedButton(
                        child: const Text('REMOVE BANNER'),
                        onPressed: () {
                          _bannerAd?.dispose();
                          _bannerAd = null;
                        }),
                    RaisedButton(
                      child: const Text('LOAD INTERSTITIAL'),
                      onPressed: () {
                        _interstitialAd?.dispose();
                        _interstitialAd = createInterstitialAd()..load();
                      },
                    ),
                    RaisedButton(
                      child: const Text('SHOW INTERSTITIAL'),
                      onPressed: () {
                        _interstitialAd?.show();
                      },
                    ),
                    RaisedButton(
                      child: const Text('SHOW NATIVE'),
                      onPressed: () {
                        _nativeAd ??= createNativeAd();
                        _nativeAd
                          ..load()
                          ..show(
                            anchorType: Platform.isAndroid
                                ? AnchorType.bottom
                                : AnchorType.top,
                          );
                      },
                    ),
                    RaisedButton(
                      child: const Text('REMOVE NATIVE'),
                      onPressed: () {
                        _nativeAd?.dispose();
                        _nativeAd = null;
                      },
                    ),
                    RaisedButton(
                      child: const Text('LOAD REWARDED VIDEO'),
                      onPressed: () {
                        RewardedVideoAd.instance.load(
                            adUnitId: RewardedVideoAd.testAdUnitId,
                            targetingInfo: targetingInfo);
                      },
                    ),
                    RaisedButton(
                      child: const Text('SHOW REWARDED VIDEO'),
                      onPressed: () {
                        RewardedVideoAd.instance.show();
                      },
                    ),
                    Text("You have $_coins coins."),
                  ].map((Widget button) {
                    return Padding(
                      padding: const EdgeInsets.symmetric(vertical: 16.0),
                      child: button,
                    );
                  }).toList(),
                ),
              ),
            ),
          ),
        );
      }
    }

    كيف ممكن حل هذا المشكلة لو تكرمتو؟

    مع العلم اني اختبر المشروع ب جهازي الحقيقي وليس محاكي الاندرويد

    • أعجبني 1
  10. قمت بعمل مشروع يحتوي على اعلانات ادموب

    وتم عمل حساب في موقع اد موب والحصول على الموافقة على الحساب

    اصبح الحساب رسمي الان

    ولكن بعد تحويل روابط مشروعي روابط حقيقه من حسابي المفعل وتغير روابط التجربة اصبح لا يعرض الاعلانات واحصل على الخطاء التالي في كل مره 

    D/DynamitePackage( 5335): Instantiating com.google.android.gms.ads.ChimeraAdManagerCreatorImpl
    I/Ads     ( 5335): Use RequestConfiguration.Builder().setTestDeviceIds(Arrays.asList("FF389DA3B04D2B1149051995E9108E93") to get test ads on this device.
    W/flutter ( 5335): onAdFailedToLoad: 3
    I/Ads     ( 5335): Ad failed to load : 3
    I/flutter ( 5335): BannerAd event MobileAdEvent.failedToLoad

    هل يوجد شي يفترض عمله بعد تفعيل الحساب من قبل جوجل مختلف عما فعلته ام توجد اسباب مختلفه لهذا المشكله ؟

    مع العلم اني اخذت كل الروابط من حسابي الحقيقي رابط التطبيق ورابط الاعلان 

    • أعجبني 1
  11. بتاريخ 1 دقيقة مضت قال Abdulraheem Barghouthi:

    يمكنك إضافة بريد إلكتروني جديد للمشروع وتعيينه كمالك من خلال الخطوات التالية:

    1. نضغط على الاعدادات ومن ثم  نختار users and permissions كما هو موضح في الصورة التالية:
      1.thumb.png.4c982e3589205404e0cd059e6ff7cffc.png
       
    2. نضيف بريد إلكتروني جديد ونقوم بتعيينه كمالك من خلال إختيار Owner:
      2.thumb.png.728361f853389f1da41782d3eb6b9563.png

    ربي يعطيك العافيه اخي

    قمت بتجربة هذا الامر ولكن واجهتني مشكلة مع ربط المشروع من خلال admob شغله تخص الصلاحيات مع اني متاكد انه المالك وكل الصلاحيات لديه لذلك قمت بحذف المشروع واعادته من جديد لا توجد مشكله 

    كل الشكر لك الغالي

    • أعجبني 1
  12. يا اخوان لدي استفسار انا قمت بتسجيل الدخول الى console.firebase 

    وعملت فيها مشاريع حتى اتمكن من الاتصال ب الفايربيز

    الايميل كان تجريبي الان انا محتاج اغيره هل توجد طريقة لفعل ذلك؟

    او توجد طريقة لنقل المشروع الى ايميل ثاني؟او حساب ثاني بالاصح

    بسبب اختلاف الايميلات الان لا استطيع ربط مشروع admob مع المشاريع التي فيه console.firebase 

    • أعجبني 1
  13. بتاريخ 5 ساعات قال بلال زيادة:

    مرحبا هل ممكن ترفق ملفات المشروع, أريد فحص المشروع لحل المشكلة.

    خلاص اخي الله يطول بعمرك انا فصلت هذه الصفحه ووضعت الاعلان كامل او كود الاعلان كامل في الصفحه المستهدفة كل الشكر لك الغالي

  14. بنسبة الى اعلانات Admob من نوع RewardedVideoAd

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

    ام ان السعر واحد اذا  اغلق الفيديو قبل انتهاء الوقت او تابع المقطع كامل؟

  15. بتاريخ 7 ساعات قال بلال زيادة:

    هناك عدة طرق مستخدمة.

    • ممكن تحفظ القيمة عن طريق SharedPrefrence وتجلب قيمة المفتاح. 
    • يمكن عن طريق LocalStorage و أيضا يمكن جلب القيمة من المفتاح المخزن.
    • أو عن طريق تنفيذ Setter , Getter ويمكن عن طريق الكود التالي. 

    يمكن تعريف getter 

    
    int get coinsValue {
    	return coins;
    }

    أو بشكل مختصر 

    
    int get coinsValue => coins;

    ويمكن أن يكون الكود الخاص بك هكذا 

    
    import 'package:firebase_admob/firebase_admob.dart';
    
    import 'helper.dart';
    
    
    
    //const String testDevice = 'YOUR_DEVICE_ID';
    
    class AdsRewardedVideoAd {
      static bool _loaded = false;
      static int coins = 0;
      int get coinsValue => coins;
    
    
      static RewardedVideoAd videoAd = RewardedVideoAd.instance;
    
      static void initialize() {
        FirebaseAdMob.instance.initialize(appId: AdManager.appId);
      }
    
      static MobileAdTargetingInfo targetingInfo = MobileAdTargetingInfo(
        keywords: <String>['flutterio', 'beautiful apps'],
        testDevices: <String>[], // Android emulators are considered test devices
      );
    
      static RewardedVideoAd createRewardedVideoAd() {
    
         videoAd.load(adUnitId: AdManager.rewardedAdUnitId, targetingInfo: targetingInfo);
    
         RewardedVideoAd.instance.listener = (RewardedVideoAdEvent event, {String rewardType, int rewardAmount}) {
           if(event == RewardedVideoAdEvent.rewarded) {
    
               coins+=rewardAmount;
               
               print('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx $coins');
    
           }
         };
    
      }
    
      static void showRewardedVideoAd() {
        if (videoAd == null) videoAd = createRewardedVideoAd();
    
        videoAd .show().catchError((e) =>
            print("error in showing ad: ${e.toString()}"));
    
      }
    
    
    }

    ويمكن جلبها عن طريق الكلاس

    
    AdsRewardedVideoAd.coinsValue

    بحيث getter  => coinsValue يأخذ قيمة coins عندما تتحدث في أي وقت.

    لقد أجبتك امس هنا, هل قمت بتجربتها.

    ارجوا إضافة ملفات المشروع هنا كاملاً للمساعدة في حل المشكلة.

     

     

    مرحبا اخي الكريم 

    المشكله الان ان الكود لا يصل الى ميثود RewardedVideoAdEvent

    لا يوجد لديها اي قيمة لنها لا تعمل هذا نوع المشكلة في الكود اعلاه 

    حتى لو قمت بتجربة سوف تشاهد ان العمل لا يصال الى RewardedVideoAdEvent حتى نحصل على حدث

  16. السلام عليكم ورحمة الله وبركاته 

    تحيه طيبه للجميع

    قمت بعمل كلاس منفصل ووضعت فيه اعلانات ادموب من نوع RewardedVideoAd وهو كالتالي:

    import 'package:firebase_admob/firebase_admob.dart';
    
    import 'helper.dart';
    
    
    
    
    
    class AdsReward {
      static bool _loaded = false;
      static int  _coins=0;
    
      static RewardedVideoAd videoAd = RewardedVideoAd.instance;
    
      static void initialize() {
        FirebaseAdMob.instance.initialize(appId: AdManager.appId);
      }
    
      static MobileAdTargetingInfo targetingInfo = MobileAdTargetingInfo(
        keywords: <String>['flutterio', 'beautiful apps'],
        testDevices: <String>[], // Android emulators are considered test devices
      );
    
      static RewardedVideoAd createRewardedVideoAd() {
    
         videoAd.load(adUnitId: AdManager.rewardedAdUnitId, targetingInfo: targetingInfo);
        // videoAd.load(adUnitId:RewardedVideoAd.testAdUnitId, targetingInfo: targetingInfo);
         RewardedVideoAd.instance.listener = (RewardedVideoAdEvent event, {String rewardType, int rewardAmount}) {
           if(event == RewardedVideoAdEvent.rewarded) {
             _coins+=rewardAmount;
             print('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$_coins');
    
           }
         };
    
      }
    
      static void showRewardedVideoAd() {
        if (videoAd == null) videoAd = createRewardedVideoAd();
    
        videoAd .show().catchError((e) =>
            print("error in showing ad: ${e.toString()}"));
    
      }
    
    
    }

    اقوم بستدعاء الكلاس من صفحه مختلفه من خلال 

          AdsReward.showRewardedVideoAd();

    الاعلان شغال ولكن المتفرض بعد انتهاء الاعلان احصل على قيمة _coins او بالاصح هيا تحصل على قيمة

    ولكن الان لا يحدث هذا الامر قمت بمحاولة قراءة ذلك من خلال امر الطباعة ولكن لا يحدث شي ابد

    هل يعلم احد ما هو الخطاء في الكود الذي عملته ؟

    لماذا لا يحدث حدث listeners not called

  17. قمت بعمل كلاس منفصل لوضع كود الاعلان بداخله كتالتالي:

    import 'package:firebase_admob/firebase_admob.dart';
    
    import 'helper.dart';
    
    
    
    //const String testDevice = 'YOUR_DEVICE_ID';
    
    class AdsRewardedVideoAd {
      static bool _loaded = false;
      static int coins = 0;
    
      static RewardedVideoAd videoAd = RewardedVideoAd.instance;
    
      static void initialize() {
        FirebaseAdMob.instance.initialize(appId: AdManager.appId);
      }
    
      static MobileAdTargetingInfo targetingInfo = MobileAdTargetingInfo(
        keywords: <String>['flutterio', 'beautiful apps'],
        testDevices: <String>[], // Android emulators are considered test devices
      );
    
      static RewardedVideoAd createRewardedVideoAd() {
    
         videoAd.load(adUnitId: AdManager.rewardedAdUnitId, targetingInfo: targetingInfo);
    
         RewardedVideoAd.instance.listener = (RewardedVideoAdEvent event, {String rewardType, int rewardAmount}) {
           if(event == RewardedVideoAdEvent.rewarded) {
    
               coins+=rewardAmount;
               
               print('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx $coins');
    
           }
         };
    
      }
    
      static void showRewardedVideoAd() {
        if (videoAd == null) videoAd = createRewardedVideoAd();
    
        videoAd .show().catchError((e) =>
            print("error in showing ad: ${e.toString()}"));
    
      }
    
    
    }

    وبعدها قمت باستدعاء الكلاس في الصفحة المستهدفة كالتالي:

     AdsRewardedVideoAd.showRewardedVideoAd();

    ولكني واجهة مشكلة احتاج الى الاستعلام عن قيمة coins التي تتغير في الكلاس createRewardedVideoAd() في الصفحة الاولى

    من خلال الصفحة الثانية التي وضعت فيها كود العمل هذا :

     AdsRewardedVideoAd.showRewardedVideoAd();

    كيف ممكن الوصول الى قيمته بعد ان تتغير من الصفحة الثانية او الصفحة المستهدفة ؟ هل توجد طريقة لعمل ذلك؟

  18. بتاريخ 14 ساعات قال بلال زيادة:

    هل ممكن تزودني بلقطات شاشة من التطبيقات ؟

    ايضا هذه الاعلانات من الممكن تكون من صاحب التطبيق و ليست خدمة مشترك فيها مثل ادموب.

    والله ما يحضرني تطبيق محدد حاليا بس بحاول ابحث

    اشلون ممكن تكون من صاحب التطبيق اخي؟

  19. بتاريخ 42 دقائق مضت قال بلال زيادة:

    يمكنك إضافة الحزمة التالية إلى مشروع flutter الخاص بك وهي firebase_admob من خلال pub.dev او تجد الرابط هنا

    في ملف pubspec.yaml قم بوضع الحزمة مع إصدارها 

    
    firebase_admob: ^0.11.0+1

    ومن ثم تنفيذ الأمر التالي في terminal 

    
    flutter pub get

    ثم في المسار التالي android/app/src/main/AndroidManifest.xml قم بوضع 

    
    <meta-data
    android:name="com.google.android.gms.ads.APPLICATION_ID"
    android:value="ca-app-pub-3940256099942544~3347511713"/>

    حيث 

    
    ca-app-pub-3940256099942544~3347511713

    هو id التطبيق على admob.

    في المسار التالي  ios/Runner/Info.plis  الخاص ب iOS ضع 

    
    <key>GADApplicationIdentifier</key>
    <string>ca-app-pub-3940256099942544~1458002511</string>

    يمكنك إنشاء ملف في المسار التالي lib/helper.dart  ووضع الكود التالي فيه 

    
    import 'dart:io';
    
    class AdManager {
    
      static String get appId {
        if (Platform.isAndroid) {
          return "<YOUR_ANDROID_ADMOB_APP_ID>";
        } else if (Platform.isIOS) {
          return "<YOUR_IOS_ADMOB_APP_ID>";
        } else {
          throw new UnsupportedError("Unsupported platform");
        }
      }
    
      static String get bannerAdUnitId {
        if (Platform.isAndroid) {
          return "<YOUR_ANDROID_BANNER_AD_UNIT_ID";
        } else if (Platform.isIOS) {
          return "<YOUR_IOS_BANNER_AD_UNIT_ID>";
        } else {
          throw new UnsupportedError("Unsupported platform");
        }
      }
    
      static String get interstitialAdUnitId {
        if (Platform.isAndroid) {
          return "<YOUR_ANDROID_INTERSTITIAL_AD_UNIT_ID>";
        } else if (Platform.isIOS) {
          return "<YOUR_IOS_INTERSTITIAL_AD_UNIT_ID>";
        } else {
          throw new UnsupportedError("Unsupported platform");
        }
      }
    
      static String get rewardedAdUnitId {
        if (Platform.isAndroid) {
          return "<YOUR_ANDROID_REWARDED_AD_UNIT_ID>";
        } else if (Platform.isIOS) {
          return "<YOUR_IOS_REWARDED_AD_UNIT_ID>";
        } else {
          throw new UnsupportedError("Unsupported platform");
        }
      }
    }

    مع تغيير كل id لفئة الإعلان الخاص سواء بانر أو Interstitial.

    ومن ثم في الملف الذي تود عرض الإعلانات فيه تضع لتفعيل الإعلانات

    
    Future<void> _initAdMob() {
        ///Initialize AdMob SDK
        return FirebaseAdMob.instance.initialize(appId: AdManager.appId);
    }

    يمكن استخدام لتفعيل إعلانات البانر 

    
    BannerAd _bannerAd;
    
    void _loadBannerAd() {
    _bannerAd
      ..load()
      ..show(anchorType: AnchorType.top);
    }

    و ثم في دالة initState نضع 

    
    @override
    void initState() {
      _bannerAd = BannerAd(
          adUnitId: AdManager.bannerAdUnitId,
          size: AdSize.banner,
      );
    
      _loadBannerAd();
    }

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

    هنا يجب استخدام إعلانات من فئة interstitial ,وتسمى هذه الإعلانات البينية ,  بحيث هذه الإعلانات تظهر عند الأنتقال من واجهة لواجهة أو عند تنفيذ حدث معين في التطبيق.

    بما أنك تستخدم إعلانات من قوقل أدموب فجميع فئات الإعلانات يمكن للمستخدم تخطيها او إغلاقها حسب رغبة المستخدم.

    مرحبا اخي الكريم

    شاكر لك ردك الغالي والشرح في البدايه

    ولكن مما فهمته منك  ان هذا النوع من الاعلانات لا يمكن اجبار المستخدم على مشاهدته كامل

    طيب هل لديك فكره عن نوع الاعلانات التي يمكن من خلالها فعل ذلك؟ لنني متاكد اني قد شاهدتها في اكثر من تطبيق 

  20. احاول تطبيق اعلانات AdMob مع فلاتر والامر حتى الان يمشي تمام

    ولكن لدي استفسار انا قمت بتطبيق نوعين من الاعلانات وهما : Banner و Interstitial

    ولكني احتاج الى معرفة كيف ممكن اعمل اعلان في زر اضافة موضوع مثلا لقد شاهدت سابقا هذا الحركه مسبقا 

    بحيث ان المستخدم لما يقوم بضغط على زر اضافة موضوع جديد يجب ان يشاهد اجباري مقطع اعلاني لثواني محدده وفي حالة لم يشاهد المقطع كامل او بالاساس هو لا يملك خيار لرجوع او غلق الاعلان بحيث ان المستخدم يكن مجبور على مشاهدة الاعلان كامل لو رغب بنشر موضوع جديد في التطبيق

    كيف يمكن عمل ذلك؟

    ياليت من يملك خلفيه عن الموضوع يفيدنا ويا حب لو يكون فيه كود مثال على ذلك

    • أعجبني 1
  21. بتاريخ منذ ساعة مضت قال بلال زيادة:

    أخي يبدو أن هناك أجزاء من gradle لم يتم تحميلها بشكل صحيح. لذلك 

    هناك عدة حلول وهي 

    1. يمكن استدعاء هذه الحزمة مرة أخرى cloud_firestore و العمل على تثبيتها في مشروعك بشكل صحيح ممكن تقرأ أكثر عنها هنا , ومن ثم تشغيل الأمر flutter clean , و من ثم الأمر flutter run, ومن ثم الأمر flutter build apk.
    2. ممكن أن تقوم بصنع مشروع جديد و من ثم نقل الملفات إليه و المحاولة مرة أخرى. ومن ثم تشغيل الأمر flutter build apk. 
    3. التأكد من الحزم التي تم استخدامها في المشروع و التأكد من أنها ثبتت بشكل صحيح و هناك بعض الحزم مثل cloud_firestore تحتاج إلى إضافة بعض الأوامر إلى الملفات. 
    4. تشغيل الأمر flutter doctor وفحص النتيجة و العمل على حل جميع المشاكل.

    مرحبا اخي

    وجدت الحل كالتالي للفائده حقيقه لا اعلم فائدته بضبط ولكن اعتقد انه يخفي الاخطاء

     

        lintOptions {
        
            checkReleaseBuilds false
        }

     

  22. بتاريخ 9 ساعات قال بلال زيادة:

    ممكن يكون عدة أسباب لذلك, قد تكون مش مفعل multiDexEnabled true

    
    defaultConfig {
        multiDexEnabled true
    }

    في المسار التالي أو ناسي وضعها android > app > build.gradle, ومن ثم في defaultConfig بدك ترقي gradle في ملف android/build.gradle 

    
    classpath 'com.android.tools.build:gradle:3.3.1'

    طبعا مع تغيير 3.3.1 إلى أخر أصدار gradle, ومن ثم في المسار التالي 

    android/app/gradle.properties ستضع التالي 

    
    android.useAndroidX=true
    android.enableJetifier=true

    و من ثم تشغيل الأمر التالي 

    
    flutter clean

     

     

    مرحبا اخي

    بنسبة الى multiDexEnabled  انا عامله 

    ايضا android.useAndroidX=true
    android.enableJetifier=true انا عاملهم كمان

     

    بنسبة الى اخل حل

    انا لدي كالتالي

    classpath 'com.android.tools.build:gradle:3.5.0'

    يعني احدث من الي انت عامله ايضا ولكن المشكله مستمره

     

    بتاريخ 21 ساعات قال Wael Aljamal:

    عليك فتح المشروع باستخدام أندرويد استديو (في حال لا تستخدمه أقترح تحميله لهذه الجزئية التالية)، حيث سيقوم بالبحث عن تحديثات للتضمينات من Gradle وغيرها، عليك فقط تصفح الملفات في مشروع أندرويد وهو سيقوم على اقتراح التحديثات.

    تحميل أحدث إصدار من Flutter و أحدث android sdk ووضع الإصدارالخاص به في المشروع، حل الخطأ الأول لديك هو 

    جعل compileSdkVersion 28 و compileSdkVersion ..مثلا. لكن قم باستخدام الأحدث.

    يمكنك بناء مشروع فلاتر جديد بعد التعديلات السابقة، ثم تضمين ملفات إعدادت البيئة منه والتي ستكون في جزء مشروع أندرويد بالشكل التالي في settings.gradle:

    ربما يوجد سطر ناقص لديك.

    
    include ':app'
    
    def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
    
    def plugins = new Properties()
    def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
    if (pluginsFile.exists()) {
        pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
    }
    
    plugins.each { name, path ->
        def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
        include ":$name"
        project(":$name").projectDir = pluginDirectory
    }

    في ملف gradle.properties أضف:

    
    android.useAndroidX=true
    android.enableJetifier=true

    أعتقد أن أغلب المشاكل بسبب تضارب إصدار المكتبات (مكتبات فلاتر حديثة أما أندرويد قديمة) فاعمل التعديل على نسخة منفصلة من المشروع في حال حدوث مشاكل غير الحالية (للحفاظ على نسخة من المشروع)

    اهلا اخي

    كل شي جربته من هذا الخيارات ولكن بدون فائده اخوي

  23. بتاريخ 21 ساعات قال Sam Ahw:

    حاول إنشاء تطبيقك لمنصة واحدة محددة فقط. Fat APK يعني أن تطبيقك يتم إنشاؤه للعديد من الأنظمة الأساسية. جرب بناؤه مرة واحدة ولكن لمنصة محددة فقط وكما يقترح عليك ضمن رسالة الخطأ يمكنك تجربة إحدى الأوامر:

    
    flutter build appbundle --target-platform android-arm,android-arm64,android-x64

    حيث تقوم بتحديد المنصة التي تريد البناء عليها. مثلاً android-x64
    يمكنك أيضاً أن تقوم ببناء التطبيق مباشرةً من Android Studio أو Xcode وبذلك سيتم بناؤه لمنصة واحدة.
    وأيضاً لاحظت وجود خطأ آخر وهو:

    
    Plugin project :firebase_core_web not found. Please update settings.gradle.

    ولمعالجة هذه المشكلة يجب أن تقوم بتحديث ملف android/app/build.gradle  كالتالي:

    
    من:
    
    android {
        // ...
        defaultConfig {
            // ...
            minSdkVersion 16
        }
    }
    
    إلى:
    
    android {
        // ...
        defaultConfig {
            // ...
            minSdkVersion 23
        }
    }

    لأنه عند استخدام flutter يجب أن تكون قيمة minSdkVersion 23

    مرحبا اخي

    انا اعمل من الاندرويد ستوديو نعم

    واحاول اعمل apk من الاندرويد ستوديو

    بنسبة الى موضوع minSdkVersion انا عامله 23 من قبل ولكن المشكلة مستمرة

     

  24. السلام عليكم ورحمة الله وبركاته 

    تحيه طيبه للجميع 

    يا اخوان انا احاول اعمل مشروعي من نوع فلاتر نسخة APK ولكن كل ما احاول اعمل BUILD تجيني المشكله التاليه :

    C:\src\flutter\bin\flutter.bat --no-color build apk
    You are building a fat APK that includes binaries for android-arm, android-arm64, android-x64.
    If you are deploying the app to the Play Store, it's recommended to use app bundles or split the APK to reduce the APK size.
        To generate an app bundle, run:
            flutter build appbundle --target-platform android-arm,android-arm64,android-x64
            Learn more on: https://developer.android.com/guide/app-bundle
        To split the APKs per ABI, run:
            flutter build apk --target-platform android-arm,android-arm64,android-x64 --split-per-abi
            Learn more on:  https://developer.android.com/studio/build/configure-apk-splits#configure-abi-split
    Running Gradle task 'assembleRelease'...                        
    Plugin project :firebase_core_web not found. Please update settings.gradle.
    
    
    
    
    Note: C:\src\flutter\.pub-cache\hosted\pub.dartlang.org\cloud_firestore-0.12.11\android\src\main\java\io\flutter\plugins\firebase\cloudfirestore\CloudFirestorePlugin.java uses or overrides a deprecated API.
    Note: Recompile with -Xlint:deprecation for details.
    Note: C:\src\flutter\.pub-cache\hosted\pub.dartlang.org\cloud_firestore-0.12.11\android\src\main\java\io\flutter\plugins\firebase\cloudfirestore\CloudFirestorePlugin.java uses unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details.
    
    Removed unused resources: Binary resource data reduced from 235KB to 212KB: Removed 9%
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    FAILURE: Build failed with an exception.
    
    * What went wrong:
    Execution failed for task ':path_provider:verifyReleaseResources'.
    > A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
       > Android resource linking failed
         C:\Users\*****\.gradle\caches\transforms-2\files-2.1\733257008ca62c5b6ddfd0e885c42d88\core-1.1.0\res\values\values.xml:142:5-173:25: AAPT: error: resource android:attr/fontVariationSettings not found.
    
         C:\Users\*****\.gradle\caches\transforms-2\files-2.1\733257008ca62c5b6ddfd0e885c42d88\core-1.1.0\res\values\values.xml:142:5-173:25: AAPT: error: resource android:attr/ttcIndex not found.
    
    
    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
    
    * Get more help at https://help.gradle.org
    
    BUILD FAILED in 1m 19s
    Running Gradle task 'assembleRelease'...                           80.8s
    The built failed likely due to AndroidX incompatibilities in a plugin. The tool is about to try using Jetfier to solve the incompatibility.
    Building plugin cloud_firestore...
    Running Gradle task 'assembleAarRelease'...                     
    The plugin cloud_firestore could not be built due to the issue above.
    Process finished with exit code 1

     

     

    في احد يعرف سبب المشكله هذا او كيف يمكن حلها؟

    • أعجبني 2
×
×
  • أضف...