iOS开发之_BSMachError警告解决方法

_BSMachError警告相信大家都不会感到陌生,只要所开发的应用有跳转到其他应用或平台的功能时,代码不规范都会引起这个警告,虽然不影响功能的使用,但作为一个有代码洁癖的猿猿来说,这是绝对不能允许的。

1、_BSMachError警告信息

[Common] _BSMachError:  (os/kern) invalid capability (0x14) "Unable to insert COPY_SEND"
[Common] _BSMachError: (os/kern) invalid name (0xf) "Unable to deallocate send right" 

通用描述为:

[Common] _BSMachError:  (os/kern) invalid capability (0x14) 
[Common] _BSMachError:  (os/kern) invalid name (0xf) 

2、_BSMachError警告来源

笔者所实现的功能是跳转微信分享和系统拨号功能时所出现的,经过搜索后发现这种警告来源有很多种,我在这细化分为三类:

第一类:跳转到第三方分享、登录、授权时;
第二类:通过调用系统方法 openURL跳转时;
第三类:系统弹框 alertView或者键盘的出现时;

注:第三类的产生可能与iOS系统版本有关,因为笔者自己也没有经过,只能根据搜索的信息做相关推测。

3、_BSMachError官方解释

苹果开发者论坛上找到两个连接: https://forums.developer.apple.com/message/122381#122381 https://forums.developer.apple.com/thread/15683
结论:这个问题太复杂,如果没有上下文,苹果开发团队也说不清_BSMachError确切是由于什么引起的。
不过人家最后留下了线索:
— Quinn “The Eskimo!” Apple Developer Relations, Developer Technical Support, Core OS/Hardware let myEmail = “eskimo” + “1” + “@apple.com”
如果你觉得有必要的话,可以写信给这个邮箱,等等看有什么结果。

4、_BSMachError的解决方法

笔者搜索了很多相关的问题,所说的解决方法基本都是“延时操作”,笔者自己也去试了试,发现果然解决了这个警告。

延时跳转
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
                            [WXApi openWXApp];
                        });

5、笔者V587

笔者已入坑,哈哈。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容