NSInternalInconsistencyException: 'Invalid parameter not satisfying: !stayUp || CLClientIsBackgroundable(internal->fClient)'
Solution 1
I've managed to solve this by doing these two things:
- added
UIBackgroundModes
'location' to Info.plist - added
NSLocationAlwaysUsageDescription
to Info.plist
As of iOS 11, keys are named:
-
NSLocationAlwaysAndWhenInUseUsageDescription
andNSLocationWhenInUseUsageDescription
Solution 2
Just select your app scheme and go to Capabilities as per my picture below everything should work fine.
Solution 3
I had similar issue. Below are steps to fix this crash issue (using Xcode 11.3).
- Add
Privacy - Location usage description
inInfo.plist
of your project.
- Add
Background Modes
asCapability
in your Project Target.
- Select
Location Update
option
Solution 4
Here's another solution if like me you want to use [CLLocationManager setAllowsBackgroundLocationUpdates:]
in a separate project module / static library. You'll get this crash if the app using that module/library doesn't have the location background capability... I made the following method to make the call safe:
- (void) setAllowsBackgroundLocationUpdatesSafely
{
NSArray* backgroundModes = [[NSBundle mainBundle].infoDictionary objectForKey:@"UIBackgroundModes"];
if(backgroundModes && [backgroundModes containsObject:@"location"]) {
if([mLocationManager respondsToSelector:@selector(setAllowsBackgroundLocationUpdates:)]) {
// We now have iOS9 and the right capabilities to set this:
[mLocationManager setAllowsBackgroundLocationUpdates:YES];
}
}
}
Solution 5
I faced same issue on Hybrid app.
I have enabled background mode ON.
Apple has rejected my app. Saying there is no features for background mode.
So I made following changes on "BackgroundGeolocationDelegate.m"
1.locationManager.allowsBackgroundLocationUpdates = NO;
if (authStatus == kCLAuthorizationStatusNotDetermined) { if ([locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) { //iOS 8.0+ NSLog(@"BackgroundGeolocationDelegate requestAlwaysAuthorization"); [locationManager requestWhenInUseAuthorization]; } }
There was no more crash. Note *: Fix is only for hybrid app
Related videos on Youtube
DanielG
Updated on July 13, 2022Comments
-
DanielG almost 2 years
I'm trying to get my app working in Xcode 7 beta but I'm hitting this exception:
NSInternalInconsistencyException: 'Invalid parameter not satisfying: !stayUp || CLClientIsBackgroundable(internal->fClient)'
Here's the callstack:
0 CoreFoundation 0x00000001063a89b5 __exceptionPreprocess + 165 1 libobjc.A.dylib 0x0000000105e20deb objc_exception_throw + 48 2 CoreFoundation 0x00000001063a881a +[NSException raise:format:arguments:] + 106 3 Foundation 0x00000001036f8b72 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 198 4 CoreLocation 0x00000001031c7fe3 CLClientGetCapabilities + 8270 5 peach 0x00000001020c0ee9 -[PeachesBatteryOptimizer initWithDelegate:] + 761 6 peach 0x0000000102086d25 -[PeachAgent init] + 1141 7 peach 0x000000010208682c __23+[PeachAgent instance]_block_invoke + 76 8 libdispatch.dylib 0x00000001068604bb _dispatch_client_callout + 8 9 libdispatch.dylib 0x000000010684bedc dispatch_once_f + 543 10 peach 0x00000001020867bb +[PeachAgent instance] + 139 11 peach 0x0000000102086f4d +[PeachAgent createInstanceWithAppKey:andInternal:useDevApi:] + 93 12 peach 0x0000000101e2b710 -[ABCAppDelegate createPeachAgent] + 368 13 peach 0x0000000101e28703 -[ABCAppDelegate application:didFinishLaunchingWithOptions:] + 243 ...
Has anyone seen this on iOS 9 beta 5?
-
igraczech almost 8 yearsSeen on any iOS 9. It's just an assert, actually helpful.
-
-
igraczech over 8 years
-
igraczech about 7 yearsThis is a case where you return to own post to find out, how to fix it. :o)
-
MD Aslam Ansari over 6 yearsWorked for me with Swift 4.