背景:最近换了电脑,从windows换成MacBook M1开发,我的开发语言是Go,实际使用过程中过程中遇到了很多Macos M1芯片和软件不兼容的坑
1.安装第三方软件提示文件已损坏无法打开
如果你要安装非苹果商店或者非官方网站的第三方软件大概率会碰到如下问题下载的软件提示文件已损坏无法打开
首先新版本Macos禁止了第三方软件安装和使用,需要我们通过命令修改配置,具体步骤参考如下
修复方法 参考:Mac应用程序无法打开或文件损坏的解决方法 - 知乎
2.Go程序启动报错
Go语言程序启动提示:go:linkname must refer to declared function or variable
解决方案:
// 执行下面命令 go get -u golang.org/x/sys
这个是一个Mac M1上碰到的问题,原因是GoPath目录下的包版本问题更新就可以解决了
3.Mac上安装DockerDestop并且配置镜像加速
我们在开发中经常需要使用到Docker,Mac上使用Docker最简单快捷的方式就是安装DockerDeskTop,由于官网上没有直接提供M1芯片的DockerDeskTop版本需要我们去到网站下下载,具体参考如下:
Mac 的M1芯片如何安装Docker Desktop
配置镜像加速:
Docker Engine 增加如下配置(注意json格式问题):
"registry-mirrors": [ "http://hub-mirror.c.163.com" ]
然后执行DockerInfo查看镜像源是否已经更换成功
4.Mac上安装GO多版本切换软件
我们在开发过程中经常需要用到GoSDK,但是经常碰到如果我想要切换版本的问题,由于我们的项目同时存在go1.13和go1.18版本所以需要一个能够非常便捷的go版本切换工具,以下是我实测非常好用的go版本切换工具,具体使用可以参考以下文档
参考:GitHub - 835301967/g: Golang Version Manager
5.Mac的ARM架构无法拉取最新Mysql5.7镜像问题
我在开发中需要用到Mysql镜像去部署Mysql数据库,但是如果你直接通过Docker pull msyql就会提示你:no matching manifest for linux/arm64/v8 in the manifest list entries,这个是由于DockerHub上没有直接的Mysql镜像版本,需要我们指定镜像版本才能够完成拉取镜像操作,具体操作可以参考以下文档
参考:ARM64v8(树莓派、OrangePi)Docker拉取mysql5.7镜像_程序员冰零的博客-CSDN博客
7.Macos上Fiddler软件无法使用Fiddler classic版本了如何解决
作为windows上非常好用的软件FIddler Classic 抓包软件,但是切换到Macos后安装却提示:Fiddler Classic does not Support Your OS,所以我们我们可以选择Charles,目前使用来说体验非常不错,由于4.61版本对于M1版本的兼容性不是很好,实测使用过程会有很多不兼容的bug,所以强烈推荐大家使用5.0b8版本,这个版本目前完美兼容Mac M1使用体验非常好,具体下载可以到官网Beta Releases • Charles Web Debugging Proxy下载然后一路安装,具体设置可以参考网上教程