最近寫了一個外接serial通訊的tool,發現在open port的時候一直報錯。
Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"
很詫異..
記得以前同事有說過sandbox的機制(我才不會說是因為糾結了好久,沒找到原因=。=),於是在setting找到該選項 disable,發現就好了。看來對開發的流程還是不熟悉,不應該被這個問題卡住那么久。
下面是摘自網上的科普知識,mark 學習一下:
Sand Box
OSX自從10.6系統開始引入沙盒機制,規定發布到Mac AppStore的應用,必須遵守沙盒約定。沙盒對應用訪問的系統資源,硬件外設,文件,網絡,XPC,都做了嚴格的限制,這樣能防止惡意的App通過系統漏洞,攻擊系統,獲取控制權限,保證了OSX系統的安全。沙盒相當於給每個App一個獨立的空間。要獲取自己空間之外的資源必須獲得授權。
如下圖,在project里面勾選設定權限: