I'm getting this crash on 9.3 update, on 9.2 everything worked fine. What can it be? The error appears on sign in through any source (login pass, VK, google)
class AppDelegate: UIResponder, UIApplicationDelegate, GIDSignInDelegate {
var window: UIWindow?
private let settingsManager = SettingsManager.manager
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Googole Map
GMSServices.provideAPIKey("-k")
UINavigationBar.appearance().tintColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
UINavigationBar.appearance().barTintColor = #colorLiteral(red: 0.2069905996, green: 0.2386507988, blue: 0.3337202668, alpha: 1)
UITabBar.appearance().tintColor = #colorLiteral(red: 0.2069905996, green: 0.2386507988, blue: 0.3337202668, alpha: 1)
let barFont = UIFont.systemFont(ofSize: 20)
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1), NSFontAttributeName: barFont]
if settingsManager.isFirstStartApp {
} else {
settingsManager.isFirstStartApp = true
settingsManager.setDefaultSettings()
}
// Facebook
FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
// Google +
var configureError: NSError?
GGLContext.sharedInstance().configureWithError(&configureError)
assert(configureError == nil, "Error configuring Google services: \(String(describing: configureError)) )")
GIDSignIn.sharedInstance().delegate = self
return true
}
Error in the first application method when signing throug google. I've searched some topics - no luck. Conversion to Swift 4 - no luck. Any ideas?
Crash log pastebin.com/DEEeQnZB
With the accepted answer I got further, bbut now it crashes on
let predicate = NSPredicate(format: "isActive == %@", true as CVarArg)
with the same "Bad access"
UPD: The issue is resolved by replacing
let predicate = NSPredicate(format: "isActive == %@", true as CVarArg)
to
let predicate = NSPredicate(format: "isActive == true")
Have a similar issue with Facebook login - a work for me was found in the Xcode 9.3 release notes:
https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Chapters/Introduction.html#//apple_ref/doc/uid/TP40001051-CH1-DontLinkElementID_1
To quote them
In circumstances where protocol methods or base class methods defined in Objective-C claim to take non-null arguments of type id in their headers, but get invoked with nil values at runtime, Swift code compiled by Xcode 9.3 that overrides those methods may crash when the Swift implementations are invoked. (38675815) Workaround: Change the Swift override to take a value of type Any?. For example, if you implement the UIApplicationDelegate protocol's application(_:open:sourceApplication:annotation:) method:
class AppDelegate: UIApplicationDelegate {
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
return true
}
The program may crash when passed nil as the annotation argument. Avoid the crash by making the annotation argument have type Any?:
class AppDelegate: UIApplicationDelegate {
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any?) -> Bool {
return true
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With