问题描述
在 MacOS 上,有时候我们需要使用脚本复制特定的应用。MacOS 会严格检验应用完整性, 因此在复制的时候需要特别注意参数。
Bash
使用 Bash 复制的时候需要注意,参数用 -R
而不是 -r
cp -R /Applications/XXX.app ./XXX.app
python
我们通常使用 shutil 来复制文件夹,注意 symlinks=True
。
shutil.copytree('/Applications/XXX.app', './XXX.app', symlinks=True)
总结
其实重点就在于 symlinks,在复制的时候需要把 symlinks 原原本本的复制过去, 否则 Mac 验证不通过就会导致应用无法启动。