cowbell / cordova-plugin-geofence

Geofencing plugin for cordova
Apache License 2.0
264 stars 318 forks source link

ios build failing (Swift 3 errors) #243

Open graphicgeek opened 6 years ago

graphicgeek commented 6 years ago

I've seen some other closed issues that indicated this has been fixed but it is not building for me with a fresh HelloWorld app.

Cordova 7.0.1 ios platform 4.4.0 (also tried with 4.5.0) Xcode 8.3.3 (I also just updated to 9.0 with the same results) cordova-plugin-geofence 0.7.0

I even tried updating cordova-plugin-add-swift-support to version 1.7.0 but no luck.

Here's the log output:

/Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:181:39: '=' has been replaced with ':' in attribute arguments /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:897:35: Expected ',' joining parts of a multi-clause condition /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1612:21: 'SQLiteDB' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1036:19: Type declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1831:21: 'SQLiteDB' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1036:19: Type declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1971:21: 'SDError' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1603:20: Type declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:274:26: 'ForwardIndexType' has been renamed to 'Comparable' /Users/station5/Projects/phonegap/hello/platforms/ios/Swift.ForwardIndexType:2:18: 'ForwardIndexType' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:104:20: 'DISPATCH_QUEUE_PRIORITY_DEFAULT' has been renamed to 'DispatchQueue.GlobalQueuePriority.default' /Users/station5/Projects/phonegap/hello/platforms/ios/Dispatch.DISPATCH_QUEUE_PRIORITY_DEFAULT:2:12: 'DISPATCH_QUEUE_PRIORITYDEFAULT' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:187:24: 'CollectionType' has been renamed to 'Collection' /Users/station5/Projects/phonegap/hello/platforms/ios/Swift.CollectionType:2:18: 'CollectionType' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:187:46: 'SequenceType' has been renamed to 'Sequence' /Users/station5/Projects/phonegap/hello/platforms/ios/Swift.SequenceType:2:18: 'SequenceType' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:659:23: No type named 'Printable' in module 'Swift' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:659:40: No type named 'DebugPrintable' in module 'Swift' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:760:23: 'BooleanType' has been renamed to 'Bool' /Users/station5/Projects/phonegap/hello/platforms/ios/Swift.BooleanType:2:18: 'BooleanType' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:25:9: Cannot invoke 'log' with an argument list of type '(String)' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:25:9: Overloads for 'log' exist with these partially matching parameter lists: (Float), (Double), (CGFloat) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:31:9: Cannot invoke 'log' with an argument list of type '(String)' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:31:9: Overloads for 'log' exist with these partially matching parameter lists: (Float), (Double), (CGFloat) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:39:28: 'isMonitoringAvailableForClass' has been renamed to 'isMonitoringAvailable(for:)' 'isMonitoringAvailableForClass' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:55:45: 'AuthorizedAlways' has been renamed to 'authorizedAlways' 'AuthorizedAlways' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:63:70: Cannot call value of non-function type 'UIApplication' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:107:9: 'NSNotificationCenter' has been renamed to 'NotificationCenter' 'NSNotificationCenter' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:114:9: 'NSNotificationCenter' has been renamed to 'NotificationCenter' 'NSNotificationCenter' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:123:9: Cannot invoke 'log' with an argument list of type '(String)' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:123:9: Overloads for 'log' exist with these partially matching parameter lists: (Float), (Double), (CGFloat) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:134:9: Cannot invoke 'log' with an argument list of type '([String])' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:134:9: Overloads for 'log' exist with these partially matching parameter lists: (Float), (Double), (CGFloat) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:135:9: Cannot invoke 'log' with an argument list of type '([[String : String]])' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:135:9: Overloads for 'log' exist with these partially matching parameter lists: (Float), (Double), (CGFloat) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:140:22: 'init(status:messageAsString:)' has been replaced by 'init(status:messageAs:)' 'init(status:messageAsString:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:140:93: 'joinWithSeparator' has been renamed to 'joined(separator:)' /Users/station5/Projects/phonegap/hello/platforms/ios/Swift.Sequence:3:17: 'joinWithSeparator' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:142:22: 'init(status:messageAsDictionary:)' has been replaced by 'init(status:messageAs:)' 'init(status:messageAsDictionary:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:148:26: 'sendPluginResult(:callbackId:)' has been renamed to 'send(:callbackId:)' 'sendPluginResult(:callbackId:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:153:26: 'sendPluginResult(:callbackId:)' has been renamed to 'send(:callbackId:)' 'sendPluginResult(:callbackId:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:157:9: Cannot invoke 'log' with an argument list of type '(String)' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:157:9: Overloads for 'log' exist with these partially matching parameter lists: (Float), (Double), (CGFloat) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:159:26: 'sendPluginResult(:callbackId:)' has been renamed to 'send(:callbackId:)' 'sendPluginResult(:callbackId:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:163:40: Cannot call value of non-function type 'UIApplication' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:68:43: 'NSJSONReadingOptions' has been renamed to 'JSONSerialization.ReadingOptions' 'NSJSONReadingOptions' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:173:67: Missing argument label 'geoNotification:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:171:9: 'dispatch_async' has been replaced by instance method 'DispatchQueue.async(execute:)' /Users/station5/Projects/phonegap/hello/platforms/ios/Dispatch.dispatch_async:2:13: 'dispatch_async' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:171:24: 'dispatch_get_global_queue' has been replaced by 'DispatchQueue.global(attributes:)' /Users/station5/Projects/phonegap/hello/platforms/ios/Dispatch.dispatch_get_global_queue:2:13: 'dispatch_get_global_queue' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:176:17: 'dispatch_async' has been replaced by instance method 'DispatchQueue.async(execute:)' /Users/station5/Projects/phonegap/hello/platforms/ios/Dispatch.dispatch_async:2:13: 'dispatch_async' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:176:32: 'dispatch_get_main_queue()' has been replaced by property 'DispatchQueue.main' /Users/station5/Projects/phonegap/hello/platforms/ios/Dispatch.dispatch_get_main_queue:2:13: 'dispatch_get_mainqueue()' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:195:36: 'init(status:messageAsString:)' has been replaced by 'init(status:messageAs:)' 'init(status:messageAsString:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:196:39: 'sendPluginResult(:callbackId:)' has been renamed to 'send(:callbackId:)' 'sendPluginResult(:callbackId:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:194:13: 'dispatch_async' has been replaced by instance method 'DispatchQueue.async(execute:)' /Users/station5/Projects/phonegap/hello/platforms/ios/Dispatch.dispatch_async:2:13: 'dispatch_async' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:194:28: 'dispatch_get_main_queue()' has been replaced by property 'DispatchQueue.main' /Users/station5/Projects/phonegap/hello/platforms/ios/Dispatch.dispatch_get_main_queue:2:13: 'dispatch_get_main_queue()' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:191:9: 'dispatch_async' has been replaced by instance method 'DispatchQueue.async(execute:)' /Users/station5/Projects/phonegap/hello/platforms/ios/Dispatch.dispatch_async:2:13: 'dispatch_async' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:191:24: 'dispatch_get_global_queue' has been replaced by 'DispatchQueue.global(attributes:)' /Users/station5/Projects/phonegap/hello/platforms/ios/Dispatch.dispatch_get_global_queue:2:13: 'dispatch_get_globalqueue' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:204:67: Missing argument label 'id:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:208:39: 'sendPluginResult(:callbackId:)' has been renamed to 'send(:callbackId:)' 'sendPluginResult(:callbackId:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:206:13: 'dispatch_async' has been replaced by instance method 'DispatchQueue.async(execute:)' /Users/station5/Projects/phonegap/hello/platforms/ios/Dispatch.dispatch_async:2:13: 'dispatch_async' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:206:28: 'dispatch_get_main_queue()' has been replaced by property 'DispatchQueue.main' /Users/station5/Projects/phonegap/hello/platforms/ios/Dispatch.dispatch_get_main_queue:2:13: 'dispatch_get_main_queue()' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:202:9: 'dispatch_async' has been replaced by instance method 'DispatchQueue.async(execute:)' /Users/station5/Projects/phonegap/hello/platforms/ios/Dispatch.dispatch_async:2:13: 'dispatch_async' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:202:24: 'dispatch_get_global_queue' has been replaced by 'DispatchQueue.global(attributes:)' /Users/station5/Projects/phonegap/hello/platforms/ios/Dispatch.dispatch_get_global_queue:2:13: 'dispatch_get_globalqueue' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:218:39: 'sendPluginResult(:callbackId:)' has been renamed to 'send(:callbackId:)' 'sendPluginResult(:callbackId:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:216:13: 'dispatch_async' has been replaced by instance method 'DispatchQueue.async(execute:)' /Users/station5/Projects/phonegap/hello/platforms/ios/Dispatch.dispatch_async:2:13: 'dispatch_async' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:216:28: 'dispatch_get_main_queue()' has been replaced by property 'DispatchQueue.main' /Users/station5/Projects/phonegap/hello/platforms/ios/Dispatch.dispatch_get_main_queue:2:13: 'dispatch_get_main_queue()' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:214:9: 'dispatch_async' has been replaced by instance method 'DispatchQueue.async(execute:)' /Users/station5/Projects/phonegap/hello/platforms/ios/Dispatch.dispatch_async:2:13: 'dispatch_async' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:214:24: 'dispatch_get_global_queue' has been replaced by 'DispatchQueue.global(attributes:)' /Users/station5/Projects/phonegap/hello/platforms/ios/Dispatch.dispatch_get_global_queue:2:13: 'dispatch_get_global_queue' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:224:9: Cannot invoke 'log' with an argument list of type '(String)' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:224:9: Overloads for 'log' exist with these partially matching parameter lists: (Float), (Double), (CGFloat) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:229:24: Missing argument label 'script:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:234:9: Cannot invoke 'log' with an argument list of type '(String)' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:234:9: Overloads for 'log' exist with these partially matching parameter lists: (Float), (Double), (CGFloat) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:235:43: Cannot call value of non-function type 'UIApplication' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:243:28: Missing argument label 'script:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:251:27: 'stringByEvaluatingJavaScriptFromString' has been renamed to 'stringByEvaluatingJavaScript(from:)' 'stringByEvaluatingJavaScriptFromString' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:256:13: Cannot invoke 'log' with an argument list of type '(String)' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:256:13: Overloads for 'log' exist with these partially matching parameter lists: (Float), (Double), (CGFloat) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:273:9: Cannot invoke 'log' with an argument list of type '(String)' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:273:9: Overloads for 'log' exist with these partially matching parameter lists: (Float), (Double), (CGFloat) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:286:9: Cannot invoke 'log' with an argument list of type '(String)' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:286:9: Overloads for 'log' exist with these partially matching parameter lists: (Float), (Double), (CGFloat) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:290:9: Cannot invoke 'log' with an argument list of type '([String])' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:290:9: Overloads for 'log' exist with these partially matching parameter lists: (Float), (Double), (CGFloat) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:291:9: Cannot invoke 'log' with an argument list of type '([[String : String]])' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:291:9: Overloads for 'log' exist with these partially matching parameter lists: (Float), (Double), (CGFloat) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:366:31: 'GeneratorType' has been renamed to 'IteratorProtocol' /Users/station5/Projects/phonegap/hello/platforms/ios/Swift.GeneratorType:2:18: 'GeneratorType' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:301:9: Cannot invoke 'log' with an argument list of type '(String)' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:301:9: Overloads for 'log' exist with these partially matching parameter lists: (Float), (Double), (CGFloat) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:314:75: Passing non-escaping parameter 'completion' to function expecting an @escaping closure /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:285:60: Parameter 'completion' is implicitly non-escaping /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:316:25: 'startMonitoringForRegion' has been renamed to 'startMonitoring(for:)' 'startMonitoringForRegion' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:335:22: Missing argument label 'id:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:336:41: Missing argument label 'id:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:338:13: Cannot invoke 'log' with an argument list of type '(String)' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:338:13: Overloads for 'log' exist with these partially matching parameter lists: (Float), (Double), (CGFloat) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:347:13: Cannot invoke 'log' with an argument list of type '(String)' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:347:13: Overloads for 'log' exist with these partially matching parameter lists: (Float), (Double), (CGFloat) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:348:29: 'stopMonitoringForRegion' has been renamed to 'stopMonitoring(for:)' 'stopMonitoringForRegion' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:353:9: Cannot invoke 'log' with an argument list of type '(String)' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:353:9: Overloads for 'log' exist with these partially matching parameter lists: (Float), (Double), (CGFloat) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:354:25: Missing argument label 'region:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:358:9: Cannot invoke 'log' with an argument list of type '(String)' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:358:9: Overloads for 'log' exist with these partially matching parameter lists: (Float), (Double), (CGFloat) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:359:25: Missing argument label 'region:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:365:35: Missing argument label 'geoNotification:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:366:17: Cannot invoke 'log' with an argument list of type '(String)' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:366:17: Overloads for 'log' exist with these partially matching parameter lists: (Float), (Double), (CGFloat) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:368:43: 'removeValueForKey' has been renamed to 'removeValue(forKey:)' /Users/station5/Projects/phonegap/hello/platforms/ios/Swift.Dictionary<Key, Value>:7:26: 'removeValueForKey' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:374:9: Cannot invoke 'log' with an argument list of type '(String)' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:374:9: Overloads for 'log' exist with these partially matching parameter lists: (Float), (Double), (CGFloat) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:391:43: 'removeValueForKey' has been renamed to 'removeValue(forKey:)' /Users/station5/Projects/phonegap/hello/platforms/ios/Swift.Dictionary<Key, Value>:7:26: 'removeValueForKey' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:397:49: Missing argument label 'id:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:404:13: 'NSNotificationCenter' has been renamed to 'NotificationCenter' 'NSNotificationCenter' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:409:9: Cannot invoke 'log' with an argument list of type '(String)' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:409:9: Overloads for 'log' exist with these partially matching parameter lists: (Float), (Double), (CGFloat) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:411:59: Cannot call value of non-function type 'TimeZone' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:413:33: Cannot assign value of type 'NSDate' to type 'Date?' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:634:79: 'NSJSONWritingOptions' has been renamed to 'JSONSerialization.WritingOptions' 'NSJSONWritingOptions' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:419:40: Cannot call value of non-function type 'UIApplication' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:439:13: Cannot invoke 'log' with an argument list of type '(String)' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:439:13: Overloads for 'log' exist with these partially matching parameter lists: (Float), (Double), (CGFloat) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:444:43: Missing argument label 'sqlStr:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:449:17: Cannot invoke 'log' with an argument list of type '(String)' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:449:17: Overloads for 'log' exist with these partially matching parameter lists: (Float), (Double), (CGFloat) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:455:22: Missing argument label 'id:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:456:20: Missing argument label 'geoNotification:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:459:17: Missing argument label 'geoNotification:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:465:35: Missing argument label 'sqlStr:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:475:35: Missing argument label 'sqlStr:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:484:47: Missing argument label 'sqlStr:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:502:48: Missing argument label 'sqlStr:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:520:35: Missing argument label 'sqlStr:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/GeofencePlugin.swift:528:36: Missing argument label 'sqlStr:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1047:23: 'COpaquePointer' has been renamed to 'OpaquePointer' /Users/station5/Projects/phonegap/hello/platforms/ios/Swift.COpaquePointer:2:15: 'COpaquePointer' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1053:70: Cannot convert value of type '()' to expected argument type '__OS_dispatch_queue_attr?' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1306:40: 'COpaquePointer' has been renamed to 'OpaquePointer' /Users/station5/Projects/phonegap/hello/platforms/ios/Swift.COpaquePointer:2:15: 'COpaquePointer' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:2121:39: 'stringByDeletingLastPathComponent' has been renamed to 'deletingLastPathComponent' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:2121:39: 'stringByDeletingLastPathComponent' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:2128:39: 'stringByDeletingPathExtension' has been renamed to 'deletingPathExtension' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:2128:39: 'stringByDeletingPathExtension' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:68:59: Missing argument label 'sqlStr:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:125:58: Missing argument label 'sqlStr:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:173:68: Missing argument label 'sqlStr:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:175:43: 'indexOf' has been renamed to 'index(of:)' /Users/station5/Projects/phonegap/hello/platforms/ios/Swift.Collection:3:17: 'indexOf' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:235:68: Missing argument label 'sqlStr:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:287:67: Missing argument label 'sqlStr:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:334:63: Cannot call value of non-function type 'Bool' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:376:25: Value of type 'SwiftData.SQLiteDB' has no member 'escapeValue' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:388:25: Value of type 'SwiftData.SQLiteDB' has no member 'escapeIdentifier' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:423:30: Value of type 'SwiftData.SQLiteDB' has no member 'createSQLTable' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:468:30: Value of type 'SwiftData.SQLiteDB' has no member 'deleteSQLTable' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:513:40: Value of type 'SwiftData.SQLiteDB' has no member 'existingTables' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:545:26: Type 'SwiftData.SDError' has no member 'errorMessageFromCode' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:683:30: Value of type 'SwiftData.SQLiteDB' has no member 'createIndex' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:728:30: Value of type 'SwiftData.SQLiteDB' has no member 'removeIndex' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:773:40: Value of type 'SwiftData.SQLiteDB' has no member 'existingIndexes' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:820:40: Value of type 'SwiftData.SQLiteDB' has no member 'existingIndexesForTable' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:985:60: 'NSSearchPathDirectory' has been renamed to 'FileManager.SearchPathDirectory' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:985:60: 'NSSearchPathDirectory' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:988:13: 'NSFileManager' has been renamed to 'FileManager' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:988:13: 'NSFileManager' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:990:21: 'NSFileManager' has been renamed to 'FileManager' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:990:21: 'NSFileManager' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:997:32: 'UUIDString' has been renamed to 'uuidString' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:997:32: 'UUIDString' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1020:60: 'NSSearchPathDirectory' has been renamed to 'FileManager.SearchPathDirectory' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1020:60: 'NSSearchPathDirectory' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1025:17: 'NSFileManager' has been renamed to 'FileManager' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1025:17: 'NSFileManager' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1208:64: 'NSSearchPathDirectory' has been renamed to 'FileManager.SearchPathDirectory' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1208:64: 'NSSearchPathDirectory' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1230:42: Missing argument label 'sqlStr:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1243:39: Missing argument label 'sqlStr:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1253:39: Missing argument label 'sqlStr:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1268:42: Missing argument label 'sqlStr:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1280:34: Missing argument label 'sqlStr:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1286:39: Missing argument label 'sqlStr:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1335:37: 'NSDateFormatter' has been renamed to 'DateFormatter' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1335:37: 'NSDateFormatter' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1358:51: Missing argument for parameter #3 in call /Users/station5/Projects/phonegap/hello/platforms/ios/Darwin.bind:1:13: 'bind' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1366:24: 'COpaquePointer' has been renamed to 'OpaquePointer' /Users/station5/Projects/phonegap/hello/platforms/ios/Swift.COpaquePointer:2:15: 'COpaquePointer' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1401:51: Missing argument for parameter #3 in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1409:24: 'COpaquePointer' has been renamed to 'OpaquePointer' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1583:68: 'NSSearchPathDirectory' has been renamed to 'FileManager.SearchPathDirectory' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1586:21: 'NSFileManager' has been renamed to 'FileManager' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1630:31: Use of unresolved identifier 'escapeIdentifier' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1636:30: Value of type 'String' has no member 'substringToIndex' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1638:27: Use of unresolved identifier 'escapeValue' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1695:37: 'NSDateFormatter' has been renamed to 'DateFormatter' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1701:49: Missing argument label 'image:' in call /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1841:30: Use of unresolved identifier 'escapeIdentifier' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1844:32: Use of unresolved identifier 'escapeIdentifier' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1867:23: Use of unresolved identifier 'executeQuery' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1927:23: Use of unresolved identifier 'executeQuery' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:1950:23: Use of unresolved identifier 'executeQuery' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:2143:21: 'stringByAppendingPathComponent' has been renamed to 'appendingPathComponent(:)' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:2150:21: 'stringByAppendingPathExtension' has been renamed to 'appendingPathExtension(:)' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:2150:21: 'stringByAppendingPathExtension' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:340:13: Closure use of non-escaping parameter 'closure' may allow it to escape /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:325:63: Parameter 'closure' is implicitly non-escaping /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:878:16: Closure use of non-escaping parameter 'transactionClosure' may allow it to escape /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:856:36: Parameter 'transactionClosure' is implicitly non-escaping /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:942:16: Closure use of non-escaping parameter 'savepointClosure' may allow it to escape /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftData.swift:920:34: Parameter 'savepointClosure' is implicitly non-escaping /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:371:36: Use of undeclared type 'DictionaryGenerator' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:372:32: 'IndexingGenerator' has been renamed to 'IndexingIterator' /Users/station5/Projects/phonegap/hello/platforms/ios/Swift.IndexingGenerator:2:15: 'IndexingGenerator' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:626:38: 'NSJSONWritingOptions' has been renamed to 'JSONSerialization.WritingOptions' 'NSJSONWritingOptions' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1283:26: 'init(bool:)' has been renamed to 'init(value:)' 'init(bool:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1284:27: 'init(bool:)' has been renamed to 'init(value:)' 'init(bool:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1285:35: 'fromCString' is unavailable: Please use String.init?(validatingUTF8:) instead. Note that it no longer accepts NULL as a valid input. Also consider using String(cString:), that will attempt to repair ill-formed code units. /Users/station5/Projects/phonegap/hello/platforms/ios/Swift.String:3:24: 'fromCString' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1286:36: 'fromCString' is unavailable: Please use String.init?(validatingUTF8:) instead. Note that it no longer accepts NULL as a valid input. Also consider using String(cString:), that will attempt to repair ill-formed code units. /Users/station5/Projects/phonegap/hello/platforms/ios/Swift.String:3:24: 'fromCString' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:187:1: Type 'JSON' does not conform to protocol '_IndexableBase' /Users/station5/Projects/phonegap/hello/platforms/ios/Swift._IndexableBase:30:20: Protocol requires nested type '_Element'; do you want to add it? /Users/station5/Projects/phonegap/hello/platforms/ios/Swift._IndexableBase:53:20: Protocol requires nested type 'SubSequence'; do you want to add it? /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:133:29: Return expression of type '[AnyObject]' does not conform to 'AnyObject' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:135:29: Return expression of type '[String : AnyObject]' does not conform to 'AnyObject' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:183:49: Cannot invoke initializer for type 'JSON' with an argument list of type '(NSNull)' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:183:49: Overloads for 'JSON' exist with these partially matching parameter lists: (AnyObject), ([JSON]), ([String : JSON]) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:196:47: 'rawArray' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:198:52: 'rawDictionary' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:207:47: 'rawArray' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:209:52: 'rawDictionary' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:232:29: 'rawArray' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:234:29: 'rawDictionary' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:245:25: 'rawArray' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:247:25: 'rawDictionary' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:682:29: 'rawArray' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:118:17: 'rawArray' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:701:29: 'rawArray' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:118:17: 'rawArray' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:708:31: Value of type '[AnyObject]' does not conform to 'AnyObject' in assignment /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:723:25: 'rawDictionary' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:119:17: 'rawDictionary' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:743:29: 'rawDictionary' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:119:17: 'rawDictionary' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:750:31: Value of type '[String : AnyObject]' does not conform to 'AnyObject' in assignment /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:767:29: 'rawNumber' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:121:17: 'rawNumber' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:774:31: 'init(bool:)' has been renamed to 'init(value:)' 'init(bool:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:792:27: 'init(bool:)' has been renamed to 'init(value:)' 'init(bool:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:848:29: 'rawNumber' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:121:17: 'rawNumber' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:864:57: Cannot call value of non-function type 'NSDecimalNumber' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:865:48: Cannot call value of non-function type 'NSDecimalNumber' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:871:24: 'init(double:)' has been renamed to 'init(value:)' 'init(double:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:887:29: 'rawNull' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:122:17: 'rawNull' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:922:37: Cannot convert value of type 'String?' to expected argument type 'AnyObject?' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:937:31: 'init(double:)' has been renamed to 'init(value:)' 'init(double:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:949:27: 'init(double:)' has been renamed to 'init(value:)' 'init(double:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:959:31: 'init(float:)' has been renamed to 'init(value:)' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:971:27: 'init(float:)' has been renamed to 'init(value:)' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:977:33: 'longValue' is unavailable in Swift /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:981:31: 'init(integer:)' has been renamed to 'init(value:)' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:990:37: 'integerValue' has been renamed to 'intValue' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:993:27: 'init(integer:)' has been renamed to 'init(value:)' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:999:33: 'unsignedLongValue' is unavailable in Swift: use 'uintValue' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1003:31: 'init(unsignedLong:)' is unavailable in Swift /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1012:37: 'unsignedLongValue' is unavailable in Swift: use 'uintValue' /Users/station5/Projects/phonegap/hello/platforms/ios/Foundation.NSNumber:32:14: 'unsignedLongValue' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1015:27: 'init(unsignedLong:)' is unavailable in Swift /Users/station5/Projects/phonegap/hello/platforms/ios/Foundation.NSNumber:13:12: 'init(unsignedLong:)' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1021:33: 'charValue' has been renamed to 'int8Value' 'charValue' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1025:31: 'init(char:)' has been renamed to 'init(value:)' 'init(char:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1034:37: 'charValue' has been renamed to 'int8Value' 'charValue' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1037:27: 'init(char:)' has been renamed to 'init(value:)' 'init(char:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1043:33: 'unsignedCharValue' has been renamed to 'uint8Value' 'unsignedCharValue' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1047:31: 'init(unsignedChar:)' has been renamed to 'init(value:)' 'init(unsignedChar:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1056:37: 'unsignedCharValue' has been renamed to 'uint8Value' 'unsignedCharValue' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1059:27: 'init(unsignedChar:)' has been renamed to 'init(value:)' 'init(unsignedChar:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1065:33: 'shortValue' has been renamed to 'int16Value' 'shortValue' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1069:31: 'init(short:)' has been renamed to 'init(value:)' 'init(short:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1078:37: 'shortValue' has been renamed to 'int16Value' 'shortValue' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1081:27: 'init(short:)' has been renamed to 'init(value:)' 'init(short:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1087:33: 'unsignedShortValue' has been renamed to 'uint16Value' 'unsignedShortValue' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1091:31: 'init(unsignedShort:)' has been renamed to 'init(value:)' 'init(unsignedShort:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1100:37: 'unsignedShortValue' has been renamed to 'uint16Value' 'unsignedShortValue' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1103:27: 'init(unsignedShort:)' has been renamed to 'init(value:)' 'init(unsignedShort:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1109:33: Cannot convert return expression of type 'Int?' to return type 'Int32?' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1113:31: 'init(int:)' has been renamed to 'init(value:)' 'init(int:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1122:37: Cannot convert return expression of type 'Int' to return type 'Int32' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1125:27: 'init(int:)' has been renamed to 'init(value:)' 'init(int:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1131:33: 'unsignedIntValue' has been renamed to 'uint32Value' 'unsignedIntValue' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1135:31: 'init(unsignedInt:)' has been renamed to 'init(value:)' 'init(unsignedInt:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1144:37: 'unsignedIntValue' has been renamed to 'uint32Value' 'unsignedIntValue' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1147:27: 'init(unsignedInt:)' has been renamed to 'init(value:)' 'init(unsignedInt:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1153:33: 'longLongValue' has been renamed to 'int64Value' 'longLongValue' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1157:31: 'init(longLong:)' has been renamed to 'init(value:)' 'init(longLong:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1166:37: 'longLongValue' has been renamed to 'int64Value' 'longLongValue' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1169:27: 'init(longLong:)' has been renamed to 'init(value:)' 'init(longLong:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1175:33: 'unsignedLongLongValue' has been renamed to 'uint64Value' 'unsignedLongLongValue' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1179:31: 'init(unsignedLongLong:)' has been renamed to 'init(value:)' 'init(unsignedLongLong:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1188:37: 'unsignedLongLongValue' has been renamed to 'uint64Value' 'unsignedLongLongValue' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1191:27: 'init(unsignedLongLong:)' has been renamed to 'init(value:)' 'init(unsignedLongLong:)' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1293:35: 'fromCString' is unavailable: Please use String.init?(validatingUTF8:) instead. Note that it no longer accepts NULL as a valid input. Also consider using String(cString:), that will attempt to repair ill-formed code units. /Users/station5/Projects/phonegap/hello/platforms/ios/Swift.String:3:24: 'fromCString' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1294:45: 'NSComparisonResult' has been renamed to 'ComparisonResult' 'NSComparisonResult' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1295:50: 'NSComparisonResult' has been renamed to 'ComparisonResult' 'NSComparisonResult' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:218:60: 'rawArray' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:118:17: 'rawArray' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:220:37: 'rawDictionary' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:119:17: 'rawDictionary' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:256:25: 'rawArray' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:118:17: 'rawArray' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:258:25: 'rawDictionary' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:119:17: 'rawDictionary' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:302:57: Value of type 'Int' has no member 'successor' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:304:67: Value of type 'Dictionary<String, AnyObject>.Index' has no member 'successor' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:325:37: Value of optional type 'Int?' not unwrapped; did you mean to use '!' or '?'? /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:327:36: Binary operator '<' cannot be applied to two 'Dictionary<String, AnyObject>.Index?' operands /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:327:36: Overloads for '<' exist with these partially matching parameter lists: (JSONIndex, JSONIndex), (JSON, JSON), (NSNumber, NSNumber), (Date, Date), (DateInterval, DateInterval), (Decimal, Decimal), (IndexPath, IndexPath), (IndexSet.Index, IndexSet.Index), (DispatchTime, DispatchTime), (DispatchWallTime, DispatchWallTime), (UInt8, UInt8), (Int8, Int8), (UInt16, UInt16), (Int16, Int16), (UInt32, UInt32), (Int32, Int32), (UInt64, UInt64), (Int64, Int64), (UInt, UInt), (Int, Int), (Character, Character), (ObjectIdentifier, ObjectIdentifier), (String, String), (String.Index, String.Index), (String.UnicodeScalarView.Index, String.UnicodeScalarView.Index), (String.UTF16View.Index, String.UTF16View.Index), (String.UTF8View.Index, String.UTF8View.Index), (UnicodeScalar, UnicodeScalar), (UnsafeMutableRawPointer, UnsafeMutableRawPointer), (UnsafeRawPointer, UnsafeRawPointer), (_SwiftNSOperatingSystemVersion, _SwiftNSOperatingSystemVersion), (AnyIndex, AnyIndex), (LazyDropWhileIndex, LazyDropWhileIndex), (LazyPrefixWhileIndex, LazyPrefixWhileIndex), ((A, B), (A, B)), ((A, B, C), (A, B, C)), ((A, B, C, D), (A, B, C, D)), ((A, B, C, D, E), (A, B, C, D, E)), ((A, B, C, D, E, F), (A, B, C, D, E, F)), (ClosedRangeIndex, ClosedRangeIndex), (LazyFilterIndex, LazyFilterIndex), (FlattenCollectionIndex, FlattenCollectionIndex), (FlattenBidirectionalCollectionIndex, FlattenBidirectionalCollectionIndex), (Set.Index, Set.Index), (Dictionary<Key, Value>.Index, Dictionary<Key, Value>.Index), (ReversedIndex, ReversedIndex), (ReversedRandomAccessIndex, ReversedRandomAccessIndex), (UnsafeMutablePointer, UnsafeMutablePointer), (UnsafePointer, UnsafePointer), (Measurement, Measurement) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:336:38: Value of optional type 'Int?' not unwrapped; did you mean to use '!' or '?'? /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:338:36: Binary operator '<=' cannot be applied to two 'Dictionary<String, AnyObject>.Index?' operands /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:338:36: Overloads for '<=' exist with these partially matching parameter lists: (JSONIndex, JSONIndex), (JSON, JSON), (NSNumber, NSNumber), (IndexPath, IndexPath), (IndexSet.Index, IndexSet.Index), (UInt8, UInt8), (Int8, Int8), (UInt16, UInt16), (Int16, Int16), (UInt32, UInt32), (Int32, Int32), (UInt64, UInt64), (Int64, Int64), (UInt, UInt), (Int, Int), ((A, B), (A, B)), ((A, B, C), (A, B, C)), ((A, B, C, D), (A, B, C, D)), ((A, B, C, D, E), (A, B, C, D, E)), ((A, B, C, D, E, F), (A, B, C, D, E, F)), (LazyFilterIndex, LazyFilterIndex) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:347:38: Value of optional type 'Int?' not unwrapped; did you mean to use '!' or '?'? /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:349:36: Binary operator '>=' cannot be applied to two 'Dictionary<String, AnyObject>.Index?' operands /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:349:36: Overloads for '>=' exist with these partially matching parameter lists: (JSONIndex, JSONIndex), (JSON, JSON), (NSNumber, NSNumber), (IndexPath, IndexPath), (IndexSet.Index, IndexSet.Index), (UInt8, UInt8), (Int8, Int8), (UInt16, UInt16), (Int16, Int16), (UInt32, UInt32), (Int32, Int32), (UInt64, UInt64), (Int64, Int64), (UInt, UInt), (Int, Int), (_SwiftNSOperatingSystemVersion, _SwiftNSOperatingSystemVersion), ((A, B), (A, B)), ((A, B, C), (A, B, C)), ((A, B, C, D), (A, B, C, D)), ((A, B, C, D, E), (A, B, C, D, E)), ((A, B, C, D, E, F), (A, B, C, D, E, F)), (LazyFilterIndex, LazyFilterIndex) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:358:37: Value of optional type 'Int?' not unwrapped; did you mean to use '!' or '?'? /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:360:36: Binary operator '>' cannot be applied to two 'Dictionary<String, AnyObject>.Index?' operands /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:360:36: Overloads for '>' exist with these partially matching parameter lists: (JSONIndex, JSONIndex), (JSON, JSON), (NSNumber, NSNumber), (Date, Date), (IndexPath, IndexPath), (IndexSet.Index, IndexSet.Index), (UInt8, UInt8), (Int8, Int8), (UInt16, UInt16), (Int16, Int16), (UInt32, UInt32), (Int32, Int32), (UInt64, UInt64), (Int64, Int64), (UInt, UInt), (Int, Int), ((A, B), (A, B)), ((A, B, C), (A, B, C)), ((A, B, C, D), (A, B, C, D)), ((A, B, C, D, E), (A, B, C, D, E)), ((A, B, C, D, E, F), (A, B, C, D, E, F)), (LazyFilterIndex, LazyFilterIndex) /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:437:19: '_error' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:126:17: '_error' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:439:50: 'rawArray' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:118:17: 'rawArray' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:440:34: 'rawArray' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:118:17: 'rawArray' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:443:19: '_error' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:126:17: '_error' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:449:25: 'rawArray' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:118:17: 'rawArray' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:450:26: 'rawArray' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:118:17: 'rawArray' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:461:33: 'rawDictionary' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:119:17: 'rawDictionary' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:464:23: '_error' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:126:17: '_error' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:467:19: '_error' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:126:17: '_error' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:473:22: 'rawDictionary' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:119:17: 'rawDictionary' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:518:41: 'removeAtIndex' has been renamed to 'remove(at:)' /Users/station5/Projects/phonegap/hello/platforms/ios/Swift.Array:3:26: 'removeAtIndex' has been explicitly marked unavailable here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:627:15: 'NSJSONSerialization' has been renamed to 'JSONSerialization' 'NSJSONSerialization' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:634:44: Default argument value of type 'String.Encoding' cannot be converted to type 'UInt' /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1203:20: 'rawNumber' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:121:17: 'rawNumber' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1207:20: 'rawNumber' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:121:17: 'rawNumber' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1209:20: 'rawArray' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:118:17: 'rawArray' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1211:20: 'rawDictionary' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:119:17: 'rawDictionary' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1223:20: 'rawNumber' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:121:17: 'rawNumber' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1227:20: 'rawNumber' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:121:17: 'rawNumber' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1229:20: 'rawArray' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:118:17: 'rawArray' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1231:20: 'rawDictionary' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:119:17: 'rawDictionary' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1243:20: 'rawNumber' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:121:17: 'rawNumber' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1247:20: 'rawNumber' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:121:17: 'rawNumber' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1249:20: 'rawArray' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:118:17: 'rawArray' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1251:20: 'rawDictionary' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:119:17: 'rawDictionary' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1263:20: 'rawNumber' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:121:17: 'rawNumber' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1275:20: 'rawNumber' is inaccessible due to 'private' protection level /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:121:17: 'rawNumber' declared here /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1311:36: 'NSComparisonResult' has been renamed to 'ComparisonResult' 'NSComparisonResult' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1327:36: 'NSComparisonResult' has been renamed to 'ComparisonResult' 'NSComparisonResult' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1339:36: 'NSComparisonResult' has been renamed to 'ComparisonResult' 'NSComparisonResult' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1351:36: 'NSComparisonResult' has been renamed to 'ComparisonResult' 'NSComparisonResult' was obsoleted in Swift 3 /Users/station5/Projects/phonegap/hello/platforms/ios/HelloWorld/Plugins/cordova-plugin-geofence/SwiftyJson.swift:1363:36: 'NSComparisonResult' has been renamed to 'ComparisonResult'

centos94 commented 6 years ago

@graphicgeek after some days trying to resolve this, i finally was able to compile the project and to prevent application crash after adding a new zone.

I was able to do that doing:

After all this, you should have files like the attached ones!

geofence-plugin.zip

I didn't have the opportunity to test that notification really works, but geofence does all the passage (init and add/update) with no issues.

Hope this can help you.

graphicgeek commented 6 years ago

Thanks @centos94, I will give this a try.

centos94 commented 6 years ago

@graphicgeek let me know if it works so it can be useful for others with the same problem too!

JustCallMeMarly commented 6 years ago

Worked for me thanks !

dovk commented 6 years ago

Will this work using XCode9 or do we have to stay below that?

centos94 commented 6 years ago

@dovk yes, it works with xcode 9!

dovk commented 6 years ago

@centos94 I went by your instructions as written above to @graphicgeek and it works on the Mac using XCode9 + no need for Swift code conversion anymore. Thank you very very much!

graphicgeek commented 6 years ago

This worked for me. It looks like someone has forked the repo to create a version that has all of these files here https://github.com/compelling/cordova-plugin-geofence/

Note, I had to remove from my config.xml to get it to build.

Hopefully the fixed files will get merged into the main repo soon.

marcelomiura commented 6 years ago

HI there

Not sure if it's related, but I'm not able to get it working on ios. I could build the project successfully using this fork (https://github.com/compelling/cordova-plugin-geofence/) and when I try to initialize the plugin, the success callback is called. I can also see the geofences watched by the geofence.getWatched() method, but the method onTransitionReceived is never called. When testing on android, it works fine.

Xcode Version 9.0.1 iOS: 11.0.3 Cordova iOS platform: 4.3.1 ionic v1 Project

Any ideas?

dovk commented 6 years ago

I realize now what worked was that I was able to complete the build without any errors, but the geofence itself still does not work. Can someone point me to a fork that works with Xcode 9 ?

centos94 commented 6 years ago

@marcelomiura @dovk I'm not sure of that, and for now i have no way to test it, but i noticed that in the logs there is a warning Location always permissions not granted.

Now i tried to add in the plist file NSLocationAlwaysAndWhenInUseUsageDescription, the warning disappeared and the app asks me another authorization. Maybe is that.

Can you try it and tell us if it works? Although i don't know how to resolve, cause the logs says that the geofence are added correctly.

marcelomiura commented 6 years ago

@centos94 I've already added NSLocationAlwaysAndWhenInUseUsageDescription on the plist too.

I could make it work simulating a big location change with Xcode. When disabling the location simulator, all my near geofences were detected at the same time.

But I'm not able to make this work testing a normal use case yet.

rodneyjoyce commented 6 years ago

Firstly, thanks for the hard work on this. I am using Ionic Cloud build and I beleive they have upgraded it to use a new version of Xcode which does not use Swift 2.3. What are the plans to upgrade this plugin to use newer version of Swift? You can see my issues with Ionic 2 here: https://forum.ionicframework.com/t/ionic-package-ios-release-build-error-in-package-ionic-services/109507/15

dovk commented 6 years ago

Finally! Thank you again centos94 - I checked again and the solution works! image The .ipa was built on a macMini (OS Sierra 10.12.6) using XCode 9.0.1, and the screenshot of the geofence notification is from my iPhone (iOS 11.0.3). In this build I also made the switch from UIWebView to WKWebView, and set the major packages to the latest versions, such as

I did not have to change much in the Xcode developer, other than adding the 1024 icon manually (until I figure that one out). And though I'm not sure I needed to, I ticked the location updates checkbox in Capabilities/Background modes. As far as permissons entries under Info, I didn't have to add anything, it seems easier to handle that in config.xml -

    <platform name="ios">
        <config-file parent="NSBluetoothPeripheralUsageDescription" platform="ios" target="*-Info.plist">
            <string>${EXECUTABLE_NAME} requires bluetooth access to function properly</string>
        </config-file>
        <config-file parent="NSCalendarsUsageDescription" platform="ios" target="*-Info.plist">
            <string>${EXECUTABLE_NAME} requires calendar access to function properly</string>
        </config-file>
        <config-file parent="NSCameraUsageDescription" platform="ios" target="*-Info.plist">
            <string>${EXECUTABLE_NAME} requires camera access to function properly</string>
        </config-file>
        <config-file parent="NSContactsUsageDescription" platform="ios" target="*-Info.plist">
            <string>${EXECUTABLE_NAME} requires contacts access to function properly</string>
        </config-file>
        <config-file parent="NSLocationAlwaysAndWhenInUseUsageDescription" platform="ios" target="*-Info.plist">
            <string>${EXECUTABLE_NAME} would like to check your location when app is active or in background</string>
        </config-file>
        <config-file parent="NSLocationAlwaysUsageDescription" platform="ios" target="*-Info.plist">
            <string>${EXECUTABLE_NAME} would like to check your location when app is active or in background</string>
        </config-file>
        <config-file parent="NSLocationWhenInUseUsageDescription" platform="ios" target="*-Info.plist">
            <string>${EXECUTABLE_NAME} would like to check your location when app is active or in background</string>
        </config-file>
        <config-file parent="NSMicrophoneUsageDescription" platform="ios" target="*-Info.plist">
            <string>${EXECUTABLE_NAME} requires microphone access to function properly</string>
        </config-file>
        <config-file parent="NSMotionUsageDescription" platform="ios" target="*-Info.plist">
            <string>${EXECUTABLE_NAME} requires motion detection access to function properly</string>
        </config-file>
        <config-file parent="NSPhotoLibraryUsageDescription" platform="ios" target="*-Info.plist">
            <string>${EXECUTABLE_NAME} requires photo library access to function properly</string>
        </config-file>
        <config-file parent="NSRemindersUsageDescription" platform="ios" target="*-Info.plist">
            <string>${EXECUTABLE_NAME} equires reminders access to function properly</string>
        </config-file>
        <feature name="CDVOrientation">
            <param name="ios-package" value="CDVOrientation" />
        </feature>
        <feature name="CDVWKWebViewEngine">
            <param name="ios-package" value="CDVWKWebViewEngine" />
        </feature>
        <feature name="Console">
            <param name="ios-package" value="CDVLogger" />
        </feature>
        <feature name="Device">
            <param name="ios-package" value="CDVDevice" />
        </feature>
        <feature name="EmailComposer">
            <param name="ios-package" value="APPEmailComposer" />
        </feature>
        <feature name="FacebookConnectPlugin">
            <param name="ios-package" value="FacebookConnectPlugin" />
            <param name="onload" value="true" />
        </feature>
        <feature name="GeofencePlugin">
            <param name="ios-package" value="HWPGeofencePlugin" />
        </feature>
        <feature name="Geolocation">
            <param name="ios-package" value="CDVLocation" />
        </feature>
        <feature name="GestureHandler">
            <param name="ios-package" value="CDVGestureHandler" />
            <param name="onload" value="true" />
        </feature>
        <feature name="GooglePlus">
            <param name="ios-package" value="GooglePlus" />
            <param name="onload" value="true" />
        </feature>
        <feature name="HandleOpenUrl">
            <param name="ios-package" value="CDVHandleOpenURL" />
            <param name="onload" value="true" />
        </feature>
        <feature name="InAppBrowser">
            <param name="ios-package" value="CDVInAppBrowser" />
        </feature>
        <feature name="IntentAndNavigationFilter">
            <param name="ios-package" value="CDVIntentAndNavigationFilter" />
            <param name="onload" value="true" />
        </feature>
        <feature name="Keyboard">
            <param name="ios-package" onload="true" value="CDVKeyboard" />
        </feature>
        <feature name="Keyboard">
            <param name="ios-package" onload="true" value="IonicKeyboard" />
        </feature>
        <feature name="LocalNotification">
            <param name="ios-package" onload="true" value="APPLocalNotification" />
            <param name="onload" value="false" />
        </feature>
        <feature name="LocalStorage">
            <param name="ios-package" value="CDVLocalStorage" />
        </feature>
        <feature name="NativePageTransitions">
            <param name="ios-package" value="NativePageTransitions" />
        </feature>
        <feature name="NetworkStatus">
            <param name="ios-package" value="CDVConnection" />
        </feature>
        <feature name="Sms">
            <param name="ios-package" value="Sms" />
        </feature>
        <feature name="SplashScreen">
            <param name="ios-package" value="CDVSplashScreen" />
            <param name="onload" value="true" />
        </feature>
        <feature name="StatusBar">
            <param name="ios-package" onload="false" value="CDVStatusBar" />
        </feature>

There is one other thing that I did, I don't know if this is an issue with anyone else - I was getting too many permission error messages when the app initializes so I just remarked all the warnings.append in GeofencePlugin.swift.

By the way rodneyjoyce - Like many others I too was having a very difficult time with Ionic's unreliable Cloud Build. I finally gave up on them and got myself a macMini for the .ipa builds. It took a while to get used to but I now have a lot more control and understanding of the process now.

If this will help anyone, here are the relevant packeges I have in package.json

"@angular/animations": "4.4.4",
"@angular/cli": "1.4.4",
"@angular/common": "4.4.4",
"@angular/compiler": "4.4.4",
"@angular/compiler-cli": "4.4.4",
"@angular/core": "4.4.4",
"@angular/forms": "4.4.4",
"@angular/http": "4.4.4",
"@angular/platform-browser": "4.4.4",
"@angular/platform-browser-dynamic": "4.4.4",
"@angular/platform-server": "4.4.4",
"@angular/tsc-wrapped": "4.4.4",
"@ionic-native/app-minimize": "^4.3.3",
"@ionic-native/core": "^4.3.3",
"@ionic-native/device": "^4.3.3",
"@ionic-native/email-composer": "^4.3.3",
"@ionic-native/facebook": "^4.3.3",
"@ionic-native/geofence": "^4.3.3",
"@ionic-native/geolocation": "^4.3.3",
"@ionic-native/google-plus": "^4.3.3",
"@ionic-native/in-app-browser": "^4.3.3",
"@ionic-native/keyboard": "^4.3.3",
"@ionic-native/local-notifications": "^4.3.3",
"@ionic-native/native-page-transitions": "^4.3.3",
"@ionic-native/network": "^4.3.3",
"@ionic-native/screen-orientation": "^4.3.3",
"@ionic-native/sms": "^4.3.3",
"@ionic-native/splash-screen": "^4.3.3",
"@ionic-native/status-bar": "^4.3.3",
"angularfire2": "4.0.0-rc.1",
"autoprefixer": "^7.1.6",
"com.telerik.plugins.nativepagetransitions": "^0.6.5",
"cordova-android": "6.3.0",
"cordova-android-play-services-gradle-release": "0.0.2",
"cordova-android-support-gradle-release": "0.0.2",
"cordova-ios": "^4.5.3",
"cordova-plugin-add-swift-support": "^1.7.0",
"cordova-plugin-app-event": "^1.2.1",
"cordova-plugin-appminimize": "^1.0.0",
"cordova-plugin-compat": "^1.2.0",
"cordova-plugin-console": "^1.1.0",
"cordova-plugin-device": "^1.1.6",
"cordova-plugin-email-composer": "^0.8.11",
"cordova-plugin-facebook4": "^1.9.1",
"cordova-plugin-geofence": "^0.7.0",
"cordova-plugin-geolocation": "^2.4.3",
"cordova-plugin-googleplus": "^5.1.1",
"cordova-plugin-inappbrowser": "^1.7.1",
"cordova-plugin-ionic-webview": "^1.1.16",
"cordova-plugin-keyboard": "^1.1.5",
"cordova-plugin-network-information": "^1.3.3",
"cordova-plugin-screen-orientation": "^2.0.1",
"cordova-plugin-splashscreen": "^4.0.3",
"cordova-plugin-statusbar": "^2.2.3",
"cordova-plugin-whitelist": "^1.3.2",
"cordova-sms-plugin": "^0.1.11",
"de.appplant.cordova.plugin.local-notification": "^0.8.5",
"es6-promise-plugin": "^4.1.1",
"firebase": "4.4.0",
"ionic-angular": "^3.8.0",
"ionic-plugin-keyboard": "^2.2.1",
"promise-polyfill": "^6.0.2",
"rxjs": "5.4.3",
"sw-toolbox": "^3.6.0",
"zone.js": "0.8.18",
"@ionic/app-scripts": "^3.0.0",
"typescript": "2.3.4"

BTW I read a pretty good explanation about the Location permission here https://mackuba.eu/2017/07/13/changes-to-location-tracking-in-ios-11/

mroberty8 commented 6 years ago

Hi, do you plan a date for release compatibility with swift 3 ?

dovk commented 6 years ago

I noticed that Swift 4.0 is the default version in Xcode 9.1, I understand you can still use Swift 3.0 code, but the compatibility issue might be relevant as well.

mroberty8 commented 6 years ago

Or maybe a date for Swift4 ? ;)

brijesh-p commented 6 years ago

@centos94 , I am able to compile code by changing 3 swifts files, but geofence is still not working in IOS device (however fence is adding perfectly but unable to trigger transition), any Idea what I am missing?

centos94 commented 6 years ago

Hello @brijesh-p, did you try what @dovk has done? He said that with those steps he was able to made it works.

dovk commented 6 years ago

Sorry, I forgot to mention that, although I might have been able to do this differently, I copy the 3 sources to 3 different places -

<_path_to_project_>/<_project_name_>/node_modules/cordova-plugin-geofence/src/ios <_path_to_project_>/<_project_name_>/plugins/cordova-plugin-geofence/src/ios <_path_to_project_>/<_project_name_>/platforms/ios/<_project_name_>/Plugins/cordova-plugin-geofence

And as I wrote earlier, at one point it wasn't working because I had a spelling mistake in one of the fence json parameters (openAppOnClic instead of openAppOnClick).

Also - as a result of different behavior between Android and iOS, and based on suggestions that I read about, I define the fence json parameters as follows (although some may seem obvious or may not be necessary) -

If I notice anything else I did, I'll add it here later - Good luck !

brijesh-p commented 6 years ago

@dovk, thanks. Its is possible to share, .swifts files for IOS?, meantime I am looking your suggestions.

marcelomiura commented 6 years ago

@brijesh-p I'm still facing the same issue as you. Geofences added, but transitions not triggered on ios. Have you made any progress? I saw suggestions from @dovk, but a radius of 300 is too much for my application. (But even setting to more than 300 on my case, it did not work).

dovk commented 6 years ago

I've already gone down to radius of 100 and it's ok, so I guess that was never a real problem there.

I placed some of the relevant code here https://github.com/dovk/geofence-fix I'm sorry if it's hard to follow, it's overloaded with specific app business logic. l_fence.ts is where we initialize and set the fence, and s_privateApp.ts is where we invoke those functions. But you can get an idea of how we defined the fence parameters and so on, and might see something that could help you.

You might also notice things in package.json or config.xml that would be beneficial to add.

Regarding the Swift sources - I took those from https://github.com/ypelud/cordova-plugin-geofence In GeofencePlugin.swift I remarked out all the errors.append and warnings append because they were always popping up prematurely when the app came up - I believe it's something I need to fix like checking for platform.ready() earlier than I do.

And in the build_ios.sh (I know it's ugly - it's the first shell script I ever wrote) you can see how I automatically run the build and copy the Swift files to their respective places.

Take a look and let me know.

brijesh-p commented 6 years ago

@dovk , thanks. I am looking https://github.com/dovk/geofence-fix, pls confirm if geofcence worked on IOS on this code? with .swift files (https://github.com/ypelud/cordova-plugin-geofence)

dovk commented 6 years ago

Yes, absolutely, as you can see in the screenshot above from my iPhone. And as I wrote, it is all with recent versions, including using the new WKWebView, node/npm, and cordova, whose latest versions had caused problems and forced me in the past to revert to previous versions - now everything is up-to-date. By the way, it did not go well with XCode 9.1.0, so I stayed at 9.0.1.

The .ipa was built on a macMini (OS Sierra 10.12.6) using XCode 9.0.1, and the screenshot of the geofence notification is from my iPhone (iOS 11.0.3). In this build I also made the switch from UIWebView to WKWebView, and set the major packages to the latest versions, such as ionic: 3.16.0 cordova: 7.1.0 cordova-ios: 4.5.3 ionic-angular: 3.8.0 node: 8.9.0 npm: 5.5.1

I also found it important to make sure that everyting regarding notifications is also defined and installed correctly, because at one point the problem wasn't with Geofence but rather with localNotifications. For example using all those permission definitions in config.xml (under config-file)

mroberty8 commented 6 years ago

Hi, guys, this thread is very hard to follow. I understand that the compatibility with Swift >=3 is not already working, but a temporary patch exists. Thats true ?

In this case is it possible to describe the full procedure (with version required of ios) to follow to use geofence plugin ?

Thanks in advance.

dovk commented 6 years ago

Please you can define your current problem, because there are a lot of possibilities. Try to include relevant sources.

mroberty8 commented 6 years ago

My initial problem was : "I had trouble following the procedure to make geofence work on the latest Xcode versions". But I tried to understand your explanations well now i can pass the compilation step.

I will try to explain what I did and the new problem that I am experiencing now.

  1. I got swift file on : https://github.com/ypelud/cordova-plugin-geofence
  2. I have replaced files on :
//node_modules/cordova-plugin-geofence/src/ios //plugins/cordova-plugin-geofence/src/ios //platforms/ios//Plugins/cordova-plugin-geofence 3. Build seems ok, but When i run the app on device or on simulator we got that error : "EXC_BAD_ACCESS (code=EXC_I136_GPFLT) It only happens when I use the geofence lib. Below a simple code that i used : ```javascript import { Injectable } from '@angular/core'; import { Geofence } from '@ionic-native/geofence'; @Injectable() export class GeofenceService { constructor(private geofence: Geofence) {} public watch(): void { console.log('watch geofence'); // initialize the plugin this.geofence.initialize().then(() => { console.log('watch'); this.addGeofence(); }, (err) => { console.log(err); }); } private addGeofence():void { //options describing geofence let fence = { id: '69ca1b88-6fbe-4e80-a4d4-ff4d3748acdb', //any unique ID latitude: -21.0130745, //center of geofence radius longitude: 55.2646077, radius: 100, //radius to edge of geofence in meters transitionType: 3, //see 'Transition Types' below notification: { //notification settings id: 1, //any unique ID title: 'You crossed a fence', //notification title text: 'You just arrived to Gliwice city center.', //notification body openAppOnClick: true //open app when notification is tapped } } this.geofence.addOrUpdate(fence).then( () => console.log('Geofence added'), (err) => console.log('Geofence failed to add') ); } } ``` My environment : > cli packages: (/usr/local/lib/node_modules) > > @ionic/cli-utils : 1.13.1 > ionic (Ionic CLI) : 3.13.2 > > global packages: > > cordova (Cordova CLI) : 7.1.0 > > local packages: > > @ionic/app-scripts : 3.1.2 > Cordova Platforms : android 6.3.0 > Ionic Framework : ionic-angular 3.9.2 > > System: > > Android SDK Tools : 26.1.1 > ios-deploy : 1.9.2 > ios-sim : 6.1.2 > Node : v8.9.4 > npm : 5.6.0 > OS : macOS High Sierra > Xcode : Xcode 9.2 Build version 9C40b Hope it's help to understand my request. Thanks in advance.
dovk commented 6 years ago

Try to code as close as possible to my code here https://github.com/dovk/geofence-fix and go over thw efine points I wrote there and above here, Using the Swift code from https://github.com/ypelud/cordova-plugin-geofence is a prequisite of course but the TS script also needs to be handled in a certain way.

shinuvs commented 6 years ago

I am also facing the same issue and the above mentioned solution is not working for me

dovk commented 6 years ago

If you put some of your code up I can take a look. It still works for us but be aware that it might not be a viable solution for your purposes in any case since there are limitations when using the plugin in a Web/Javascript-based app framework like Ionic - geolocation and geofence works fine when the app is active in foreground, or when the app is minimized (for example when focusing on another app or pressing the back button on Android). However, when the app is closed, for example when you close the app window from the app list on Android, or swipe the app up on iOS, only the notification will work, not the actual Javascript code that you want to run when the entering or leaving event occurs. I am checking different solutions for that case.

shinuvs commented 6 years ago

Thank you for your response. I am working on Ionic platform and in Android the geofence is working fine without having any issue. In iOS it is added succesfully(as per the log) but no notification is showing.

{code} import { Component } from '@angular/core'; import { NavController, Platform } from 'ionic-angular'; import { Geofence } from '@ionic-native/geofence'; import { Http } from '@angular/http'; import 'rxjs/add/operator/map'; import { Headers, RequestOptions, ResponseContentType } from '@angular/http'; import {Observable} from 'rxjs/Observable'; import { Storage } from '@ionic/storage';

@Component({ selector: 'page-home', templateUrl: 'home.html' }) export class HomePage {

constructor(public navCtrl: NavController, private geofence: Geofence, public http: Http, private plt: Platform, private file: File, private fileOpener: FileOpener) { // initialize the plugin

}

callGeofence(){ this.geofence.initialize().then( // resolved promise does not return a value () => { console.log('Geofence Plugin Ready'); this.addGeofence(); }, (err) => console.log(err) ) }

private addGeofence() { //options describing geofence let fence = { id: '69ca1b88-6fbe-4e80-a4d4-ff4d3748acdb', //any unique ID latitude: 8.54748, //center of geofence radius longitude: 76.87932, radius: 100, //radius to edge of geofence in meters transitionType: 3, //see 'Transition Types' below notification: { //notification settings id: 1, //any unique ID title: 'You crossed a fence', //notification title text: 'You just arrived to Gliwice city center.', //notification body openAppOnClick: true //open app when notification is tapped } } this.geofence.addOrUpdate(fence).then( () => console.log('Geofence added'), (err) => console.log('Geofence failed to add') ); }

}

{code}

dovk commented 6 years ago

We learnt alot in the process of trying to integrate the Geofence plugin in our app, but finally removed it from our app today and replaced it with simple home-made Geofence functionality based on the Background Geolocation plugin. In our case the Geofence plugin eventually worked, but it seems to run your triggered Javascript code only when the app is in active or minimized mode, not when the app is closed - and in our case we must have Geofence monitoring when the app is closed as well. And while it appears that the Background Geolocation plugin doesn't run Javascript code in background mode either, it does record all location tracking information while in background mode. We can then retrieve this information when the app is alive again with the getLocations() function. And just as important - the Background Geolocation plugin records foreground geolocation as well - so for the purpose of geolocation tracking, all you need is the Background Geolocation plugin. You may perhaps need the regular Geolocation plugin if, as in our case, you need to know at a specific moment your location coordinates - but remember this will only work in foreground mode when the app is active. After that we added our own Geofence-like solution by using the haversine algorithm to calculate the distance of the recorded coordinates in relation to the target location. Thanks to Josh Morony's tutorial we were able to do this in a day or two, and I hope it will serve our app well. Regarding your question, I wrote earlier that we made some adjustments to accomodate for differences that we found between iOS and Android before passing the fence object to the addOrUpdate() function -

if (ios) {
    this.smallIcon = '/icon'
    this.icon = '/assets/img/icon.png'
    this.latitude = parseFloat(parms.latitude)
    this.longitude = parseFloat(parms.longitude)
}else{
    this.smallIcon = 'res://icon'
    this.icon = 'file://assets/img/icon.png'
    this.latitude = (parms.latitude)
    this.longitude = (parms.longitude)
}

and the fence object is defined as

{
    id: parms.idIn,
    latitude: this.latitude,
    longitude: this.longitude,
    radius: this.radius,
    transitionType: 1,
    notification: {
        text: text,
        openAppOnClick: false,
        autoClear: true,
        smallIcon: this.smallIcon,
        icon: this.icon}
}

I also mentioned above that: