Ios n内部一致性例外情况:';无效参数不满足:!stayUp | | CLClientIsBackgroundable(内部客户)和#x27;
我试图让我的应用程序在Xcode 7测试版中运行,但遇到了以下异常:Ios n内部一致性例外情况:';无效参数不满足:!stayUp | | CLClientIsBackgroundable(内部客户)和#x27;,ios,objective-c,ios9,xcode7,cllocationmanager,Ios,Objective C,Ios9,Xcode7,Cllocationmanager,我试图让我的应用程序在Xcode 7测试版中运行,但遇到了以下异常: NSInternalInconsistencyException: 'Invalid parameter not satisfying: !stayUp || CLClientIsBackgroundable(internal->fClient)' 以下是调用堆栈: 0 CoreFoundation 0x00000001063a89b5 __exceptionPreproc
NSInternalInconsistencyException: 'Invalid parameter not satisfying: !stayUp || CLClientIsBackgroundable(internal->fClient)'
以下是调用堆栈:
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
...
有人在iOS 9 beta 5上看到过吗?我通过做以下两件事来解决这个问题:
- 在Info.plist中添加了
“位置”UIBackgroundModes
- 将
添加到Info.plistNSLocationAlwaysUsageDescription
和nsLocationAlways和WhenUsageDescription
nsLocationWhenUsageDescription
[CLLocationManager SetAllowsBackgroundLocationUpdate::
,这里有另一个解决方案。如果使用该模块/库的应用程序不具备位置后台功能,则会发生此崩溃。。。我使用了以下方法来确保呼叫安全:
- (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];
}
}
}
我们有iOS应用程序和通知小部件+手表应用程序。以下代码不位于Watchkit扩展中的任何其他位置:
#如果!延伸
self.startUpdatingLocationAllowingBackground()的
#恩迪夫
我们不需要查询位置或其他业务需求,这是该应用程序在所有域(不仅仅是ADP/iTC)中的总体设置的基础。其他选项:如果您在目标->功能中选择了后台模式,请确保您选择了任何后台选项。
你告诉Xcode你将在后台使用一些东西,但你不告诉它你将使用什么我在Hybrid应用程序上遇到了同样的问题 我已经启用了后台模式 苹果拒绝了我的应用程序。表示背景模式没有任何功能 因此,我在“BackgroundGeolocationDelegate.m”上做了以下更改 1.
locationManager.allowsBackgroundLocationUpdates=否代码>
再也没有撞车了。
注意*:修复仅适用于混合应用程序这也发生在我身上。而不是把后台功能打开,并有可能被苹果拒绝,因为你不需要后台位置,把所有剩余的背景位置。很有可能是你从一个旧的应用程序中复制并粘贴了定位功能,或者可能是从一个网站上复制并粘贴了定位功能,但没有人这么做。无论如何
您需要评论或完全删除:
这可能在locationmanager功能中
//for use in background
self.locationManager.allowsBackgroundLocationUpdates = true
在您的视图中,也会出现“加载”和“或”视图,
你需要评论或者把它也删掉
//for use in background
self.locationManager.requestAlwaysAuthorization()
如果在调用该功能时将这些功能保留在中,应用程序将抱怨该功能未打开 我们需要添加UIBackground模式功能。
在我的情况下,CLLocation manager在后台模式下工作,我选中了添加到Info.plist中的位置更新键。只需选择你的应用程序方案并根据下面的图片转到功能,一切都应该正常
我也有类似的问题。下面是修复此崩溃问题的步骤(使用Xcode 11.3)
在项目的Info.plist
中添加Privacy-Location usage description
在项目目标中添加后台模式
作为功能
选择位置更新
选项
在这种情况下,您可以返回自己的帖子,了解如何修复它:o) 在任何iOS 9上都可以看到Swift 4。这只是一个断言,实际上很有用。
//for use in background
self.locationManager.requestAlwaysAuthorization()