2019-06-05

在 Mac Mojave 上安装带 App Store 的 iTunes 12.6

在 WWDC 2019 开发者大会上,Apple 终于让被吐槽过无数次的 iTunes 退出了舞台,用 Apple Music,Apple Podcasts 和 Apple TV 取代了它。虽然 iTunes 臃肿无比,但它目前还有一个有用的地方:以 IPA 格式下载 App 以方便实现备份和批量部署。

WWDC 2019

WWDC 2019 图片来源

在 iOS 设备上下载的 App 都经过 App Thinning,所以无法在同账号的其他 iOS 设备上安装,使用 iTunes 下载的 IPA 文件则可以在同账号的所有 iOS 设备上安装,用来备份管理 App 最完美不过。

在 Mac High Sierra 上,可以在此页面上下载对应的企业版 iTunes 12.6 并直接安装即可:https://support.apple.com/en-us/HT208079

在 Mac Mojave 上,在安装此版本 iTunes 时则会提示版本不兼容。不过 MacRumors 的网友 bogdanw 通过替换三次版本信息实现了在 Mojave 上安装并运行 iTunes 12.6,可以继续使用 iTunes 在 Mac Mojave 上访问 App Store 并管理 App。

1、禁用 SIP,重启 Mac,按住 Command + R,进入命令行后输入 csrutil disable 并重启。

2、在此页面上下载完 iTunes 12.6 后,在 Apple Script 里运行:

display dialog "Please select iTunes 12.6 dmg file" buttons {"Ok"}
set theDMG to choose file with prompt "Please select iTunes 12.6 dmg file:" of type {"dmg"}
do shell script "hdiutil mount " & quoted form of POSIX path of theDMG
do shell script "pkgutil --expand /Volumes/iTunes/Install\\ iTunes.pkg ~/tmp"
do shell script "sed -i '' 's/18A1/14F2511/g' ~/tmp/Distribution"
do shell script "sed -i '' 's/gt/lt/g' ~/tmp/Distribution"
do shell script "pkgutil --flatten ~/tmp ~/Desktop/iTunes.pkg"
do shell script "hdiutil unmount /Volumes/iTunes/"
do shell script "rm -rf ~/tmp"

set question to display dialog "Install iTtunes?" buttons {"Yes", "No"} default button 1
set answer to button returned of question
if answer is equal to "Yes" then
    do shell script "open ~/Desktop/iTunes.pkg"
    return
end if
if answer is equal to "No" then
    display dialog "Modified iTunes.pkg saved on desktop" buttons {"Ok"}
    return
end if

选择下载的安装文件,修改后的安装包即可在 Mojave 上正常安装。

3、安装完成后,在 Apple Script 里运行:

set theAPP to choose file with prompt "Please select iTunes 12.6 app:" of type {"app"}
do shell script "sed -i '' 's/12.6.5/12.9.4/g' " & POSIX path of theAPP & "Contents/Info.plist" with administrator privileges
set question to display dialog "iTunes was patched. Open iTunes?" buttons {"Yes", "No"} default button 1
set answer to button returned of question
if answer is equal to "Yes" then
    do shell script "open " & POSIX path of theAPP
    return
end if
if answer is equal to "No" then
    display dialog "Modified iTunes saved on " & (POSIX path of theAPP as text) buttons {"Ok"}
    return
end if

最后再启用 SIP 即可使用 iTunes 来下载和管理 App。目前尚不清楚 Apple 是否会在不久的将来完全停止使用 iTunes 下载和管理 App,趁现在将所有 App 的安装文件做一次备份也许是个不错的选择。


(End)


本文采用 知识共享 署名-非商业性使用-禁止演绎 4.0 国际 许可协议
This article is licensed under Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)

沪ICP备15044284号-1