Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift Xcode C++;cocoa应用程序中关于串行端口获取操作的代码不允许_Swift_Xcode_Macos_C++11_Serial Port - Fatal编程技术网

Swift Xcode C++;cocoa应用程序中关于串行端口获取操作的代码不允许

Swift Xcode C++;cocoa应用程序中关于串行端口获取操作的代码不允许,swift,xcode,macos,c++11,serial-port,Swift,Xcode,Macos,C++11,Serial Port,我使用C++项目在Xcode控制台中构建了一个代码,该项目在以下情况下运行良好: #包括“SerialPort.hpp” #包括“类型缩写.hpp” #包括 int main(int argc,const char*argv[]{ //*打开端口,然后连接到设备 const char devicePathStr[]=“/dev/tty.usbserial-A104RXG4”; 常数int波特率=9600; int sfd=打开并配置串行端口(devicePathStr,波特率); 如果(sfd

我使用
C++
项目在
Xcode
控制台中构建了一个代码,该项目在以下情况下运行良好:

#包括“SerialPort.hpp”
#包括“类型缩写.hpp”
#包括
int main(int argc,const char*argv[]{
//*打开端口,然后连接到设备
const char devicePathStr[]=“/dev/tty.usbserial-A104RXG4”;
常数int波特率=9600;
int sfd=打开并配置串行端口(devicePathStr,波特率);
如果(sfd<0){
如果(sfd==-1){
printf(“无法连接到串行端口。\n”);
}
else{//sfd==-2
printf(“设置串行端口属性时出错。\n”);
}
返回0;
}
//*使用readSerialData读取(字符*字节,大小\u t长度)
//*使用writeSerialData写入(常量字符*字节,大小\u t长度)
//*记住在必要时刷新潜在的缓冲数据
//*完成后关闭串行端口
常量字符dataToWrite[]=“abcd”;
char-databuffer[1024];
而(1){
readSerialData(databuffer,4);
睡眠(2);
writeSerialData(数据缓冲区,4);
睡眠(2);
}
printf(“结束。\n”);
返回0;
}
在这个构建之后,我尝试使用下面的
C++
wrappers将它迁移到我的
Xcode
cocoa应用程序

我非常确定我的
包装器
可以很好地用于测试
C++
代码。这意味着,我可以从我的
ViewController.swift
调用
C++
函数

但有一件奇怪的事情发生了。我无法使用以下代码打开连接:

    sfd = open(portPath, (O_RDWR | O_NOCTTY | O_NDELAY));
    if (sfd == -1) {
        printf("Unable to open serial port: %s at baud rate: %d\n", portPath, baudRate);
        printf("%s", std::strerror(errno));
        return sfd;
    }
返回以下错误消息:

Unable to open serial port: /dev/tty.usbserial-A104RXG4 at baud rate: 9600
Operation not permitted 
我已尝试更改
应用程序沙箱配置
,设置我的
系统首选项
以授予对我的
应用程序
的访问权限,并且禁用了我的
无根
。(
csrutil
使用
command+R
禁用) 但问题依然存在:

&

我想问:
1.为什么我在
Xcode C++
项目上的代码运行良好,但在
Xcode
上的
swift's cocoa
应用程序上失败?
2.如何解决
“不允许操作”
问题


我的
Xcode
版本是
11.3.1
Mac OS
10.14.6 Mojave

我自己想出来的

它的应用程序沙盒困扰着我。 你所需要做的就是关闭沙盒 通过单击鼠标点上的X将其禁用。 如果您想重新添加,只需单击+功能并将其重新打开


参考:

不要关闭沙盒,而是添加异常参考-