【问题标题】:Golang binary on Mac OS error "operation not permitted"Mac OS 上的 Golang 二进制文件错误“不允许操作”
【发布时间】:2020-12-22 20:31:47
【问题描述】:

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

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

使用有效的身份文件进行代码签名后,我得到了同样的错误。

错误:

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

Golang 环境:

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"

【问题讨论】:

  • appears 有很多原因,实际上与 Go 无关。你有进一步调查吗?我的意思是,错误信息太笼统了。
  • 这可能与 Go 无关。我猜从 OS X El Capitan 开始,许多资源(主要是文件和文件夹)都受到系统完整性保护 (SIP) 的保护,免受恶意活动的影响。看mikesel.info/fix-operation-not-permitted-root-os-x-terminalserverfault.com/questions/748838/…
  • 是的,我确实浏览了很多苹果和 golang 问题和论坛以了解更多信息,但没有谈到如何发布二进制文件或在 mac 应用程序中。

标签: ios macos go macos-high-sierra


【解决方案1】:

这与 Go 无关。转到您的系统偏好设置,然后授予对您正在使用的 ide 的完整磁盘访问权限。

【讨论】:

    猜你喜欢
    • 2012-04-14
    • 2021-07-28
    • 2021-11-04
    • 1970-01-01
    • 1970-01-01
    • 2017-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多