MacOS的基础设置及使用指南

6/6/2022 MacOSBootCampHomebrewdos2unixAria2TrollStore

# 1. 前言

# 1.1 背景描述

本文主要讲述我从Win10系统切换MacOS系统的经历,主要内容是我在切换系统过程中踩的各种坑及软件生态的过渡,仅供参考。

  • 2021.1-2022.5:因舍不得在Win10积累的软件生态(破解软件、插件、脚本、工具等),于是在基于 x86架构的 Intel芯片Macbook Pro上使用BootCamp装了双系统,平时一直都是用的Win10系统。
  • 2022.5-2022.7:因傻逼软件“傲梅分区助手”把我整个系统全搞崩了,连系统自带的恢复功能都进不去了,系统还原点也没了,只能重装MacOS系统,一切从零开始,不过幸好自己的重要资料做了多个备份。由于自己已经对Linux系统比较熟悉了,因此决定趁此机会切换至基于Unix的MacOS系统,未来再更换电脑也会选择M系列芯片的Macbook。
  • 2022.7-2024.7:因旧电脑配置不足,开不了几个项目内存就占满了,更换了基于ARM架构的 M1 pro 芯片 Macbook Pro,对旧设备的软件和数据进行了迁移,把不适配的软件及开发环境卸载重装。
  • 2024.7-至今:雨天上班时,包里进水电脑被淋坏了(主板的供电芯片烧了、屏幕进水),修理费用还挺贵的。又买了新的 M1 pro 芯片 Macbook Pro(已经出了快3年了,拼多多上的新机价格是官方发行价的60%左右,配置是足够用的,M3 Pro的新机太贵没性价比),旧电脑作为备用机。

系统选择建议:以我目前使用经历来看,如果买了Macbook,我不建议去使用Win系统,因为这样MacOS对Macbook做的一些专门的系统优化就没了,程序坞和触控等功能也没了,实际使用体验会打一定的折扣,但如果就是不习惯MacOS的话,也可以用,实际使用也没什么大的问题。MacOS对终端的支持更好,UI更加美观,上手也比较简单,建议还是选择MacOS比较好,软件生态的切换其实也没有想象中那么麻烦。

MacOS成品

MacOS终端使用的命令与Linux类似,具体可参照我的另一篇博客:VPS基本部署环境的搭建与配置 (opens new window)

# 1.2 Mac安装双系统

# 1.2.1 使用BootCamp安装多系统

前提条件:Intel芯片的Mac电脑(M系列芯片的是ARM架构,不可装Win10系统,也没了BootCamp工具)

准备工作:Mac自带的“启动转换助理”功能,纯净的官方Win10镜像

基本流程: 首先以Mac OS启动,打开“启动转换助理”,设置Win10和Mac OS的磁盘资源分配,选择Win10镜像进行安装。再以Win10启动,完成基本设置后开机,按提示安装驱动即可。

与Win10有关的系统使用及常见问题处理,见我的另一篇博客:Win10异常处理及办公常见问题 (opens new window)

# 1.2.2 使用官方引导工具安装多系统

前提条件:M系列芯片的Mac电脑、一个格式化过的空U盘

基本流程:先下载官方引导工具,在U盘上创建引导安装器。然后给主磁盘做一下分区,在恢复模式下用U盘的引导安装器在新的独立分区下安装系统。最后调整一下默认的启动磁盘即可。

Step1:下载官方引导工具

打开 如何下载和安装macOS (opens new window) 的官方教程,我这里选择了“使用 App Store”的安装方式,点击链接后,即可在 App Store 里进行下载。

下载MacOS旧版本系统的引导

Step2:在U盘上创建引导安装器

先使用系统自带的“磁盘工具”将U盘格式化,格式选择“Mac OS扩展(日志式)”,然后打开 创建可引导的macOS安装器 (opens new window) 官方教程,找到对应系统的命令。

我这里选用的是 Ventura 系统,MyVolume这里要换成实际的U盘装载点(Omi NTFS工具可以直接查看,也可以使用命令去查询)。

$ sudo /Applications/Install\ macOS\ Ventura.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume
1
在U盘上创建引导安装器

Step3:使用系统自带的“磁盘工具”将主磁盘扩展成两个分区,分区格式选择APFS,空间建议最少给40GB(装完系统之后仅剩10GB空间可用了)。这个分区过程比较慢,需要等待一定的时间。

MacOS主磁盘分区

Step4:在恢复模式里安装新系统

插上引导U盘,关机,长按电源键不松手,直到进入恢复模式,选择 Install macOS Ventura,然后按照引导操作即可,注意分区别选错了。

Mac恢复模式安装新系统

Step5:安装完新系统之后,系统的默认启动磁盘是新系统的那个。如果需要调整的话,可以在“系统设置——启动磁盘”这里去更改,重启后生效。

修改MacOS的默认启动磁盘

# 1.3 更换Mac设备的基本流程

# 1.3.1 迁移旧设备的应用及数据

两台电脑之间用数据线进行连接,打开旧Macbook系统自带的迁移助理,按提示进行操作,然后在新设备找到旧设备,按提示开始迁移应用及数据。迁移过去基本上就可以用了,原先设备的大多数环境和配置都带过去了。

迁移助理

这里以两台M1 Pro芯片Macbook同步为例(从Intel的Macbook到M1 Pro的Macbook也同步过,遇到的兼容问题更多),注意事项如下:

[1] 对两台机器的系统版本有要求,比如我的旧机器是MacOS 14,而新机器预装的是MacOS 12,是不能直接同步的,我需要先将MacOS 12升级到MacOS 14,然后才能进行同步。

[2] 迁移大概需要2h左右的时间(与需要同步文件的数量和大小有关),迁移后的机器立马就可以拿来干活儿了,东西全都在,而且可以直接用。不过个别软件会遇到一些权限及兼容性的问题,想要用的舒服还是需要半天左右时间去配置的。

  • Apple账号需要重登,WiFi网络及蓝牙需要重新配置,联网软件的账号需要重新登录,Chrome浏览器的插件需要重新开启同步。
  • 启动台的软件归类都没了,多了一些没用的系统预装软件,一些开机自启没有了,一些访达侧边栏的自定义目录打不开了。
  • 很多软件需要重新授予权限(比如“隐私与安全性”权限、“内核权限”),部分破解软件失效(需要卸载重装并重新破解)。
  • 一些涉及密钥和加密的连接信息不能用了,比如Navicat数据库全都连不上了,对比连接信息发现密码不一致,应该是加密导致的。

# 1.3.2 解决Intel与M1pro芯片的兼容问题

Intel 芯片是x86架构的,M1pro芯片是ARM架构的,默认情况下应用是不互通的。有ARM版本的建议从官网重新安装ARM版本,如果没有可以安装 Rosetta 2 来运行intel芯片的程序,但通过后者运行性能上会打一些折扣。应用是否支持M系列芯片可通过该网站进行查询:适用于苹果芯片了吗 (opens new window)

[1] 安装Rosetta 2

$ /usr/sbin/softwareupdate --install-rosetta --agree-to-license
1

注:强烈建议使用M系列芯片的Mac都装一下Rosetta 2,因为很多软件可能已经不维护了,压根儿就不可能支持M系列芯片。

[2] 卸载并重新安装brew

缘由:M系列芯片使用brew时会报错Cannot install in Homebrew on ARM processor in Intel default prefix (/usr/local)

解决:先安装Rosetta2,之后所有的brew安装与使用命令都在开头加上arch -x86_64,详见3.1节。

[3] 重新安装ARM版的应用

旧应用软件版本可以右键xxx.app显示简介,如果类型标识是intel,如果官方有ARM版的就把它换掉。部分ARM版本的软件报“损坏的应用程序”错误,官方会给出说明,使用xattr命令配置一下就能用了。

MarkText:

$ xattr -cr /Applications/MarkText.app
1

ARDM:

$ sudo spctl --master-disable
$ sudo xattr -rd com.apple.quarantine /Applications/Another\ Redis\ Desktop\ Manager.app
$ sudo spctl --master-enable
1
2
3

[4] 检查开发环境及配置

迁移后开发环境理论上都应该好使,但还是检查一下吧,找对应的实际项目跑一跑,看看有没有问题,如果有不能用的重新安装与配置。

# 1.3.3 强制重置系统开机密码

Step1:关闭你的 Mac,按住 Command + R 组合键,并长按开机按钮,直到出现  标志,进入恢复模式,在「实用工具」菜单栏中选择「终端」。

Step2:在终端输入resetpassword命令,在出现的「重设密码」窗口中,按提示重新设置密码,之后重启即可。

MacOS恢复模式

# 1.3.4 抹掉旧设备的所有数据

如果使用BootCamp装了双系统,需要先先使用BootCamp移除 Windows 和它的分区,然后再继续。

点击 图标——系统偏好设置——从菜单栏选取“抹掉所有内容和设置”——按提示输入管理员账号密码和Apple ID密码,确认点击“抹掉所有内容与设置”。

# 1.4 MacOS系统版本Bug

MacOS新版本的系统太不靠谱了,每次大版本升级都会出现一些奇奇怪怪的问题,遇到了就非常难解决,官方不及时修复,也搜不到解决方案,售后的技术支持也没啥用。升级容易降级难,血泪教训,系统能用就不要升级!!!

# 1.4.1 MacOS13不定期卡死问题

问题描述:MacOS从12升级到13版本(Ventura 13.1)后,不定期出现鼠标转圈卡死问题,什么也点不了,等很久也无法恢复正常,强制重启可恢复正常。该问题系新版本系统的bug,由中文输入法导致的,大版本更新还不稳定,建议不要升级。

解决方案:通过快捷键打开终端,然后用命令kill掉中文输入法的进程。

  • Step1:“Command + 空格”打开聚焦搜索,输入“terminal”,回车打开终端。
  • Step2:输入kill -9 pgrep SCIM 命令kill掉输入法进程即可。

但由于卡顿发生时,已经基本无法点动任何东西了,没办法去kill了,因此我们可以设置个Crontab定时任务,每2小时定期将其提前kill掉。

$ crontab -e
0 */2 * * * kill -9 `pgrep SCIM`
1
2

# 1.4.2 MacOS14使用HDMI投屏卡死问题

问题描述:MacOS从13升级到14版本(Sonoma 14.4)后,使用HDMI开会投屏就会卡死,什么也点不了,等很久也无法恢复正常,拔掉HDMI线并强制重启可恢复正常,可能是对部分投屏设备有兼容问题,有的设备可正常用。问题系新版本系统的bug,从14.0就有人反馈了,官方也不修复,原因未知,找不到解决办法。

临时方案:给磁盘做了分区,然后使用官方引导工具安了个低版本的系统,相当于双系统了,需要开会投屏时就用低版本系统去投屏。具体步骤详见本文1.2.2节。

# 2. 基本使用与常见问题

# 2.1 基本操作及快捷键

# 2.1.1 基本快捷键

自定义设置快捷键:访达——系统偏好设置——键盘——快捷键

  • ⌘ + C 复制,⌘ + V 粘贴,⌘ + X 剪切,⌘ + Z 撤回, ⌘ + Y 重做, ⌘ + Delete 删除文件,⌘ + D 复制文件,⌘ + C 配合 ⌘ + V 拷贝文件,⌘ + C 配合 ⌘ + Option + V 剪切文件
  • CapsLock键,短按切换中英文,长按切换大小写。
  • 删掉已经输入的终端命令:Ctrl + C
  • 访达到达自定义文件目录的地址:Command+ Shift+ G。
  • 特殊符号与颜文字:Option+Shift+B
  • 系统自带的截屏:Option+Shift+4
  • 打开Chrome的开发者工具:Shift(⇧)+Command (⌘) + C
  • 屏幕录制及简单裁剪:使用系统自带的QuickTime Player软件(Command+Control+ESC停止录制)
  • 预览文件:选中文件后按空格
  • 复制文件与拷贝文件的区别:复制是在同目录下新增出一个副本,拷贝才是等同于win下的复制

# 2.1.2 查看MacOS的版本

从苹果菜单  中选取“关于本机”,会看到 MacOS 名称,后面是版本号。

# 2.1.3 输入技术符号

⌘(command)、⌥(option/alt)、⇧(shift)、⌃(control)、⎋(esc)等这些符号在 Mac 中叫做「技术符号」。

右键输入法——显示表情与符号——点击左上角的「设置 - 自定列表...」,这里勾选上「技术符号」即可。

# 2.1.4 查看电脑的物理地址

WIFI图标——网络偏好设置——Wi-Fi右下方的“高级”——“硬件”菜单,下面第一行就是物理地址

# 2.1.5 将外置硬盘格式化为 APFS 格式

APFS 是苹果系统特有的一种文件格式,这种文件格式只能苹果 Mac OS 操作系统使用(必须至少是 Mac OS High Sierra 版本以上才行,老版本的苹果系统不支持),主要是针对 PCIe 闪存和 SSD 固态硬盘进行了优化。如果你是使用固态硬盘,且不考虑硬盘上的东西在 Windows 操作系统中使用,那推荐使用 APFS 硬盘格式。

格式化步骤:打开系统自带的“磁盘工具”——选中磁盘,点击“抹掉”,文件格式选择APFS即可。

# 2.1.6 安装、删除与强制退出应用

安装应用:将.app文件拷贝到应用程序目录即可(应用安装包通常为dmg、pkg、app)。

卸载应用:将.app文件从应用程序目录移到废纸篓,然后再在废纸篓里删掉即可。

强制退出:从屏幕左上角的苹果菜单 中选取“强制退出”。 然后选择相应的 App 并点按“强制退出”。

# 2.1.7 修改应用安装包文件

打开 Finder 通过 Application 找到指定应用,右键点击“显示包内容”,然后修改指定文件保存即可。

# 2.1.8 文件批量重命名

多选文件,右键——重新命名——有替换文本、添加文本、格式三种方式对文件进行批量命名。

# 2.1.9 朗读选中文本及文本转语音

选中文字,右键菜单选择语音-->开始讲话。

或者把文本写入到txt文件里,使用如下命令进行转换,然后再把得到的.acc文件改命mp3即可。

$ say -o test.acc -f test.txt
1

# 2.1.10 SSH连接远程服务器

可以直接使用ssh命令连接远程服务器

$ ssh -p 服务器端口号 服务器用户名@服务器IP     // 例如:ssh -p 22 [email protected]
1

之后会让你输入yes或者no来确认是否连接,输入yes回车,然后就会让你输入用户密码。

# 2.1.11 查看内存与显存

对于基于 Apple M1pro 芯片的 Mac,可以使用 system_profiler 命令来查看内存和显存信息。

$ system_profiler SPHardwareDataType     // 查看内存信息
$ system_profiler SPDisplaysDataType     // 查看显存信息
1
2

苹果芯片使用的是Unified Memmory Achitecture/Access(UMA)统一内存,它的好处是CPU和GPU的访问完全打通了,互相可以直接访问,一份数据不需要再来回拷贝两份,这样对CPU和GPU进行异构计算时有莫大的帮助。

苹果芯片的UMA技术

简而言之,平时使用时不需要将显存单独区分,占用显存即占用内存。当内存不足时,会自动使用虚拟内存,这个说白了就是硬盘,如果跑算法时内存不够而使用到了虚拟内存,那么它的运行速度会大幅下降。

# 2.1.12 进入系统恢复模式

开机时长按电源键直至出现“正在加载启动选项… ”提示,即可进入系统恢复模式。

# 2.1.13 查询及切换终端类型

$ echo $SHELL  // 查询终端类型
$ chsh -s /bin/zsh   // 切换zsh终端类型
$ chsh -s /bin/bash  // 切换bash终端类型
1
2
3

# 2.1.14 修改终端里显示的主机名

$ sudo scutil --set HostName "Your_New_HostName"
1

# 2.2 系统基本设置

# 2.2.1 修改开机密码

苹果小图标——系统偏好设置——用户与群组设置——选择用户,更改密码

# 2.2.2 安装任意来源的应用

Step1:打开终端,输入以下命令(未输入以下命令之前没有“任意来源”选项)

$ sudo spctl --master-disable
1

Step2:苹果小图标——系统偏好设置——安全性与隐私——通用——“允许从以下位置下载的App”处选择“任意来源”

安装任意来源的应用

# 2.2.3 访达显示路径栏

任意打开一个访达窗口,在左上角菜单栏里找到“显示” →点击“显示路径栏”即可显示文件路径。

注:右键路径栏,可以进行复制路径、在当前路径打开终端等操作。

# 2.2.4 显示隐藏文件

显示隐藏文件:

$ defaults write com.apple.finder AppleShowAllFiles TRUE
$ killall Finder
1
2

返回隐藏:

$ defaults write com.apple.finder AppleShowAllFiles FALSE
$ killall Finder
1
2

# 2.3 系统功能增强

# 2.3.1 对于NTFS格式U盘的支持

MacOS 并不是原生支持 NTFS 格式的硬盘,默认情况只能读不能写。所以如果要在 Win 和 MacOS 共同使用同一个U盘,要么将硬盘格式化成兼容这两个系统的 FAT32 格式(不支持4G 以上的大文件)、exFAT格式,要么通过第三方工具(如:Omi NTFS 1.1.3 破解版 (opens new window))去对NTFS进行支持。

补充说明:需要进入进入系统恢复模式,设置其允许系统加载 Omi NTFS 内核扩展。

  • 开机时长按电源键直至出现“正在加载启动选项… ”提示,进入系统恢复模式。
  • 选择“选项”图标,然后单击“继续”。
  • 选择管理员用户,输入密码登录。
  • 点击顶部工具栏上的“实用程序”,然后选择“启动安全实用程序”。
  • 选择系统盘,点击右下角的“安全策略… ”按钮。
  • 选择“降低安全性”和“允许用户管理来自已识别开发人员的内核扩展”,点击右下角的“确定”按钮。
  • 点击左上角的苹果标志,重启系统。

允许系统加载Omi-NTFS内核扩展

注意的点:

  • 如果之前对U盘配置过BitLocker加密(Win10企业版和专业版自带的),还需要先把它去掉,否则MacOS还是无法读盘。
  • 长时间大批量写入文件的话(比如我用 Get Backup Pro 3 同步备份文件),会造成MacOS死机,这个是NTFS的问题。

# 2.3.2 右键菜单更改

MacOS预装了非常多的实用流程,并已经添加到了右键菜单中。并且许多第三方程序也会在安装后往右键增加很多功能,最终导致我们的右键菜单很臃肿。打开系统偏好设置--键盘--快捷键--服务,将不需要的右键菜单禁用即可。

# 2.3.3 刘海屏遮挡应用图标问题

Macbook Pro 2021 14寸采用的是刘海屏设计,如果开的应用过多,会遮挡住应用图标,非常不便。这里推荐使用 Bartender 4工具,它可以自行管理有哪些软件图标放置在主菜单,其余的都默认隐藏(悬浮可查看)。

破解版下载:https://xclient.info/s/bartender.html#versions (opens new window)

Bartender4

# 2.3.4 查看系统剪贴板的历史记录

可借助 Maccy (opens new window) 开源工具实现,默认快捷键为 Shift (⇧)+ Command (⌘)+C,安装命令如下:

$ brew install --cask maccy
1

# 2.3.5 查看目录层级结构

$ brew install tree   // 安装tree命令(需要先安装Homebrew包管理器)
$ tree -L 2   // 显示当前目录的目录结构,限制目录层级为2
1
2

# 2.3.6 设置屏幕分辨率

苹果小图标——系统偏好设置——显示器——缩放(下面有四种分辨率选项)

如果想要扩展使用其他的屏幕分辨率,可借助 display-maestro 软件来实现,破解包:https://macwk.com/soft/display-maestro (opens new window)

右键 display-maestro 图标——从 Color LCD 中选择一个合适的分辨率即可

# 2.3.7 测试端口连接性

使用 telnet 命令进行测试

$ brew install telnet       // 需要先安装Homebrew包管理器 
$ telnet www.baidu.com 80
1
2

# 2.3.8 安装命令行视频下载工具

使用 you-get 搭配 FFmpeg 实现任意视频的下载及合并。

you-get项目地址:https://github.com/soimort/you-get (opens new window),具体使用详见 官方文档 (opens new window)

// 需要先安装Homebrew包管理器
$ brew install you-get              // 安装you-get
$ brew install ffmpeg               // 安装ffmpeg              
$ you-get 视频URL                    // 下载视频的最基本使用
1
2
3
4

# 2.3.9 在菜单栏展示系统资源占用

可通过eul开源项目来实现,项目地址:https://github.com/gao-sun/eul (opens new window)

eul

# 2.3.10 管理菜单栏

可通过hidden开源项目来实现,项目地址:https://github.com/dwarvesf/hidden (opens new window)

使用方法:按住⌘键再选中拖动菜单栏图标,|线左侧的图标在点击 < 后会被隐藏掉。

# 2.3.11 设置文件的默认打开方式

方法 1. 更改某一个文件的默认打开方式

  • Step1:右键单击该文件。
  • Step2:按下 Option 键,你会看到「打开方式」选项变成了「始终以此方式打开」。
  • Step3:选择「始终以此方式打开」列表内的某一个应用程序。

方法 2. 更改同类型文件的默认打开方式

  • Step1:右键单击该文件,然后选择「显示简介」选项。
  • Step2:找到「打开方式」项目,点击倒三角选择你想指定的默认应用程序。
  • Step3:第三步:单击「全部更改」按钮即可生效。

# 2.3.12 右键新建各类文件及打开项目

[1] 通过第三方应用实现

MacOS默认不支持右键新建各类文件,可通过破解版的 Easy New File (opens new window) 的工具去实现。

注:“超级右键”工具的付费版感觉也很好用,但免费版就算了。

[2] 通过“自动操作”实现

打开 Automator.app(自动操作)——选择 Quick Action(快速操作)——搜索框输入“打开”,拖动“打开访达项目”模块

“工作流程收到当前”选择“文件或文件夹”,“位于”选择“访达.app”,“打开访达项目”选择所需要的软件,保存即可。

保存完成之后,选择目录右键,快速操作里就有了打开某应用的快捷选项。

通过自动操作实现右键打开

# 2.3.13 使用 TouchID 指纹验证 sudo

用文本编辑器打开/etc/pam.d/sudo文件(因为该文件受保护,可以拷贝一份,修改完覆盖回去),添加一行auth sufficient pam_tid.so即可。

# sudo: auth account password session
auth       sufficient     pam_smartcard.so
auth       sufficient     pam_tid.so
auth       required       pam_opendirectory.so
account    required       pam_permit.so
password   required       pam_deny.so
session    required       pam_permit.so
1
2
3
4
5
6
7

# 2.3.14 将右键的“用Baidu搜索”修改成“用Google搜索”

国内 MacOS 的 Safari 默认搜索引擎是 Baidu(垃圾玩意儿,狗都不用),所以自带的右键服务也是“用Baidu搜索”,看着真碍眼。

Safari浏览器——设置——搜索——搜索引擎修改为“谷歌”,该右键菜单也会随之改变成“用Google搜索”

修改Safari默认搜索引擎

# 2.3.15 长时间视频录屏

MacOS自带的Quick Time Player,录制的视频质量太高,几分钟就占用上百兆存储,不适合长时间录制。

ScreenFlow for Mac:视频录屏工具,商业软件,中文破解版下载:https://www.zhiniw.com/wp-content/themes/2019_v0.1/down.php?id=4590 (opens new window)(用来代替Win10的Bandicam)

视频录制完成之后,可以直接在这上面进行简单剪辑,例如可以使用Split at Playhead功能进行分割,去除不必要的部分。也可以取消Show Mouse Pointer 的勾选来实现隐藏鼠标(剪辑掉一些片段会造成鼠标位置到处闪,因此将其隐藏,需要时可剪辑时做上去)。

ScreenFlow隐藏鼠标

# 2.3.16 自定义终端命令

创建一个放自定义脚本的文件夹,我这里使用的是 /usr/local/etc/self_command,然后创建一个入口文件 alias.sh,内容如下:

alias test='echo "test command"'
1

注:这里的 ‘=’ 两边都不要有空格,里面放置自定义命令,一个自定义命令里的多个步骤用 && 连接,多个自定义命令就写多个 alias。

接下来,在 ~/.bash_profile 文件中添加以下配置:

source /usr/local/etc/self_command/alias.sh
1

然后需要重新加载一遍 .bash_profile 文件,之后自定义命令就生效了。

$ source ~/.bash_profile
$ test
test command
1
2
3

# 2.3.17 递归指定目录将修改时间更改为最新时间

update_timestamps.sh

#!/bin/bash

# 提示用户输入想要遍历的目录
echo "请输入你想要遍历的目录路径:"
read dir

# 检查输入的目录是否存在
if [ ! -d "$dir" ]; then
    echo "目录不存在,请检查路径是否正确"
    exit 1
fi

# 保存旧的 IFS 值,以便稍后恢复
OLDIFS=$IFS

# 设置 IFS 为换行符
IFS=$'\n'

# 使用find命令遍历目录下所有文件和子目录
for path in $(find "$dir")
do
    # 使用touch命令更新文件或目录的修改时间和访问时间为当前时间
    touch "$path"
done

# 操作完成后,恢复 IFS 的原始值
IFS=$OLDIFS

echo "操作完成,所有文件和目录的修改时间和访问时间已更新为当前时间。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

说明:将IFS设置为换行符,这样for循环就会正确地处理文件名和目录名中的空格。在遍历完成后,脚本将IFS恢复为其原始值。

# 2.3.18 测试硬盘的速度

可使用 BlackmagicDiskSpeedTest (opens new window) 工具来测试硬盘的速度。

BlackmagicDiskSpeedTest

# 2.4 使用“自动操作”定制服务

自动操作Automator:只要通过点击拖拽鼠标等操作就可以将一系列动作组合成一个工作流,帮助你自动的完成一些重复性的复杂工作。

我们可以自己去编写工作流,也可以直接去找别人写好的.workflow工作流文件来用,安装后统一存储在~/library/Services目录,如果要卸载的话,去这个目录里挪出或删掉即可。

下面以一个shell的工作流作为示例,演示如何创建自己的工作流。

Step1:打开系统自带的“自动操作”工具——选择“快速操作”,点击“选取按钮”,创建一个空的工作流。

自动操作-1

Step2:在搜索框搜索“运行Shell脚本”,把它拖拽到右边,然后输入命令,配置完之后可以点击“运行”按钮测试一下效果。

自动操作-2

Step3:点击“文件”、“存储...”,按照功能起一个名字,保存即可,保存后在~/library/Services目录即可看到我们创建的工作流。之后我们选中一段文本右键,选择“服务”,里面就有我们创建的工作流了,点击即可一键执行。

# 2.4.1 列出从 App Store 下载的所有应用并复制到剪贴板

$ find /Applications -path '*Contents/_MASReceipt/receipt' -maxdepth 4 -print |\sed 's#.app/Contents/_MASReceipt/receipt#.app#g; s#/Applications/##' | pbcopy
1

# 2.4.2 生成安全密码并复制到剪贴板

$ LC_ALL=C tr -dc "[:alnum:]" < /dev/urandom | head -c 32 | pbcopy
1

# 2.4.3 图片转base64字符串并复制到剪贴板

$ base64 base64_gegerate_test.png | pbcopy
1

# 2.4.4 使用Google搜索内容

$ open "http://www.google.com/search?q=$(ruby -rcgi -e 'print CGI.escape $<.read.chomp')"
1

# 2.5 修改网络配置

情景描述:公司的内网需要手动修改网络适配器配置,而这样会导致出差或者回家时在未修改配置时无法连接外网,手动修改太过麻烦,因此可以写个shell脚本,一键实现内网与外网的切换。

# 2.5.1 手动配置

苹果小图标——系统偏好设置——网络——高级——配置TCP/IP及DNS (注:TCP/IP那里IPv4选择手动,那个路由器设置项就是网关)

# 2.5.2 通过shell脚本切换

根据公司内网的实际配置对如下脚本进行修改,switch-network.sh

#!/bin/sh

NETWORK_TYPE=$1

if [ -z $NETWORK_TYPE ]; then

    NETWORK_TYPE='dhcp'

fi

if [ $NETWORK_TYPE == 'dhcp' ]; then

    echo 'Wi-Fi network has been amended to DHCP'

    sudo networksetup -setdhcp Wi-Fi

    echo 'clear dns cache'

    sudo dscacheutil -flushcache

elif [ $NETWORK_TYPE == 'manual' ]; then

    echo 'Wifi network has been amended to manual(IP地址 子网掩码 网关)'

    sudo networksetup -setmanual Wi-Fi xxx.xxx.xxx.xxx 255.255.255.0 xxx.xxx.xxx.xxx

    echo 'clear dns cache'

    sudo dscacheutil -flushcache

    echo 'Set the dns server to 223.5.5.5 and 8.8.8.8'

    sudo networksetup -setdnsservers Wi-Fi 223.5.5.5 8.8.8.8

fi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

使用方式

$ sudo ./switch-network.sh dhcp/manual    // 默认不加参数的话是dhcp
1

# 2.6 系统常见问题

# 2.6.1 安装Parallels Desktop虚拟机运行Win环境的软件

需求情景:有时我们需要使用Win环境独有的小众软件(比如一些固件刷机工具)或者Office办公(Mac端的Office打开后部分图表会乱码,不建议使用)

解决办法:安装 Parallels Desktop (opens new window) 虚拟机工具(它可以与Mac共享目录与软件,还是挺方便的,不过这个软件收费,需要破解使用)

破解方式1:使用 ParallelsDesktopCrack (opens new window) 进行破解,该工具直接破解出一个 Parallels Desktop for Mac 商业版永久许可证。

Parallels-Desktop永久许可证

注意事项:

[1] 官方原版的 ParallelsDesktopCrack 已经因为违反政策被Github删掉了,但是网上有很多第三方的Fork版可用。

[2] 如果破解过程遇到如下报错,给“终端”添加“完全磁盘访问权限”即可(系统设置-隐私与安全性-完全磁盘访问权限)

$ chmod +x ./install.sh && sudo ./install.sh
[*] Exit Parallels Desktop
[*] Start Parallels Service
[*] Exit Parallels Desktop account ...
The user has signed out successfully.
[*] Disable CEP ...
[*] Stop Parallels Service
[*] Copy prl_disp_service
cp: /Applications/Parallels Desktop.app/Contents/MacOS/Parallels Service.app/Contents/MacOS/prl_disp_service: Operation not permitted
error 1 at line 94.
1
2
3
4
5
6
7
8
9
10

破解方式2:使用 pd-runner (opens new window) 启动 Parallels Desktop 17即可,该工具可以无视试用过期(如果已经过期了,可以修改以前的系统时间绕过,等pd-runner接管了无限试用后再改回正常系统时间)

ARM 架构的 Windows ISO 镜像。微软并没有直接提供镜像的下载,但所需的文件其实都可以通过 Windows Update 的服务器获得。通过网站 UUP dump (opens new window),可以方便的获取到生成 ISO 镜像的脚本文件。

关于Win系统的激活,不必寻找激活码了,可以使用 Microsoft-Activation-Scripts (opens new window) 脚本一键激活,打开 PowerShell 输入以下命令即可一键激活:

$ irm https://massgrave.dev/get | iex
1

Microsoft-Activation-Scripts激活Win系统

Offcie安装:使用 Office-Tool (opens new window) 工具安装即可(img安装包在这个虚拟机上没法用,但是Offcie-Tool安装工具可以)

Win10与Office破解:可使用 microKMS 激活工具,当然也可以去找激活码。

# 2.6.2 开机壁纸与桌面壁纸不统一问题

动态桌面:从App Store下载安装 Dynamic Wallpaper Engine 软件(18RMB)

开机壁纸与桌面壁纸不统一问题:苹果菜单()>“系统偏好设置” >“安全性与隐私”>“文件保险箱”,检查是否已开启磁盘的文件保险箱。 如果已开启,尝试将其关闭 ,重新启动 Mac即可。

# 2.6.3 Win下编写的shell脚本无法使用问题

出错描述:在终端里可以执行的正常命令在shell脚本里无法执行,错误描述里有^M字样。

出错原因:不同系统的换行符不同

  • Windows系统里面,每行结尾是 回车+换行(CR+LF),即“\r\n”;
  • Unix和类Unix(如Linux)系统里,每行结尾只有 换行CR,即“\n”;
  • Mac OS X系统里,每行结尾是 换行CR,即“\n”。

解决办法:转换成对应系统的换行符即可

$ brew install dos2unix   // 需要先安装Homebrew包管理器    (除此之外还有unix2dos、unix2mac、mac2unix)
1

单个处理:dos2unix filename

批量处理(处理当前目录下的所有文件):

howUsage()
{
echo "Usage: dos2unixdir [destdir]"
exit 0
}
dir=$PWD
if [ $# -gt 1 ]
then
showUsage
fi
if [ $# -gt 0 ]
then
dir=$1
fi


for i in `find $dir`
do
if [ ! -d $i ]
then
    echo "processing file..." $i
   dos2unix $i $i
fi
done
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# 2.6.4 钥匙串密码错误问题

进入~/Library/Keychains目录,里面有2个文件和1个文件夹,删除掉那个文件夹,重启电脑,重新设置密码即可。

# 2.6.5 解决vim里delete不能向左删除问题

情景:MacOS下打开vim编辑文本,进入插入模式,要删除编辑之前的保存过的几个字符,按下delete键删除它们,却始终无效。

原因:vim 使用了 compatible 模式,或者把 backspace 变量设置为空了…其实 compatible 模式是 vim 为了兼容 vi 而出现的配置,它的作用是使 vim 的操作行为和规范和 vi 一致,而这种模式下 backspace 配置是空的。即意味着 backspace 无法删除 indent ,end of line ,start 这三种字符。

在默认状态下,delete 按下只会删除本次插入模式下插入的文本,这跟 backspace 的模式设置有关,其模式可以设置为以下三种模式:
0 same as “:set backspace=” (Vi compatible)
1 same as “:set backspace=indent,eol”
2 same as “:set backspace=indent,eol,start”
1
2
3
4

解决:只需要将 backspace 的模式设置成2就可以了,在~/.vimrc中添加以下内容保存,下次进入 vim 就可以在插入模式下任意使用delete键了。

另注:解决 vim 方向键变成 ABCD 的问题

  • 情景:MacOS 下连接了远程服务器,然后使用 vim 去编辑 Docker 容器里面的配置文件,发现方向键变成了ABCD。

  • 原因:该 Docker 容器里预装的是 vim tiny 版本,安装 vim full 版本即可解决。

  • 解决:在远程服务器的Docker容器里操作(这个问题与MacOS系统本身无关)

    $ apt-get remove vim-common                     // 卸载 vim-tiny
    $ apt-get update && apt-get install vim -y      // 安装 vim-full
    
    1
    2

# 2.6.6 批量删除.DS_Store

将在Mac开发的项目上传到别的系统上,会出现.DS_Store文件,有时会影响项目运行,可通过以下命令批量删除。

$ find . -name ".DS_Store" -print -delete
1

# 2.6.7 环境变量未生效问题

情景描述:每次都要执行 source ~/.bash_profile配置的环境变量才生效,关闭终端后就又不生效了。

问题原因:zsh加载的是 ~/.zshrc文件,而该文件中并没有定义任务环境变量。

解决办法:在~/.zshrc文件最后,增加一行如下配置即可。

$ source ~/.bash_profile
1

# 2.6.8 Word嵌入的Visio图表乱码

情景描述:别人发过来的Word文档里存在Visio图表,在Mac上显示乱码。

解决办法:将Word文档重命名为Zip文件,然后对其解压,从解压目录里寻找.vsdx文件,这个就是Visio图表,用 draw.io 之类的软件将其打开,以图片的形式重新嵌入到文档中。

# 2.6.9 ARM出现“损坏的应用程序”报错

ARM芯片的MAC,部分软件会报“损坏的应用程序”错误,其实软件本身是没问题的,一般使用xattr命令配置一下就能用了。

$ xattr -cr /Applications/xxx.app
1

# 2.6.10 DNS解析问题导致无法访问谷歌

问题情景:突然使用校园网络无法访问Google了,更换很多梯子节点也都不好用,但其他一些境外被墙网站是可以访问的。如果将网络换成手机热点的WiFi,就又能访问Google了,怀疑是校园网络的DNS出现了问题。

解决方案:修改校园网络的DNS配置,并清空DNS缓存之后,即可恢复正常。

Step1:将网络连接的 DNS 服务器设置为公共 DNS 服务器,如谷歌的 8.8.8.88.8.4.4 ,或者国内的 114.114.114.114 等。

修改校园网络的DNS配置

Step2:强制刷新本地 DNS 缓存

$ sudo dscacheutil -flushcache
1

# 2.7 居家办公相关配置

问题背景:疫情原因需要居家办公,公司运维给配置了OpenVPN用于访问指定服务器,但数据库域不允许直连,只能连接公司办公电脑或虚拟机去间接操作。由于运维给出的操作手册只有Win版,所以Mac版就要自行寻找解决方案,现整理如下。

# 2.7.1 OpenVPN配置

OpenVPN-Mac下载地址:https://openvpn.net/client-connect-vpn-for-mac-os/ (opens new window)

连接配置方式与Win端基本一致(安装完之后,先把运维提供的.ovpn配置文件拖进去,然后输入账号和密码即配置成功),打开开关按钮即连接成功。

OpenVPN配置

注:如果遇到连接超时的问题,执行如下命令即可解决问题。

$ sudo /Library/Frameworks/OpenVPNConnect.framework/Versions/Current/usr/sbin/ovpnagent
1

# 2.7.2 远程连接跳板机

打开 OpenVPN 之后,在Win端是使用 mstsc 工具去远程连接跳板机,Mac端可以使用 Microsoft_Remote_Desktop 工具去连接。

Microsoft_Remote_Desktop 下载地址:https://go.microsoft.com/fwlink/?linkid=868963 (opens new window)

打开工具之后,新建一个PC,填写 PC name(注意需要带上端口号) 与 User account 即可,然后在主界面进行连接即可。

远程连接跳板机配置

# 3. 基本开发环境

# 3.1 Homebrew包管理器

# 3.1.1 Homebrew简介及安装

基本介绍:Homebrew 是Mac OS X下的一款软件包管理器, 相当于Linux下的yum、apt-get。通过它可以方便的下载、安装、管理应用, 不再需要亲自动手去搜索各种安装包。

安装命令:

$ /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"            // 国内源卸载并安装(首选)
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"   // 官方源安装命令(备用,需代理)
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)" // 官方卸载命令(备用,需代理)
$ /bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)"       // 中科大镜像源安装命令(备用)
$ /bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/uninstall.sh)"     // 中科大镜像源卸载命令(备用)
1
2
3
4
5

注:使用第一个国内源安装后,安装完后需要关闭终端再打开,然后使用brew install时会报错fatal: not in a git directory Error: Command failed with exit 128: git,输入以下命令即可解决。

$ git config --global --add safe.directory /opt/homebrew/Library/Taps/homebrew/homebrew-core
$ git config --global --add safe.directory /opt/homebrew/Library/Taps/homebrew/homebrew-cask
1
2

# 3.1.2 Homebrew基本使用及常见问题

基本使用:

$ brew search 软件名     // 查询软件
$ brew install 软件名    // 安装软件
$ brew uninstall 软件名  // 卸载软件
$ brew update           // 更新 Homebrew
$ brew config           // 查看 Homebrew 配置信息
1
2
3
4
5

常见问题:

[1] Error: The following directories are not writable by your user: /usr/local/share/man/man5 /usr/local/share/man/man7

$ sudo chown -R $(whoami) /usr/local/*   // 给usr/local文件夹写入权限即可
1

[2] ARM架构的M系列芯片,使用时报错:

Error: Cannot install in Homebrew on ARM processor in Intel default prefix (/usr/local)!
Please create a new installation in /opt/homebrew using one of the
"Alternative Installs" from: https://docs.brew.sh/Installation
You can migrate your previously installed formula list with: brew bundle dump
1
2
3
4

解决办法:先安装Rosetta2,之后所有的brew安装与使用命令都在开头加上arch -x86_64

$ /usr/sbin/softwareupdate --install-rosetta --agree-to-license
$ arch -x86_64 /bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)" 
$ arch -x86_64 brew install 软件名
1
2
3

[3] brew install 的时候出现error: Not a valid ref: refs/remotes/origin/master

解决方法:卸载brew后重新安装即可

[4] brew install 的时候报错 No such file or directory @ rb_sysopen -

报错原因及解决办法:使用国内镜像而该镜像未完全同步问题,临时去除镜像即可。

$ export HOMEBREW_BOTTLE_DOMAIN=''
1

# 3.2 安装conda环境

# 3.2.1 安装M1版conda环境

项目地址:https://github.com/conda-forge/miniforge/ (opens new window)

$ wget https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-MacOSX-arm64.sh
$ chmod u+x Miniforge-MacOSX-arm64.sh && ./Miniforge-MacOSX-arm64.sh
$ conda --version
1
2
3

注:安装过程中如果出现如下报错,则需要安装Xcode toolkit,安装方法为:xcode-select --install

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools),
missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
1
2

# 3.2.2 conda环境设置代理

设置如下代理:

$ set https_proxy=http://代理IP:代理端口号  
1

.condarc配置文件内容如下:

channels:
  - defaults

ssl_verify: false
proxy_servers:
  http: http://127.0.0.1:7890
  https: http://127.0.0.1:7890
1
2
3
4
5
6
7

注意:我这里使用的是ClashX的代理,默认端口是7890,https的也是http://127.0.0.1:7890(是http,而不是https),若是该配置文件有问题,会出现如下错误:

ProxyError: Conda cannot proceed due to an error in your proxy configuration.Check for typos and other configuration errors in any '.netrc' file in your home directory, any environment variables ending in '_PROXY', and any other system-wide proxy configuration settings.
1

# 3.2.3 conda环境基本使用

查询可用的Python版本。

$ conda search python
1

conda使用前需要先创建虚拟环境。

$ conda create -n conda_38_env python=3.8
1

创建完虚拟环境之后,使用如下命令激活虚拟环境即可。

$ conda activate conda_38_env
1

如果要关闭虚拟环境,输入以下命令即可。

$ conda deactivate                        
1

可通过如下命令查看所有conda环境,前面有个*的代表当前环境。

$ conda info --env
1

注意事项:

[1] 如果想要在未激活的状态下直接使用conda环境运行脚本,可通过如下方式:

$ conda run -n conda_38_env python3 /root/test.py
1

[2] 使用 conda search python 命令查询到3.7.1可用,但安装过程报错,可能是Python3.7对M系列芯片不兼容。

尝试使用 osx-64 通道而不是 osx-arm64 来安装 Python 3.7.1,它是为 Intel 架构构建的,这种方式就能安装成功了。

$ conda config --set subdir osx-64
$ conda create -n conda_37_env python=3.7.1
1
2

[3] 如果使用 conda install 命令安装一些环境之后出现了问题,是可以进行回滚的。

$ conda list --revisions
$ conda install --revision N   // 找到之前的修订版本号(例如 N)
1
2

# 3.2.4 禁止conda默认进入base环境

情景描述:安装完conda之后,每次打开终端会自动激活默认的base环境。

解决方案:如果不想自动激活,可以通过如下方式将其关掉。

$ conda config --set auto_activate_base false   // 关闭自动激活base环境
$ conda config --set auto_activate_base true    // 开启自动激活base环境
1
2

# 3.2.5 PyCharm配置conda环境

[1] 配置自己安装的conda环境

PyCharm——Settings——Project——Python Interpreter——设置按钮,Add——Conda Environment——Existing environment——Interpreter配置成envs里的python解释器,如:/xxx/miniforge3/envs/conda_38_env/bin/python,Conda executable配置成/xxx/miniforge3/bin/conda路径。

Pycharm配置conda环境

[2] 配置base环境

自带 base 环境并不在 envs 文件夹下,而是 Anaconda 的根目录。若要配置base环境,其余的不变,Interpreter改成/xxx/miniforge3/bin/python3.10即可。

# 3.2.6 安装深度学习环境

MacOS版Tensorflow最高支持python3.8,如果使用python3.9会出现找不到包的问题。

Step1:安装Pytorch环境(Mac版的PyTorch默认不支持连接GPU)

$ pip3 install torch torchvision torchaudio  
1

注:PyTorch 使用新的 Metal Performance Shaders (MPS) 后端来实现 GPU 训练加速。该 MPS 后端扩展了 PyTorch 框架,提供了在 Mac 上设置和运行操作的脚本和功能。MPS 框架通过针对每个 Metal GPU 系列的独特特征进行微调内核来优化计算性能。新mps设备将机器学习计算图和原语映射到 MPS Graph 框架和 MPS 提供的调整内核上。

$ conda install pytorch torchvision torchaudio -c pytorch-nightly        // 使用conda安装
$ pip3 install --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cpu  // 使用pip安装
1
2

可以使用简单的 Python 脚本来验证 mps 支持:

import torch
if torch.backends.mps.is_available():
    mps_device = torch.device("mps")
    x = torch.ones(1, device=mps_device)
    print (x)
else:
    print ("MPS device not found.")
1
2
3
4
5
6
7

输出应显示:

tensor([1.], device='mps:0')
1

Step2:安装tensorflow环境(ARM架构的M系列芯片)

$ conda install -c apple tensorflow-deps==2.11.0
$ pip3 install tensorflow-macos==2.11.0           
$ pip3 install tensorflow-metal==0.7.1
1
2
3

注:验证 Tensorflow是否连上GPU

# -*- coding: utf-8 -*-

import tensorflow as tf

print(tf.test.is_gpu_available())

gpu_device_name = tf.test.gpu_device_name()
print(gpu_device_name)
1
2
3
4
5
6
7
8

# 3.3 安装python环境

# 3.3.1 安装python3环境

也可以不使用conda,直接安装python3环境。

$ brew install python3
$ python3 -v
$ python3 -m site      // 查看当前Python环境中的site-packages目录位置 (我的是:/usr/local/lib/python3.9/site-packages)
1
2
3

pip3换源:国外的源下载速度太慢,而且经常出现下载后安装出错问题,所以把pip安装源替换成国内镜像

$ pip3 config set global.index-url http://mirrors.aliyun.com/pypi/simple/
$ pip3 config set install.trusted-host mirrors.aliyun.com
1
2

设置软链接:将python链接到python3环境上

// 查看python3环境安装的位置
$ which python3
/opt/homebrew/bin/python3   

// 设置软链接,将python链接到python3环境上
$ open ~/.zshrc    
alias python=/opt/homebrew/bin/python3
1
2
3
4
5
6
7

# 3.3.2 安装python2环境

需求情景:某些前端库需要依赖python2环境才能安装成功。

$ brew install pyenv 
$ pyenv install 2.7.18
$ npm config set python /Users/xxx/.pyenv/versions/2.7.18/bin/python
1
2
3

注:Mac Monterey默认移除了Python2。实际上Python官方宣布 2020 年 1 月后不再更新维护 Python2,最后版本为 2.7.18 (opens new window)。在2020年4月之前可使用 brew install python@2 来安装python2,但现在已经失效,使用 pyenv 可以成功安装 python2。

# 3.4 安装pipx及poetry环境

pipx:类似于 macOS 上的 brew,pipx 依赖 pip 和 venv,它只能在 python 3.6+ 的 Python 版本中才能使用。

poetry:如果想使用pyproject.toml,并通过pyproject.toml进行依赖包管理,目前pip还不支持,所以poetry是首选。

$ brew install pipx
$ pipx --version
$ pipx install poetry
$ pipx ensurepath   // 自动更新环境变量
$ poetry --version  // 需要重新打开终端
1
2
3
4
5

poetry环境

# 3.5 安装并配置pyside6环境

PySide6 是来自于Qt for Python项目的官方Python模块,它提供了对完整Qt 6.0+框架的访问。

  • Qt Designer:拖拽式的界面设计工具,通过拖拽的方式放置控件,并实时查看控件效果进行快速UI设计。
  • PyUIC:主要是把Qt Designer生成的.ui文件转换成.py文件。

pyside6-uic与pyuic5工具对比:

  • 方案一:PySide6附带的pyside6-uic工具,转换完之后,存在中文unicode乱码,有无效空行,存在未使用的包被引入问题。
  • 方案二:PyQt5里里的pyuic5,可以借用它来将 .ui 文件转换成 .py 文件,转换完成后,需要手动将PyQt5的引用依赖改成PySide6,二者基本是通用的。

安装依赖:MacOS需要安装 PySide6 和 PyQt5(如果采用方案二)

$ pip3 install PySide6    // 安装Pyside6环境及使用里面的 Qt Designer 工具
$ pip3 install PyQt5      // 纯粹是为了使用里面的 pyuic5 工具
1
2

在Pycharm里配置External Tools:为了后续方便使用,建议在 PyCharm 的 External Tools 中,配置一下Qt Designer 和 PyUIC5 工具。配置好之后可以在 Tools——External Tools 处或者右键 .ui 文件处方便打开外部工具,就不用去安装目录里找了。

配置Qt Designer:

  • Name: QtDesigner
  • Program : /usr/local/lib/python3.9/site-packages/PySide6/Designer.app (以实际安装目录为准)
  • Working directory: $ProjectFileDir$
Mac配置QtDesigner

配置PyUIC5:

  • Name: Pyuic5
  • Program : pyuic5
  • Arguments:-o $FileNameWithoutExtension$.py $FileName$
  • Working directory: $FileDir$
配置PyUIC5

补充说明:

[1] pyuic5安装好了之后(通过PyQt5),也可以直接在命令行里对ui文件进行转换。

$ pyuic5 -o ./ui/test.py ./ui/test.ui 
1

[2] 如果使用pyside6-uic,“配置PyUIC5”处,将name和Program都改成pyside6-uic即可。

[3] MacOS端的 Qt Designer 默认是分体式的(即每一个窗口组件都是独立拖动和显示隐藏的),十分难用,可以修改首选项设置将其合并到一起。

Designer菜单——首选项——外观——用户界面模式处选择“停靠窗口”

# 3.6 安装jdk8与jdk17环境

jdk8官网:https://www.oracle.com/java/technologies/downloads/#java8 (opens new window)

jdk17官网:https://www.oracle.com/java/technologies/downloads/#java17 (opens new window)

# 3.6.1 单独安装jdk8环境

Step1:去官网下载 jdk-8u333-macosx-x64.dmg(以实际版本为准即可),然后安装。

Step2:配置环境变量

$ open ~/.bash_profile

添加如下一行配置:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_333.jdk/Contents/Home

$ source ~/.bash_profile
1
2
3
4
5
6

# 3.6.2 jdk8与jdk17环境共存

Step1:去官网下载 jdk-8u333-macosx-x64.dmg与jdk-17_macos-aarch64_bin.dmg(以实际版本为准即可),然后安装。

Step2:配置环境变量

$ open ~/.bash_profile

添加如下配置:
export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_333.jdk/Contents/Home
export JAVA_17_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
alias jdk8='export JAVA_HOME=$JAVA_8_HOME'
alias jdk17='export JAVA_HOME=$JAVA_17_HOME'
export JAVA_HOME=$JAVA_8_HOME

$ source ~/.bash_profile
1
2
3
4
5
6
7
8
9
10

jdk多版本共存

# 3.7 安装maven环境

官网:http://maven.apache.org/download.cgi (opens new window)

Step1:去官网下载最新版本apache-maven-xxx-bin.tar.gz(以3.8.6为例),解压放置到指定目录下(以/Library/Maven/为例)

Step2:配置环境变量

$ vi ~/.bash_profile

添加如下两行配置:
export M3_HOME=/Library/Maven/apache-maven-3.8.6
export PATH=$M3_HOME/bin:$PATH

$ source ~/.bash_profile
$ chmod a+x /Library/Maven/apache-maven-3.8.6/bin/mvn
$ mvn -v
1
2
3
4
5
6
7
8
9

Step3:修改maven配置

settings-ali.xml

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

    <!--
      仓库的优先级:本地仓库 > settings 中的 profile > pom 中的 repository > mirror
    -->

    <mirrors>
        <mirror>
            <id>aliyun-maven</id>
            <name>阿里云公共仓库</name>

            <!-- 只镜像中央仓库 -->
            <mirrorOf>central</mirrorOf>
            <url>https://maven.aliyun.com/repository/central</url>

            <!-- 镜像所有仓库 -->
            <!--<mirrorOf>*</mirrorOf>-->
            <!--<url>https://maven.aliyun.com/repository/public</url>-->
        </mirror>
    </mirrors>

    <profiles>
        <profile>
            <id>dev</id>
            <activation>
                <!-- 默认激活当前配置 -->
                <activeByDefault>true</activeByDefault>
                <jdk>1.8</jdk>
            </activation>
            <properties>
                <maven.compiler.source>1.8</maven.compiler.source>
                <maven.compiler.target>1.8</maven.compiler.target>
                <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
            </properties>
        </profile>
    </profiles>

    <activeProfiles>
        <!-- 指定激活配置 -->
        <activeProfile>dev</activeProfile>
    </activeProfiles>

</settings>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

# 3.8 安装git环境并配置github

安装git环境:

$ brew install git
1

设置全局代理(端口号以实际为准):

$ git config --global https.proxy http://127.0.0.1:1080
$ git config --global https.proxy https://127.0.0.1:1080
1
2

配置github(gitlab同理):

$ git config --global user.name “username”
$ git config --global user.email “email”
$ ssh-keygen -t rsa -C “email”
$ cat /Users/xxx/.ssh/id_rsa.pub   // xxx处替换成用户名
1
2
3
4

设置SSH KEY:

登录 Github ,找到右上角的图标,打开点进里面的 Settings ,再选中里面的 SSH and GPG KEYS ,点击右上角的 New SSH key,然后 Title 里面随便填,再把刚才 id_rsa.pub 里面的内容复制到 Title 下面的 Key 内容框里面,最后点击Add SSH key,这样就完成了SSH Key 的加密。

注:Git解决SSH非常规22端口的问题(配置Hexo博客自动上传的时候遇到的坑)——用不到无视即可

报错内容为ssh: connect to host xxx port 22: Connection refused,解决办法如下:

$ vi ~/.ssh/config

Host           git.xxx.com   # git host
Port           12345         # ssh 端口号
User           username      # 用户名称
IdentityFile   ~/.ssh/id_rsa # id_rsa 路径

$ ssh -T ssh://[email protected]    // 用来测试是否配置成功
1
2
3
4
5
6
7
8

可以使用 SourceTree (opens new window) 工具可视化管理Git仓库,这是一个适用于 Windows 和 Mac 的免费 Git 客户端。

SourceTree

另注:可以使用 onefetch (opens new window) 工具对Git仓库进行整体统计性可视化

$ brew install onefetch        // 安装
$ cd repo_path && onefetch     // 使用
1
2

onefetch对git仓库可视化

# 3.9 安装nvm与node.js环境

可以使用用nvm安装多个版本的Node.js,如果已经安装了node.js环境,首先要进行卸载,此处略。

$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash
$ vi ~/.bash_profile

添加如下两行配置:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"

$ nvm --version
1
2
3
4
5
6
7
8

安装多版本的node.js

$ nvm ls-remote  // 显示所有可安装的版本
$ nvm install v10.16.2 
$ nvm install v18.8.0
$ nvm list  // 显示所有已安装的node.js
1
2
3
4

注:如果 nvm ls-remote 时出现了返回结果为"N/A"的问题,执行如下命令即可解决

$ export NVM_NODEJS_ORG_MIRROR=http://nodejs.org/dist
1

切换使用某版本的node.js

$ nvm use v18.8.0
1

由于npm 的源在国外,所以国内用户使用起来可能下载速度很慢,可换源解决此问题。

$ npm config set registry https://registry.npm.taobao.org  //配置淘宝镜像
$ npm config get registry //验证配置是否成功

// 清除设置的淘宝镜像
$ npm config delete registry
$ npm config delete disturl
1
2
3
4
5
6

另注:安装pnpm环境

$ curl -f https://get.pnpm.io/v6.js | node - add --global pnpm
1

# 3.10 安装go环境

Step1:官网下载go安装包: https://golang.google.cn/dl/ (opens new window)(下载适合自己系统的二进制包)

$ wget -c https://golang.google.cn/dl/go1.20.3.darwin-arm64.tar.gz
$ sudo tar -xzvf go1.20.3.darwin-arm64.tar.gz -C /usr/local 
1
2

Step2:配置环境变量及国内代理:https://goproxy.cn/ (opens new window)(建议代理顺带着一并配置上)

$ open ~/.bash_profile

export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=$HOME/go

export GO111MODULE=on
export GOPROXY=https://goproxy.cn

$ source ~/.bash_profile
1
2
3
4
5
6
7
8
9
10

Step3:查看go的环境信息及版本

$ go env
GOPATH="/Users/yoyo/go"     // GOPATH:go工作区,即编写代码存放的目录
GOROOT="/usr/local/go"      // GOROOT:go的安装目录
...

$ go version
go version go1.20.3 darwin/arm64
1
2
3
4
5
6
7

Step4:在GoLand里配置并运行helloworld程序

GoLand——Settings——Go——配置GOROOT、GOPATH,配置路径即上面go env命令查到的,Go Modules勾选Enable Go modules integration。

新建 helloworld.go,启动后访问http://localhost:9000/hello地址,看到 Hello world! 输出即配置成功。

package main

import (
	"fmt"
	"log"
	"net/http"
	"os"
)

func main() {
	http.HandleFunc("/hello", hello)
	port := os.Getenv("PORT")
	if port == "" {
		port = "9000"
	}
	err := http.ListenAndServe(":"+port, nil)
	if err != nil {
		log.Fatal("ListenAndServe:", err)
	}
}

func hello(w http.ResponseWriter, req *http.Request) {
	log.Printf("%s %s\n", req.Proto, req.URL)
	fmt.Fprintln(w, "Hello world!")
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

# 3.11 安装docker环境

官网:https://docs.docker.com/desktop/mac/install/ (opens new window)

去官网下载dmg安装包进行安装即可,在终端使用docker version验证是否安装成功,值得一提的是,mac端的docker还自带一个图形化面板。

mac-docker

# 3.12 安装texlive环境

需求情景:想要基于LLM做一个arXiv科研助手,其中涉及LaTeX编译问题,需要借助texlive里的pdflatex工具。

安装步骤:首先从官网下载安装 MacTeX (opens new window) 工具,这里面包含了texlive,安装完毕的图形化工具删掉即可,然后通过如下命令配置一下环境变量。

$ find /usr/local/texlive -name pdflatex    // 记录一下输出的路径
$ open ~/.zshrc

# 写入如下内容配置texlive环境变量
export PATH=$PATH:/usr/local/texlive/2024/bin/x86_64-linux

$ source ~/.zshrc
$ pdflatex --version
1
2
3
4
5
6
7
8

# 4. 软件生态切换

# 4.1 腾讯系软件功能增强

# 4.1.1 微信防撤回及多开

方案一:通过命令开启另外一个微信实例

操作步骤:command+空格打开搜索框,打开终端,输入以下命令:

$ open -n /Applications/WeChat.app/Contents/MacOS/WeChat
1

命令解释:open代表打开一个文件,在类Unix的系统中,一切皆文件,所以这个WeChat应用程序也可以用这个命令打开,其中-n参数表示Open a new instance of the application(s) even if one is already running,也就是开启另外一个实例,哪怕这个程序已经在运行了

适用情形:由于该方案需要一直打开终端才能实现多开,而且打开时需要输入命令,不够方便,适用于临时的多开需求。

方案二:使用WeChatTweak开源插件实现微信多开及防撤回

项目地址:https://github.com/Sunnyyoung/WeChatTweak-macOS (opens new window)

操作步骤:command+空格打开搜索框,打开终端,输入以下命令

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # 安装Homebrew包管理器
$ brew install sunnyyoung/repo/wechattweak-cli # 下载
$ sudo wechattweak-cli install   # 安装/更新
$ sudo wechattweak-cli uninstall # 卸载
1
2
3
4

使用方式:微信右键——登录新的账号

WeChatTweak

适用情形:该方案使用方便,但安装时稍微麻烦了一些,适用于长期的多开需求。

# 4.1.2 微信使用默认浏览器打开网页链接

需求情景:每次点开微信消息里的网页链接都会使用微信内置的浏览器,很烦人,想要用系统默认的Chrome打开。

解决方案:有两种方案,临时方案是按住 Command 并单击链接,永久方案是修改设置(这个设置还是个隐藏项,设置菜单里压根儿没有,需要用命令唤起)

打开微信的搜索框,输入 :recover,弹出微信内置的 Repair Tool,勾选上“使用默认浏览器打开链接”即可。

微信Repair-Tool

# 4.1.3 腾讯会议多开

需求情景:会议时间冲突,只能选择参加一个会议,录屏一个会议。

解决方案:一个移动设备通过小程序加入,另一个PC设备通过软件加入,可以绕过腾讯会议同时只能加入一个会议的限制。录屏的话可以使iOS和MacOS自带的录屏功能,关闭音量状态下的录屏仍然可以录到系统声音。

# 4.2 Jetbrains系列IDE

# 4.2.1 Jetbrains系列IDE的破解

此次使用的官方2022.1版,直接使用激活码临时破解。

激活码:http://jets.idejihuo.com/ (opens new window)(激活码不定期更新,若提示“Key is invalid”,则说明这个激活码挂了,去别处找能用的吧)

永久破解:见 IntelliJ IDEA2022.1 永久激活 (opens new window) 教程,此处不再赘述。

# 4.2.2 IDEA配置新建项目的Maven地址

需求情景:每次新建项目都要配置一遍Maven地址很麻烦,可以对所有新建项目统一设置Maven地址,这样之后就不用每次都配置了。

解决方案:File——New Projects Setup——Preferences for New Projects...——搜索Maven,配置上相应参数即可。(注:设置其他新建项目的默认配置,也都在 New Projects Setup 处)

# 4.2.3 解决properties中文乱码问题

Settings——Editor——File Encodings——编码全选utf-8,勾选上Transparent native-to-ascii conversion

解决properties中文乱码问题

注:采用“Transparent native-to-asci conversion”的方式有弊端,可能你与项目合作者的编码方式不一致,你这里不中文乱码了,Git提交时也没有任何差异提示,但对方拉取下来就会中文乱码。

# 4.3 其他推荐的工具

主要以破解版工具、小众工具、MacOS替代品为主,大家都很熟悉的那些就不列举了。

# 4.3.1 开发工具类

[1] Navicat:数据库可视化管理工具,破解版下载:https://macwk.com/soft/navicat-premium (opens new window)

  • 如果不想用破解版,也可以去下载官方提供的阉割版 Navicat Premium Lite (opens new window),主要功能都是具备的,阉割的功能大多数都不太常用。
  • 如果想要配置汉化,可以使用:https://github.com/Jedeiah/navicat_premium_sinicization (opens new window)(将zh-Hans.lproj.zip解压,拷贝到/Applications/Navicat Premium.app/Contents/Resources/目录下。完全退出NavicatPremium,重新打开,即可汉化完成)
  • 如果部署数据库的服务器被GFW以TCP阻断的方式墙了,可以通过配置SSH代理(填写另一台境外服务器的连接信息)来解决。
  • 由旧设备同步数据到新设备之后,Navicat里的数据库全都连不上了,对比连接信息发现二者的密码不一致,应该是加密导致的。
  • 如果连接数据库时出现 The server key has changed. Either you are under attack or the administrator changed the key. 报错,这是因为服务器改密码导致的,删除 ~/.ssh/known_hosts 文件即可恢复正常。

[2] Postman:API测试请求工具,免费软件,官网下载:https://www.postman.com/downloads/ (opens new window)

[3] ARDM:Redis连接工具,开源地址:https://github.com/qishibo/AnotherRedisDesktopManager (opens new window)

[4] VS Code:代码编辑工具,免费软件,官网下载:https://code.visualstudio.com/download (opens new window)

[5] FinalShell:服务器连接工具,免费软件,官网下载:http://www.hostbuf.com/t/988.html (opens new window)

# 4.3.2 功能增强类

[1] ClashX:科学上网工具,详见我的另一篇博客:Clash配置转换及全平台科学上网 (opens new window)

[2] Bob:OCR识别翻译工具,开源地址:https://github.com/ripperhe/Bob (opens new window)(用来替代天若OCR)

Bob

注:macOS 12.3.1 以上,可以配置一个快捷指令,使用macOS 系统翻译服务,详见:在Bob中使用macOS系统翻译 (opens new window)

// Bob.Translate.v1 快捷指令
https://www.icloud.com/shortcuts/d2f4232643044d529eef20e2a1e92819
1
2

另注:如果升级到了macOS 13,开启了代理软件或者抓包工具,会导致系统翻译无法使用,可修改代理设置让系统翻译服务不被代理,详见:macOS升级到13后无法使用系统翻译 (opens new window),使用ClashX的用户可使用如下方式修改:

// 修改proxyIgnoreList.plist的配置
$ vim ~/.config/clash/proxyIgnoreList.plist
// 在<array></array>内添加如下内容
<string>sequoia.apple.com</string>
1
2
3
4

[3] aria2gui:多线程软件下载器,是 aria2 (opens new window) 的GUI封装,开源地址:https://github.com/NickYang29/aria2gui (opens new window)(用来替代IDM)

[4] ipfs-desktop:IPFS下载器,开源地址:https://github.com/ipfs/ipfs-desktop (opens new window)

[5] DeepL:文档翻译工具,免费软件,官网下载:https://www.deepl.com/zh/app/ (opens new window)

[6] EasyFind:文件检索工具,免费软件,中文版非官方下载:https://www.mac69.com/mac/12154.html (opens new window)(用来代替Everything)

EasyFind

[7] DiffMerge:文本差异比较工具,免费软件,官网下载:https://sourcegear.com/diffmerge/downloads.html (opens new window)

[8] SwitchHosts:一款管理hosts文件的工具,开源地址:https://github.com/oldj/SwitchHosts (opens new window)

[9] CotEditor:一个MacOS的轻量级纯文本编辑器,开源地址:https://github.com/coteditor/CotEditor (opens new window)(用来替代Notepad++)

[10] DevToysMac:DevToys 的 macOS 版本,实现了程序员日常开发会用到的功能。开源地址:https://github.com/ObuchiYuki/DevToysMac (opens new window)

DevToysMac

[11] remove.bg:基于AI去除图片背景,免费软件,官网下载:https://www.remove.bg/zh/tools-api (opens new window)

[12] Snipaste:截图贴图工具,免费软件,官网下载:https://www.snipaste.com/download.html (opens new window)

[13] ImageOptim:一个批量图片压缩工具,开源地址:https://github.com/ImageOptim/ImageOptim (opens new window)(用来替代Riot)

[14] Upscayl:一个图片放大器,可以几乎不损失质量,开源地址:https://github.com/upscayl/upscayl (opens new window)

Upscayl

[15] Inpaint:一个AI去除图片水印的工具,商业软件,破解版下载:https://www.zhiniw.com/wp-content/themes/2019_v0.1/down.php?id=19337 (opens new window)

[16] OmniDiskSweeper:磁盘分析工具,免费软件,官网下载:https://www.omnigroup.com/more (opens new window)

OmniDiskSweeper

[17] App Cleaner Uninstaller:软件完全卸载工具,免费软件,第三方下载:https://macwk.cn/app/175.html (opens new window)

# 4.3.3 文档笔记类

[1] Typora:Markdown笔记软件,从1.x版本开始收费,破解版下载:https://macwk.com/soft/typora (opens new window)

[2] MarkText:Markdown笔记软件,开源地址:https://github.com/marktext/marktext (opens new window)

[3] Get Backup Pro 3:文件增量同步工具,破解版下载:https://macwk.com/soft/get-backup (opens new window)(用来替代FreeFileSync)

Get-Backup-Pro-3

注:务必给该软件开启“完全磁盘访问权限”(在“系统设置-隐私与安全性”处),我之前用Get Backup Pro 3数据同步时遇到过丢文件的问题,查看同步日志后发现有很多"com.apple.security.private.scoped-bookmark-key",0) failed: Operation not permitted (1)的报错,原因就是没有开启“完全磁盘访问权限”。

[4] Xmind:思维导图工具,破解版下载:https://macwk.com/soft/xmind#step-history (opens new window)(下载11.1.1版本)

[5] DesktopNaotu:思维导图工具,开源地址:https://github.com/NaoTu/DesktopNaotu (opens new window)

[6] Nextcloud:私有云盘,开源软件,官网下载:https://nextcloud.com/install/ (opens new window)

[7] MacPass:密码管理工具,开源地址:https://github.com/MacPass/MacPass/ (opens new window)(用来替代KeePass)

[8] drawio-desktop:E-R图绘制工具,开源地址:https://github.com/jgraph/drawio-desktop (opens new window)

[9] Axure RP 9:原型设计工具,破解版下载:https://macoshome.com/app/graphicesdesign/1152.html (opens new window)

注:打开后出现“Axure 已损坏,打不开,您应该将它移到废纸篓”的问题,常规的 xattr 命令解决方案不好使。

$ sudo xattr -rd com.apple.quarantine /Applications/Axure\ RP\ 9.app     // 常规的此解决方案不好使
1

正确的解决方案:点开这个已损坏提示的“?”,再点开“通过覆盖安全性设置来打开 App”的链接,官方给出了如下解决方案(只有第一次需要这样),亲测可用

Axure已损坏的解决方案

打开之后,需要输入激活序列号,破解包里有个“激活序列号.txt”文件,使用第一个即可

Pro edition:
Licensee: speedzodiac
Key: R9473RX84fePU9IoQseixkV0jmY/8jSvOqL2xQdqLMS3yCd6fcHzxEqKOUaFYocA
1
2
3

[10] NXPowerLite:文档压缩工具,破解版下载:https://macked.app/nxpowerlite-desktop.html (opens new window)

# 4.3.4 娱乐资源类

[1] lina:一个轻量级视频播放器,开源地址:https://github.com/iina/iina (opens new window)(用来替代PotPlayer)

[2] koodo-reader:电子书阅读器,开源地址:https://github.com/troyeguo/koodo-reader (opens new window)

koodo-reader

[3] YesPlayMusic:高颜值的第三方网易云播放器,支持 Windows / macOS / Linux,开源地址:https://github.com/qier222/YesPlayMusic (opens new window)

$ sudo xattr -rd com.apple.quarantine /Applications/YesPlayMusic.app
1

[4] lx-music-desktop:一个基于 Electron + Vue 开发的免费听歌软件,开源地址:https://github.com/lyswhut/lx-music-desktop (opens new window)

$ sudo xattr -rd com.apple.quarantine /Applications/lx-music-desktop.app
1

注:本项目支持在Windows、 Mac OS、 Linux、 Android平台上运行,不计划支持IOS。

lx-music-desktop

另注:洛雪音乐助手由于收到腾讯投诉要求停止提供软件内置连接到他们平台的服务,且原先软件里内置的音乐源全都失效了,v2.6.0之后版本不再内置音乐源,以下是从Github issues里找的音乐源。

https://wwp.lanzouq.com/b02fq9w8d
密码:lxmusic
1
2

# 5. Apple与iOS相关问题

# 5.1 注册美区Apple ID

有些软件在国区没有(比如小火箭、圈X),我们可以去美区商店里下载。下面是关于如何注册美区Apple ID并将其激活,以及如何使用礼品卡购买美区App Store里的收费软件的教程。

[1] 使用代理:打开SSR翻墙软件,选择一个美国节点,将代理规则更改为“全局代理”(注册和激活全程要使用代理)

[2] 注册美区Apple ID:打开 appleid.apple.com (opens new window)——创建您的Apple ID——填写个人信息(注意“国家和地区”选择美国,“电话号码”使用Temporary SMS and Disposable Numbers (opens new window)获取一个虚拟的美国电话号码)——邮箱验证和电话号码验证(电话号码的验证码由上述的那个网站获得)——注册成功后再登录美区Apple ID把“受信任的电话号码”换成自己的国内手机号

[3] 激活美区Apple ID:打开手机的App Store,输入刚刚注册好的美区Apple ID,会提示this apple id has not yet been used in the itunes store(此Apple ID尚未在iTunes商店中使用),点击 Review——借助美国虚拟个人信息生成 (opens new window)填写信息(Street是街道的意思,Zip是邮编的意思,尤其注意要选择一个免税区的州:Alaska、Delaware、Montana、New Hampshire、Oregon否则购买App时会收税)

[4] 去淘宝购买美区gift card(可叠加使用,价格基本上就是中美汇率)——打开美区App Store点击Redeem Gift Card or Code将买到的卡密信息输入进去即可充值成功

# 5.2 App Store退款

退款期限:自购买日90天内

退款方法:

  • 方法一:打开 https://reportaproblem.apple.com/?s=6 (opens new window) 网址——报告问题——选择退款原因,提交审核

  • 方法二:设置”——最顶上个人信息那栏——“iTunes Store 与 App Store”——点击Apple ID并选择“查看Apple ID”选项,使用Apple ID登录——购买记录——找到欲退款的APP,先点“账单总额”跳转,再点价格跳转——报告问题——选择退款原因,提交审核

# 5.3 苹果商店教育优惠身份认证

[1] 复制下方链接到浏览器打开苹果官网教育验证页面,进入后什么都不要点。 https://6jd.de/edu-shop (opens new window)

[2] 在第1步浏览器验证页面复制下方unidays资格激活链接打开,出现验证成功,点击蓝色继续按钮,即可直接进入教育专区下单。 https://6jd.de/edu-unidays (opens new window)

苹果商店教育优惠身份认证

注意: 1.结算时登录自己 Apple ID 或者访客模式都可以 2.支付提醒交易失败重新下单换支付方式 3.付款后看到需要验证也不用理会,除非收到审核邮件 4.不要选自提,线下有可能再人工审核

# 5.4 官方核验设备序列号

Mac:

iPhone:

# 5.5 开启并使用快捷指令

更改快捷指令设置

  • 报错描述:快捷指令无法打开,因为您的“快捷指令”安全性设置不允许不受信任的快捷指令。

  • 解决办法:设置–快捷指令–共享安全性–允许不受信任的快捷指令(如果设置里没有“共享安全性–允许不受信任的快捷指令”选项,需要自己先手动随便创建一个快捷指令并使用,再点开就有了)

捷径社区及自定义快捷指令

# 5.6 在移动端 Safari 上运行 js 脚本

需求情景:在PC端的Chrome有Tempermonkey插件运行大量js脚本去增强功能,而移动端的Chrome却无法安装插件与脚本。

前提条件:IOS 15 / iPad OS 15,Safari浏览器,Userscripts插件

操作步骤:下载Userscripts插件并设置脚本目录——开启Safari浏览器扩展——安装脚本

  • Step1:去 App Store 下载 Userscripts 插件,打开插件设置脚本目录

  • Step2:设置——Safari浏览器——扩展——打开Userscripts

  • Step3:将 js 脚本放置到之前设置的脚本目录,打开 Safari 浏览器即可使用脚本增强的功能。

userscripts插件

# 5.7 iOS系统问题

# 5.7.1 屏幕异常无法显示画面

情景描述:一觉醒来发现iPhone突然就什么都不显示了,但是使用截屏快捷键有声音,说明手机是处于开机状态,功能也是好使的,只是屏幕不亮(是一点儿都看不到,不是最低亮度的那个暗亮度),怀疑是系统故障或者屏幕故障。

解决方法:强制重启系统解决了问题,我的这个是系统故障导致的。

  • 按下并快速松开调高音量按钮,按下并快速松开调低音量按钮,然后按住侧边按钮,当 Apple 标志出现时,松开按钮。(适用于iPhone X、iPhone XS、iPhone XR 或者任何 iPhone 11、iPhone 12 或 iPhone 13 机型)

# 5.7.2 来电时自动告知对方正在通话中

情景描述:别人给我打电话时,会自动挂断并虚假告知对方正在通话中,其实是我不知何时不小心开了勿扰模式导致的。

解决方法:去设置里把勿扰模式关掉即可。

# 5.8 使用TrollStore免越狱安装ipa应用

# 5.8.1 TrollStore简介

TrollStore 是一个永久签名的非越狱 App。通过它,我们可以安装任意未签名的 IPA 文件。

它基于一个存在于 iOS 14.0 -- iOS 15.4.1 当中的 AMFI/CoreTrust 漏洞:iOS 不验证用于签署二进制文件的根证书是否合法。因此,如果你的IOS设备系统版本在这个范围内,则可以安装 TrollStore,而不论是否越狱。

项目地址:https://github.com/opa334/TrollStore (opens new window)

# 5.8.2 TrollStore支持的IOS版本

下表于2023.2.11摘自官方说明,如果发生变更,以最新的官方说明为准。

版本/设备 arm64 (A8 - A11) arm64e (A12 - A15, M1)
13.7及以下 不支持(CT Bug 仅在 14.0 中引入) 不支持(CT Bug 仅在 14.0 中引入)
14.0 - 14.8.1 checkra1n + TrollHelper (opens new window) TrollHelperOTA (arm64e) (opens new window)
15.0 - 15.4.1 TrollHelperOTA (iOS 15+) (opens new window) TrollHelperOTA (iOS 15+) (opens new window)
15.5 测试版 1 - 4 TrollHelperOTA (iOS 15+) (opens new window) TrollHelperOTA (iOS 15+) (opens new window)
15.5 (RC) 不支持(已修复 CT 错误) 不支持(已修复 CT 错误)
15.6 测试版 1 - 5 SSH 虚拟磁盘 (opens new window) TrollHelperOTA (arm64e) (opens new window)
15.6(RC1/2)及以上 不支持(已修复 CT 错误) 不支持(已修复 CT 错误)

注:TrollStore 永远不会支持这里列出的版本以外的任何版本,不要费心去问,如果有一个不受支持的版本的设备,最好忘记 TrollStore 的存在。

# 5.8.3 安装TrollStore

在“TrollStore支持的IOS版本”表格里,点击即可跳转相应的安装教程。我的设备是A12芯片,系统版本是15.4.1,安装教程如下:

  • 在设备上,跳转到以下链接: https://api.jailbreaks.app/troll (opens new window),出现警报,点击“安装”。
  • 安装完成后,会在设备上找到一个“GTA Car Tracker”应用程序。如果这个应用程序没有出现,重新设备就会出现。
  • 启动“GTA Car Tracker”应用程序,点击“安装 TrollStore”,等待几秒钟,设备应该会重新启动并且 TrollStore 将被安装。
  • 现在可以删除“GTA Car Tracker”应用程序,或者通过打开它并点击底部的选项将其注册为持久性助手,如果选择持久化,请不要删除该应用程序。
  • 打开 TrollStore 应用程序并在“设置”选项卡中按“安装 ldid”,然后阅读“持久性”下的信息,如果需要持久性,则将持久性助手安装到系统应用程序中。
  • 完成后,现在可以与 TrollStore 共享 IPA 文件,它们将永久安装在您的设备上。(支持IPA文件及IPA URL地址两种安装方式)。

# 5.8.4 IPA应用资源下载

可以通过以下等资源站,下载IPA应用资源。

# 5.9 iOS系统解压ZIP文件

将压缩包保存到系统自带的“文件”APP,轻点一下该ZIP文件,即可自动解压。

# 5.10 安装苹果企业开发者账号制作的ipa应用

情景描述:苹果企业级开发者账号制作了ipa应用,使用爱思助手将应用安装到iOS设备上,打开会提示“未受信任的企业级开发者”。

解决方法:设置——通用——VPN与设备管理——信任

# 6. 参考资料

[1] 软件打不开“XXX”,因为它来自身份不明的开发者怎么处理 from 知乎 (opens new window)

[2] awesome-macos-command-line from Github (opens new window)

[3] Shell 脚本修改 Mac IP地址 from xinpure (opens new window)

[4] MacOS配置网络命令 from 博客园 (opens new window)

[5] 确定您的 Mac 使用的是哪个 macOS 版本 from Apple支持 (opens new window)

[6] 在 Mac 上快速输入 ⌘、⌥、⇧ 等特殊字符 from 少数派 (opens new window)

[7] 如何在 Mac 上录制屏幕 from Apple支持 (opens new window)

[8] Homebrew软件包管理器 from brew官网 (opens new window)

[9] Mac系统安装JDK1.8及环境变量配置 from 简书 (opens new window)

[10] MAC 安装 Maven from wangxin1248 (opens new window)

[11] Mac OS 下 NVM 的安装与使用 from segmentfault (opens new window)

[12] Mac如何卸载系统自带软件 from 稀土掘金 (opens new window)

[13] Mac中git ssh的配置(GitLab) from CSDN (opens new window)

[14] mac10.15.4桌面壁纸与登录窗口壁纸不一致 from Apple 支持 (opens new window)

[15] 各系统间换行符不同引起的无法执行shell脚本,提示no such file || directory from CSDN (opens new window)

[16] 解决Unix-like、Windows系统之间文本换行符不同的问题 from 崔叔隐世记 (opens new window)

[17] dos2unix 在 mac 上批量转换 from CSDN (opens new window)

[18] IntelliJ IDEA2022.1 永久激活2021.3 免添加配置 一键激活 破解教程 附带下载工具 from ITZOO (opens new window)

[19] Mac Finder 默认显示形式 from ZRJ (opens new window)

[20] Mac登录密码正确,钥匙串密码一直错误 from 简书 (opens new window)

[21] 如何更改 Mac 文件的默认打开方式 from CSDN (opens new window)

[22] mac ntfs fstab 原生 写入 OSX 死机 from CSDN (opens new window)

[23] 将外置硬盘转换为 APFS 格式 from 闪迪 (opens new window)

[24] APFS、Mac OS 扩展、ExFAT格式有何区别 from 暴风雨前夕 (opens new window)

[25] vim中delete(backspace)键不能向左删除 from 博客园 (opens new window)

[26] 如何让Mac右键菜单的「使用Google搜索」选项调用chrome而不是safari? from 知乎 (opens new window)

[27] [MAC各类右键菜单修改]Automator WorkFlow: 扩展右键菜单 from CSDN (opens new window)

[28] MacBook macOS怎样开启自定义HiDPI高分辨率教程 from 百度知道 (opens new window)

[29] 精选120条实用捷径 from 知乎 (opens new window)

[30] 针对从 Apple 购买的 App 或内容申请退款 from Apple支持 (opens new window)

[31] App Store中的付费应用支持退购,有期限限制 from 完美下载 (opens new window)

[32] 5分钟注册美国区Apple ID(2020.5测试有效) from 知乎 (opens new window)

[33] 注册美区 Apple ID 教程 from Github (opens new window)

[34] 解决M1芯片下自制苹果无法安装应用的问题 from 胡萝虎博客 (opens new window)

[35] 无法在 M1 MacBook Air 上安装 MarkText 0.17.0rc2-arm64 from GitHub issues (opens new window)

[36] 查找有关保修或 AppleCare 计划的信息 from Apple支持 (opens new window)

[37] 在 Mac 上抹掉所有内容和设置 from Apple支持 (opens new window)

[38] 5 种方法教你重置 Mac 用户登录密码 | 一日一技 · Mac from 少数派 (opens new window)

[39] 苹果手机屏幕不亮但有声音是怎么回事?from 知乎 (opens new window)

[40] 强制重新启动 iPhone from Apple支持 (opens new window)

[41] Mac os 使用brew install 安装工具时报错 fatal: not in a git directory Error: Command failed with exit 128: git from CSDN (opens new window)

[42] 在 Finder 的右键菜单中添加「Open in VSCode」from 始终 (opens new window)

[43] Bartender 4.2.21 一款实用的菜单栏管理工具 from xclient (opens new window)

[44] Parallels Desktop for mac Crack from Github (opens new window)

[45] macbook air m1安装win10虚拟机 from 知乎 (opens new window)

[46] 2022最新Apple M1/Mac M1 配置安装Tensorflow环境方法 from 知乎 (opens new window)

[47] Mac系统自带的批量重命名功能,好用到飞起 from 知乎 (opens new window)

[48] 在 macOS 上使用 TouchID 验证 sudo from Digitaino IT (opens new window)

[49] macOS 升级到 13 后无法使用系统翻译 from Github Issues (opens new window)

[50] Macos中如何语音朗读文字 from Recording (opens new window)

[51] Mac远程连接Windows服务器教程 from 小猫科技 (opens new window)

[52] Mac使用Microsoft-Remote-Desktop远程桌面控制Windows from 柠檬社群 (opens new window)

[53] macOS ventura 13 卡顿 from Apple支持 (opens new window)

[54] 如何解决 macOS 13 系统频繁出现卡死问题 from Shiiko's Blog (opens new window)

[55] TrollStore 及常用 IPA 官方下载 from 始终 (opens new window)

[56] 苹果ipa软件资源 配合TrollStore更佳 from ahhhhfs (opens new window)

[57] MacOS M1(Apple Silicon) 安装配置 Conda 环境 from 知乎 (opens new window)

[58] mac下安装go开发环境 from xx's blog (opens new window)

[59] Mac 每次都要执行source ~/.bash_profile 配置的环境变量才生效 from CSDN (opens new window)

[60] 禁止Conda默认进入base环境 from Github issues (opens new window)

[61] Mac Monterey下安装Python2 from 依我愚见+ (opens new window)

[62] “Axure RP 9”已损坏,无法打开。您应该将它移到废纸篓 from 知乎 (opens new window)

[63] Mac下安装软件 报错No such file or directory @ rb_sysopen - monterey.bottle.tar.gz from 知乎 (opens new window)

[64] 2023 年 macOS 版微信如何使用默认浏览器打开网页链接 from Another Dayu (opens new window)

[65] IDEA出现问题:.properties文件中文乱码解决方案 from 51CTO (opens new window)

[66] mac 系统自定义命令,定制脚本入门 from CSDN (opens new window)

[67] macOS自带的免费文字转语音功能,只需两行代码 from CSDN (opens new window)

[68] 玩转屏幕录制软件Screenflow教程(二):基本剪辑 from 简书 (opens new window)

[69] Accelerated PyTorch training on Mac from Apple developer (opens new window)

[70] Python包管理工具之poetry from 阿里云 (opens new window)

[71] 如何下载和安装 macOS from Apple支持 (opens new window)

[72] 创建可引导的 macOS 安装器 from Apple支持 (opens new window)

[73] 在 Mac 上使用多个 macOS 版本 from Apple支持 (opens new window)

[74] nvm ls-remote command results in "N/A" from stackoverflow (opens new window)

[75] 在 M1 Mac 上安装 ARM 架构 Windows 虚拟机 from 米米的博客 (opens new window)

[76] A Windows and Office activator using HWID / Ohook / KMS38 / Online KMS activation methods from Github (opens new window)

[77] How to read and write files in NTFS disks and manage NTFS disks on Mac with Apple Silicon M1 from Omi NTFS官方文档 (opens new window)

[78] lx-music-desktop自己收集的几个可用源 from Github issues (opens new window)

[79] Mac版 OpenVPN连接超时 from 瓜瓜 (opens new window)

[80] Mac电脑遇到DNS解析失败,ip可以访问,域名无法访问 from CSDN (opens new window)

Last Updated: 11/12/2024, 9:32:50 AM