[Client] Synchronous remote object proxy returned error:
Error Domain=NSCocoaErrorDomain Code=4099
"The connection to service named com.apple.commcenter.coretelephony.xpc was invalidated."
UserInfo={NSDebugDescription=The connection to service named com.apple.commcenter.coretelephony.xpc was invalidated.}
如上抛出的异常所示,升级 Xcode10 之后运行项目莫名发现控制台新增了很多类似如上的信息;
顾名思义 Xcode IDE 升级后将一些系统私有化的权限对齐公开了,如果项目中引用了其中的一些私有框架控制台则会抛出如上的一些数据信息,而在过去的老版本中则需要自行定义一些文件后并进行签名指定授权才可以玩一玩的;
通过如上抛出的信息中 com.apple.commcenter.coretelephony.xpc 可以顺藤摸瓜得知;
首先,coretelephony 即核心电话,官网文档中简介为使用Core Telephony框架获取有关用户家庭蜂窝服务提供商的信息。运营商可以使用此信息编写仅为其订户提供服务的应用程序。您还可以使用此框架获取有关当前蜂窝呼叫的信息。
一个 CTCarrier 对象提供有关用户的蜂窝服务提供商的信息,如是否允许在其网络上使用VoIP(互联网语音协议)。甲 CTCall 对象提供有关当前呼叫的信息,包括一个唯一的标识符和状态信息,诸如拨号,传入连接,或断开。
其次,xpc 服务是 macOS 中常会用到的一种提供基于序列化属性列表的低级(libSystem)进程间通信机制,借助此机制在后台更加高效的分担处理任务并及时与主进程进行通讯,处理一些非安全类的事物,同时增加程序的稳定性,避免主程序因此出现 crash 的风险,类似于发起网络请求时的处理方式。
每当 App 应用程序启动时,系统自动将找到的每个可见的 xpc 服务,App 与 xpc 服务建立连接并发送包含服务随后处理的事件的消息。
屏蔽控制台数据信息
方式一:
在终端中输入如下命令即可:
xcrun simctl spawn booted log config --mode "level:off" --subsystem com.apple.CoreTelephony
方式二:
Xcode 导航菜单中选择 Product ==> Scheme ==> Edit Scheme
在下图界面中的 Arguments ==> Environment Variables 添加如下参数
Name: OS_ACTIVITY_MODE
Value: disable
添加如上参数配置后重新 run 程序即可。
以上便是此次内容的分享,希望对大家有所帮助!