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
flutter create .
pod install
a million times, deleting podfile, etc.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
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).