xcodeflutterdartnotificationsawesome-notifications

Swift Compiler Error (Xcode): No such module 'shared_preferences_ios' - Flutter


Notes

Problem

When running my flutter app for ios, I get this error:

Xcode build done.                                           86.8s
Failed to build iOS app
Could not build the precompiled application for the device.
Swift Compiler Error (Xcode): No such module 'shared_preferences_ios'
/Users/tomasward/Desktop/fredi_new/ios/Runner/AppDelegate.swift:3:7

Which is derived from this piece of code in AppDelegate.swift:

import UIKit
import Flutter
import awesome_notifications
import shared_preferences_ios //error here

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    GeneratedPluginRegistrant.register(with: self)
      
      if #available(iOS 10.0, *) {
           UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
          }
         
       application.registerForRemoteNotifications()
      

            SwiftAwesomeNotificationsPlugin.setPluginRegistrantCallback { registry in
                SwiftAwesomeNotificationsPlugin.register(
                  with: registry.registrar(forPlugin: "io.flutter.plugins.awesomenotifications.AwesomeNotificationsPlugin")!)
                FLTSharedPreferencesPlugin.register(
                  with: registry.registrar(forPlugin: "io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin")!)
            }
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  }
}

This code is boilerplate for the awesome_notifications plugin setup for ios. See here

I Have tried a million solutions

No solution seems to be consistent. I am looking for a general solution from people working on Flutter projects, not native ios projects.

Also it would be great if someone who worked with awesome_notifications could give me some insight


Solution

  • Kudos to the answer on this link:

    This is issue created by shared_preferences v2.0.16. Long story short - package/module shared_preferences_ios was renamed to shared_preferences_foundation. Fastest way to work around this is to downgrade shared_preferences to 2.0.15.

    shared_preferences: ^2.0.15 # Before
    shared_preferences: 2.0.15 # After
    

    You will then see this log when you run flutter pub get:

    < shared_preferences 2.0.15 (was 2.0.17) (2.0.17 available)
    + shared_preferences_ios 2.1.1
    + shared_preferences_macos 2.0.5
    

    Also, be careful with spelling mistakes as shared_prefrences_ios (wrong) is very similar to shared_preferences_ios (correct).