报错(警告):_BSMachError: (os/kern) invalid capability (20)和_BSMachError: (os/kern) invalid name (15)解决方法

关于

报错(警告):_BSMachError: (os/kern) invalid capability (20)和_BSMachError: (os/kern) invalid name (15)解决方法

1.错误方式和解决

**我出现这个问题是在UIAlertController中点击设置使用[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=Privacy"]]跳转到系统设置的时候发生的**

_BSMachError: (os/kern) invalid capability (20)

_BSMachError: (os/kern) invalid name (15)

解决方法:

通过使用多线程延迟调用解决这个问题,代码如下:

dispatch_after(0.2, dispatch_get_main_queue(), ^{
        [[UIApplication sharedApplication] openURL:[NSURL 			URLWithString:@"prefs:root=Privacy"]];//隐私设置
});

2.错误方式和解决

前些天在做app升级提示的时候,遇到了警告:
_BSMachError: (os/kern) invalid capability (20)
_BSMachError: (os/kern) invalid name (15) 

原因:是自己在alertAction中添加了时间,但是并未采用延时机制。

解决办法:代码示例
[alertVC addAction:[UIAlertAction actionWithTitle:@"现在升级"   
style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action)  
{
    //这里添加了多线程,消除警告
    dispatch_after(0.2, dispatch_get_main_queue(), ^{
        NSURL *appStoreUrl = [NSURL URLWithString:[NSString 
		stringWithFormat:kAppStore_APPVersionUrl,APP_ID]];
        [[UIApplication sharedApplication] openURL:appStoreUrl];
        NSLog(@"链接--%@",appStoreUrl);
    });        
}]];

3.错误方式和解决

解决方法:网上的解决方法
可能是通知的问题。我是注释了postNotificationName,忘记把addObserver也删除。 
在视图消失viewDidDisappear的这个方法中 remove掉观察者 我是这样解决的
原文地址:https://www.cnblogs.com/xiaofei76/p/5867934.html