Mac OS上的Golang二进制错误“不允许操作”

我正在尝试在Mac应用程序内部发布golang二进制文件。 理想情况下,它只是一个在文件夹和文件上具有一些基本功能的HTTP服务器。</ p>

当我从终端运行它但尝试从我的终端调用它时,二进制文件似乎可以正常工作 Mac应用程序以编程方式给我一个错误“不允许操作”并退出。</ p>

用有效的身份文件进行代码签名后,我会遇到相同的错误。</ p>

错误:</ p>

 转到build -ldflags -s。
codesign -s“开发人员ID应用程序:*** * tesco” binaryFile
</ code> </ pre>

Golang ENV:</ p>

  GOARCH =“ amd64” 
GOBIN =“”
GOEXE =“”
GOHOSTARCH =“ amd64” GOHOSTOS =“ 达尔文 “
GOOS =” 达尔文 “
GOPATH =”/用户/ SRINIVAS /去 “
GORACE =” “
GOROOT =” 在/ usr /本地/去 “
GOTOOLDIR =” 在/ usr /本地/去/包装/工具/ darwin_amd64“
GCCGO =” gccgo“
CC =” clang“
GOGCCFLAGS =”-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length = 0 -fdebug-prefix-map = / var / 文件夹/ 3n / vpg5bnks45n75n
d91qh7sy3c0000gn / T / go-build925744934 = / tmp / go-build -gno-record-gcc-switches -fno-common“
CXX =” c lang ++“
CGO_ENABLED =” 1“
PKG_CONFIG =” pkg-config“
CGO_CFLAGS =”-g -O2“
CGO_CPPFLAGS =”“
CGO_CXXFLAGS =”-g -O2“
CGO_FFLAGS =”-g -O2“
CGO_LDFLAGS =“-g -O2”
</ code> </ pre>
</ div>

展开原文

原文

I'm trying to ship a golang binary inside a Mac application. It is ideally just an HTTP server with some basic functions on folders and files.

The binary seems to work just fine when I run it from a terminal but when I try to call it from my Mac application programmatically it gives me an error "operation not permitted" and quits.

After code-signing with a valid identity file I get the same error.

Error:

go build -ldflags -s .
codesign -s "Developer ID Application: *** *tesco" binaryFile

Golang ENV:

GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/srinivas/go"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/3n/vpg5bnks45n75n
d91qh7sy3c0000gn/T/go-build925744934=/tmp/go-build -gno-record-gcc-switches -fno-common"
CXX="clang++"
CGO_ENABLED="1"
PKG_CONFIG="pkg-config"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"

duanhemou9834
duanhemou9834 是的,我确实经历了很多苹果和golang问题和论坛,以了解更多信息,但没有讨论如何发布二进制文件或在Mac应用程序内部进行讨论。
接近 3 年之前 回复
dousi1906
dousi1906 这可能与Go无关。我猜想OSXElCapitan以后,许多资源(主要是文件和文件夹)都受到系统完整性保护(SIP)的保护,免受恶意活动的侵害。看看mikesel.info/fix-operation-not-permitted-root-os-x-terminal和serverfault.com/questions/748838/...
接近 3 年之前 回复
doutang3077
doutang3077 这样做的原因似乎很多,实际上与Go无关。你有进一步调查吗?我的意思是,错误消息过于笼统。
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐