macOS 的 iTunes 根本没办法下载 App,这次将以把 X 降级回 Twitter 为示例,示范一下如何下载旧的 App 并安装到手机中。
必备条件
- Windows,可以是虚拟机,可以是 ARM 版本
- iTunes 12.6.5 64bit,下载地址
- Charles Proxy,官网下载,免费试用就够用了,也可以用其他抓包应用,如 Fiddler、Wireshark 等
教程
首先,先安装 iTunes 到 Windows 当中,我在 Windows 11 ARM 64 版本会遇到错误信息,但不影响操作,直接按忽略跳过就好了。
▼ 打开 iTunes,点击菜单,按编辑,把 Apps 的选项打开,再切换过去 Apps
▼ 接着登入 iCloud / iTunes 账号,然后查找你要降级的 App。找到 App 之后,iTunes 先停在这个画面就好。
▼ 接下来我们安装 Charles,安装完毕进入,选择「Help」→ 「SSL Proxying」→ 「Install Charles Root Certificate」
▼ 之后在跳出的窗口按安装,选择目前用户,在下一个步骤要按下方图片的方式选择「Trusted Root Certification Authorities」〔可能需要自己对照一下中文叫什么〕,之后就一路「下一步」安装证书即可
回到 iTunes,按下载 App,这时候 Charles 左边会出现一个「pxx-buy.itunes.apple.com」的记录,xx 的数字每个人会不一样。
▼ 按右键对「pxx-buy.itunes.apple.com」选择「Enable SSL Proxying」跟「Breakpoints」
之后,回到 iTunes,选择 App 本地的资源库,把刚刚下载的 App 删除,并选择丢到垃圾桶,然后再重新下载一次 App
▼ 这时候 Charles 会跳出一个窗口,上面选择「Edit Request」,下面选择「Text」就会看到我们发出去的下载请求,这边有个「appExtVrsId」就是版本号,我们稍后会需要修改这个版本号指定下载旧版。不过因为目前我们还不知道旧版的号码是什么,所以这边就先不管他,按「Execute」继续运行。
▼ 接下来 Charles 又会再跳一次窗口,上面选择「Edit Response」,下面选择「Text」就会看到服务器传回来的回应,这边有一个「softwareVersionExternalIdentifiers」就是各个版本的代号,越下面的数字越新,所以通常我们就是回推一下要降级的版本是倒数第几个号码就行了。
以最后一版图标还是鸟的 Twitter 来说,版本是 9.67,对应数字是「858502327」,这边先把数字记下来就好,然后 Charles 就继续一直按「Execute」,直到 App 下载回本地,我们再去数据库里面删除。
▼ 再来我们要第三次下载 App,这一次在 Charles 第一次跳窗口的时候,带入我们要的数字进去,改好之后一路 Execute 到底,让 iTunes 去下载 App
▼ 下载完之后你会发现怎么图标还是「X」,这是因为 iTunes 会去抓最新版本的图标,但若查看信息的话,会看到确实下载的版本是 9.67 版
▼ [非必须步骤] 因为 IPA 文件其实都是 zip 压缩文件,所以可以用编辑 zip 的软件打开,例如我用 BetterZip。然后把 iTunesMetadata.plist 删除,再储存整个 IPA,这样当这个 IPA 安装到手机上的时候,App Store 不会跳出关于这个 App 的更新,也就是说可以不必担心误触更新把旧版 App 洗掉了!
IPA 安装方式
用 iMazing,接上手机之后选择「Manage Apps」,然后把 IPA 文件拖进去里面就好了