Golang 1.14在macOS系统下崩溃问题排查

Golang 1.14在macOS系统下崩溃问题排查

  • macOS 10.14.6
  • Golang 1.14

我刚刚安装了 Go 1.14。之前的更新一直很顺利,但这次每当我尝试运行任何 Go 工具时都会崩溃。以下是我尝试执行 go run 命令时的一个例子…

Screenshot 2020-02-25 at 22.49.58

有人有想法吗?


更多关于Golang 1.14在macOS系统下崩溃问题排查的实战教程也可以访问 https://www.itying.com/category-94-b0.html

2 回复

我已经在 GitHub.com/golang/go 上报告了这个问题,这似乎是一个在较旧的非 AVX 芯片上导致构建失败的问题。它已被标记为 release blocker,所以希望它能很快得到修复。

更多关于Golang 1.14在macOS系统下崩溃问题排查的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


这是一个已知问题,与 macOS 10.14 及更高版本的系统完整性保护(SIP)和代码签名要求有关。Go 1.14 二进制文件需要适当的签名才能在 macOS 上运行。

解决方案:

  1. 重新安装 Go 并确保使用正确的安装包: 从官方下载页面(https://golang.org/dl/)下载适用于 macOS 的 Signed 安装包(.pkg 文件),然后重新安装。确保卸载现有版本。

    # 卸载现有版本(如果通过 Homebrew 安装)
    brew uninstall go
    
    # 或者,如果通过官方安装包安装,手动删除
    sudo rm -rf /usr/local/go
    
  2. 如果重新安装后问题仍然存在,尝试清除缓存: Go 工具链缓存可能已损坏。

    go clean -cache -modcache
    
  3. 验证安装: 安装后,验证 Go 二进制文件是否已正确签名。

    codesign -dvvv $(which go)
    

    输出应显示有效的签名信息,而不是 code object is not signed at all

示例:重现和验证步骤

# 1. 下载并安装官方签名包后,验证版本
go version

# 2. 运行简单程序测试
cat > test.go << 'EOF'
package main
import "fmt"
func main() {
    fmt.Println("Go 1.14 on macOS")
}
EOF

go run test.go

如果问题仍然存在,请检查系统控制台日志(Console.app)获取详细的崩溃报告,其中可能包含更具体的错误信息。

回到顶部