Mac OS -- ORSSerialPort打开serialPort时提示错误Operation not permitted

导入ORSSerialPort, 实现其delegate方法, 并设置代理

-(void)serialPort:(ORSSerialPort *)serialPort didEncounterError:(NSError *)error{
    NSLog(@"error:%@",error);
}

在操作 [serialPort open] 时, 系统报出来一下错误, 导致打开serial port 失败

Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted" UserInfo={NSFilePath=/dev/cu.usbserial-Fixture1, NSLocalizedDescription=Operation not permitted}

原因及解决办法:

1. 权限问题, 
原因: 电脑启用了SIP(System Integrity Protection),增加了rootless机制

在terminal中输入csrutil status, 检查SIP状态, 当显示enabled时, 表示需要修改权限

$ csrutil status
System Integrity Protection status: enabled.

解决办法: 

a). 重启电脑,屏幕暗下后立马按住 command+R,进入保护模式, 开启terminal执行csrutil disable

b). reboot重启电脑

c). 启动电脑后, 在terminal中输入csrutil status, 检查状态, 显示如下状态表示修改成功.

$ csrutil status
System Integrity Protection status: disabled.

d). 如果想要再次启动SIP, 只需再次进入保护模式后, 终端中执行csrutil enable, 其它过程相同

 

2. app软件权限赋予问题

原因: 未赋予串口硬件访问权限

解决办法:

项目名称.entitlements 文件手动加上如下键值对

key: com.apple.security.device.serial  == type:Boolean == value: YES

如下图所示:

 

经验证, 第二种方法有效. 


更多的Entitlement key权限设置, 可查阅官方文档Entitlement Key Reference

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

auspark

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值