有没有办法阻止OSX .pkg删除其他开发版本?该限制当前是否仍适用?
macOS .pkg 覆盖其他开发版本的限制现状与解决方案
截至2024年,苹果官方pkgbuild工具原生仍然不支持跳过覆盖已有版本的逻辑,8年前的限制至今没有官方层面的功能更新。
当年的原始结论:
pkgbuild does not support not overwriting the previous version at this time
你可以通过以下规避方案实现避免不同开发版本互相覆盖删除的需求:
- 为不同开发版本设置独立的Bundle ID,pkg安装时会识别为不同的应用,不会触发覆盖逻辑
- 差异化设置安装路径,例如正式版安装到
/Applications/MyApp.app,开发版安装到/Applications/MyApp_Dev.app,避免路径冲突导致的覆盖 - 在pkg包中添加自定义预处理脚本,检测到目标路径已有其他版本时,主动终止安装或者自动修改当前包的安装路径
- 开发测试阶段优先使用dmg格式分发版本,完全避开pkg的默认覆盖逻辑
内容的提问来源于stack exchange,提问作者jpfeifer
相关产品推荐
相关产品推荐

