我这次换 Mac,真正让我卡住的不是文件,也不是 App,而是 Codex 和 ChatGPT 手机远程控制这套绑定关系。
事情其实很普通。我从一台 老MacBook Air 迁到新的 MacBook Pro,用的是 Apple 自带的迁移助理。这个工具本身很好用,文稿、App、用户账号、系统设置,基本都能带过去。
问题出在一个我之前没认真想过的地方,AI 工具现在已经不是一个单纯的软件了。
Codex App 会绑定本机,ChatGPT 手机端可以通过远程连接控制这台 Mac。它会用这台机器上的项目、线程、文件、凭据、插件、浏览器环境和本地工具。你换机器的时候,如果旧机器还没退场,新机器又把旧机器的用户资料和缓存搬过来,设备名、host、登录状态、远程授权就很容易混在一起。
如果你最近准备从 MacBook Air 换到 MacBook Pro,或者从笔记本换到 Mac mini、Mac Studio,下面这份清单可以直接照着用。
先说最短结论
换机前我会先做这六件事
• 两台 Mac 都先更新系统,至少不要跨太多版本。
• 做一次 Time Machine 或外置硬盘备份,别把迁移助理当唯一保险。
• 确认 iCloud Drive、桌面、文稿、照片这些云端同步已经完成。
• 旧 Mac 上先解除 Codex 远程控制(其他类似软件自行判断),再退出 Codex 登录。
• 记录新旧 Mac 的设备名称和序列号,迁移后用序列号判断谁是谁。
• 新 Mac 跑稳一两天,再去抹旧 Mac。不要迁完一看能开机就马上卖。
很多人换机最容易犯的错,是把旧电脑当成一个硬盘。东西搬完就觉得它没用了。
但对现在这些 AI 编程工具来说,旧电脑可能还是一个 host。手机端、浏览器、CLI、桌面权限、钥匙串、插件目录,都可能还跟它有关系。
Apple 迁移助理怎么用
Apple 官方给 Mac 之间迁移的首选方案,就是迁移助理。它可以传输文稿、App、用户账号和设置。官方也写得很清楚,这个过程不会删除旧 Mac 上的信息,也不会替换新 Mac 的 macOS。

如果新 Mac 还在第一次开机设置流程里,系统会直接给你迁移入口。
如果你已经进桌面了,也没关系。打开应用程序里的实用工具,找到迁移助理。或者从系统设置里的通用、传输或还原进去。它会要求你输入管理员密码。
新 Mac 选从 Mac、Time Machine 或启动磁盘迁移。旧 Mac 打开迁移助理以后,选传输到另一台 Mac。

两台机器靠近一点,Wi-Fi 打开,最好都接电源。迁移期间先把防火墙、杀毒软件这类东西关掉。不是说它们一定会出事,而是迁移过程本来就够长,少一个变量是一个变量。
如果旧 Mac 上出现安全代码,就和新 Mac 上显示的代码对一下,一样再继续。

选择迁移内容时,我会这样取舍
• Applications 一般勾上,开发环境和 AI 工具少重装很多东西。
• User accounts 通常勾主账号,桌面、下载、文稿、图片这些都在里面。
• Other Files & Folders 看你有没有自建目录,比如单独放项目、资料、视频的文件夹。
• Privacy & Security Settings 可以勾,但迁完以后还是要重新检查屏幕录制、辅助功能、文件访问这些权限。
• System & Network 可以勾,但迁完以后记得改新机器名称。很多设备列表会沿用旧 Mac 名字。
最后这点很容易被忽略。你迁完以后,新的 MacBook Pro 可能还叫 MacBook Air。系统显示旧名字,不一定代表设备真错了。先看序列号,别只看名字。
iCloud 这块别手贱
换 Mac 的时候,iCloud 是另一个容易让人误会的地方。
如果你开了 iCloud Drive 的桌面和文稿同步,桌面、文稿里的文件会在同一个 Apple 账号下同步。你在一台设备上删除,其他设备也会跟着删除。


所以处理旧 Mac 之前,别在 Finder 里为了干净,把桌面、文稿、iCloud Drive 里的东西一顿删。你以为是在清旧机器,结果可能是在删所有设备上的云端文件。
正确做法是,确认新 Mac 验收没问题以后,用 Apple 的抹掉所有内容与设置。这个流程会清理本机内容,退出 Apple 服务,关闭查找和激活锁,也不会影响其他 Apple 设备上的内容。


真正容易被忽略的是 Codex(至少目前我只发现这个)
如果你不用 Codex,前面那些基本就够了。
但如果你像我一样,把 Codex 当成日常工作工具,还用 ChatGPT 手机端远程看任务、批命令、接着跑线程,那换机前就要多做一步。
OpenAI 官方把这类能力叫 Remote connections。简单讲,手机或另一台设备可以连接到一台 Codex host。这个 host 提供项目、线程、文件、凭据、权限、插件、Computer Use、浏览器设置和本地工具。

这句话你仔细想一下就知道问题在哪。
手机不是在控制一个抽象账号,它是在控制一台具体的电脑。那台电脑上有什么项目、什么工具、什么登录状态,手机端就能用什么。
我之前的问题就是,旧 MacBook Air 还没完全退出,新 MacBook Pro 又通过迁移拿到了旧环境的一部分状态。新机器上有时候还显示旧 Air 的名字,Codex 和 ChatGPT 的连接关系也变得别扭。
迁移前,先让旧 Mac 从 Codex 里退场
如果让我重新来一次,我会在旧 Mac 上先这样做。
旧 Mac 上的 Codex 处理顺序
• 打开旧 Mac 的 Codex App。
• 进入 Settings,再进 Connections。
• 在 Control this Mac 页面,对已经授权的 iPhone 或其他设备点 Revoke access。
• 关闭 Allow this Mac to be discovered and controlled。
• 退出 Codex App 账号。
• 如果你也用 Codex CLI,再执行 codex logout,或者在 CLI 里输入 /logout。

这一步的目的不是删东西,而是让旧 Mac 不再作为远程 host。
做完迁移以后,再在新 Mac 上打开 Codex App,从侧边栏的 Set up Codex mobile 发起绑定。手机扫码后会跳到 ChatGPT,确认是同一个账号、同一个 workspace,再完成 MFA、SSO 或 passkey。


如果你已经忘了解绑
我知道,很多人看到这里的时候,其实已经迁完了。
旧 Air 可能已经抹掉,新 Pro 也迁好了,手机里还残留着旧 host,新机器怎么扫都不顺。我当时就是这个状态。
这时候别急着把 ~/.codex 整个删掉,更不要上来清浏览器 cookie。先把问题缩小到 Codex 的 remote-control 后台。它负责手机和桌面之间那条连接,迁移以后最容易把旧会话状态一起带过来。
我当时看到的关键信号是这几个。
• app-server.stderr.log 里有 app_session_terminated、token_revoked。
• 还有一句很直白,Your session has ended. Please log in again.
• codex login status 仍然显示 ChatGPT 登录,不是整个账号没了。
• app-server.pid、app-server-updater.pid、各种 .lock 和 app-server-control.sock 还在,但对应的 remote-control 进程已经不稳定,甚至根本不在。
所以这不是「OpenAI 不让新机器绑定」这种结论。更像是迁移把旧 remote-control 会话一起搬过来了,新机器一直拿着一个已经失效的会话去刷新。
1. 先做判断,不要先动刀
终端里先跑这几条。Codex App 如果装在默认位置,就直接用下面这个路径。
如果你的机器上命令路径不一样,就先跑 which codex,再用你自己的 codex 路径执行 login status 和 doctor。
判断标准也很简单。日志里如果出现上面那些 token_revoked、session has ended,同时登录状态还在,WebSocket 检查也没明显坏掉,那就先别动账号,先处理 remote-control 的旧状态。
2. 只备份和清理 remote-control 的旧状态
下面这段是我会让自己的 Codex 照着执行的版本。它先备份,再删除,而且只碰 pid、lock、sock 这些后台状态文件。
这里一定要注意边界。
不要删 ~/.codex/auth.json。
不要把 auth.json 发给别人,也不要截进教程。
不要上来就 rm -rf ~/.codex。
不要全清 ChatGPT 或浏览器 cookie,除非前面这一步排完了还不行。
3. 再验证是不是干净了
清完以后不要立刻反复扫码,先看两个结果。
理想状态是,login status 还能看到 Logged in using ChatGPT,doctor 里认证是 configured,WebSocket 检查通过。这样至少说明账号本身还在,不是把登录弄丢了。
然后再观察一分钟,看日志是不是还在继续滚,auth.json 是不是一直被刷新。
如果这轮里 remote_control_process=none,日志时间不再更新,就重新打开 Codex Desktop,从侧边栏的 Set up Codex mobile 重新发起绑定。
如果到这里还是会自动掉登录,再考虑退出 Codex 登录后重新登录一次。公司账号、SSO、MFA、passkey 这类情况,也放到这一步再处理。我的经验是,别一开始就把账号层面全掀掉,很多时候只是旧的 remote-control 后台状态没清干净。
Computer Use 权限也要重新看
Codex 如果要看见或者操作 Mac 上的 App,会牵涉 Computer Use。OpenAI 的文档里写得很直接,macOS 上要给 Screen Recording 和 Accessibility 权限。

迁移助理可能会把一部分隐私设置带过去,但我不会完全相信它。尤其是 Screen Recording、Accessibility、Full Disk Access、浏览器扩展这几类权限,迁完以后最好手动点一遍。
如果你发现 Codex 能跑终端,但看不到桌面 App,或者手机端能看到线程却控制不了某个界面,很多时候不是账号坏了,是 macOS 权限没给完整。
不只是 Codex,很多工具都应该提前解绑
Codex 只是我这次最明显的坑。
现在很多软件都有设备数、授权机、密钥、远程控制、同步目录、浏览器扩展、本地凭据这些东西。换 Mac 前最好扫一遍。
我会重点看这些类型
• 需要设备授权的软件,比如设计、剪辑、开发、数据库客户端。
• 密码管理器和钥匙串,确认主密码、恢复码、二次验证方式都还在。
• GitHub、GitLab、SSH key、GPG key,确认新机能不能正常拉代码和签名。
• Docker、数据库、本地服务、MCP server,确认路径和端口没有因为迁移变乱。
• 远程桌面、手机控制、浏览器自动化、AI Agent 工具,确认旧 host 已经退出。
• 同步盘和云盘,确认同步完成,不要在旧机上手动删云端文件。
这听着有点麻烦,但比迁完以后到处找问题省时间。
最后给一张换机当天清单
可以直接照着做
• 旧 Mac 备份一次。
• 两台 Mac 更新系统。
• 确认 iCloud Drive、桌面、文稿、照片同步完成。
• 旧 Mac 的 Codex 远程控制 Revoke access。
• 旧 Mac 执行 codex logout,或者至少退出 Codex App 登录。
• 记录新旧 Mac 序列号。
• 新 Mac 用迁移助理选择 From a Mac, Time Machine, or startup disk。
• 旧 Mac 迁移助理选择 To another Mac。
• 确认安全代码一致。
• 选择要迁移的数据类别。
• 迁移完成后先验收资料、App、iCloud、Codex、浏览器、终端。
• 新 Mac 改名,Apple 设备列表按序列号确认身份。
• 从新 Mac 的 Codex App 重新 Set up Codex mobile。
• 确认新 Mac 跑稳,再抹旧 Mac。
资料我主要对照了 Apple Support 的迁移助理、iCloud Drive、抹掉 Mac 文档,以及 OpenAI Developers 的 Codex Remote connections、Authentication、Computer Use 文档。
如果你也准备换 Mac,建议先收藏一下。真到迁移那天,人很容易兴奋,然后就忘了退出一堆账号。
如果看不懂,复制下来放给codex让他自己看,自己学。当然,情况千奇百怪,不一定都一样,试着让codex自己解决吧。token 要备够,🐶。
夜雨聆风