如何配置Delphi将macOS部署的*.app/*.pkg文件导出至本地指定目录?
如何让Delphi将macOS构建产物输出到本地指定目录
可以通过两种方式实现,解决macOS构建产物留在PAServer scratch目录的问题:
方法一:构建后事件自动拉取文件
这是最常用的可靠方案,利用Delphi的构建后事件执行命令,将Mac端的.app和.pkg复制到本地目录。
1. 确认PAServer scratch目录路径
Mac端PAServer的默认scratch目录格式为:/Users/<Mac用户名>/Documents/Embarcadero/PAServer/scratch/<Windows用户名>/<项目名>/<构建配置>/
可直接在Mac端的PAServer界面查看Scratch Directory字段获取准确路径。
2. 配置Delphi构建后事件
- 打开项目,进入Project > Options > Building > Events
- 在Post-build event command line中填入
scp命令(替换占位符为实际信息):
示例(假设PAServer端口64211,MacIP 192.168.1.100,本地目录D:\MacBuilds):# 复制.app文件 scp -P <PAServer端口> <Mac用户名>@<MacIP>:"<Mac端scratch路径>/*.app" "<本地目标目录>" # 复制.pkg文件 scp -P <PAServer端口> <Mac用户名>@<MacIP>:"<Mac端scratch路径>/*.pkg" "<本地目标目录>"scp -P 64211 john@192.168.1.100:"/Users/john/Documents/Embarcadero/PAServer/scratch/admin/MyApp/Release/*.app" "D:\MacBuilds" scp -P 64211 john@192.168.1.100:"/Users/john/Documents/Embarcadero/PAServer/scratch/admin/MyApp/Release/*.pkg" "D:\MacBuilds" - 确保Windows端已安装OpenSSH客户端(Win10/11默认自带,可在「设置-应用-可选功能」确认)。
优化:用Delphi预定义宏简化配置
利用Delphi内置宏自动填充路径,避免手动修改:
$(PROJECT_NAME):项目名称$(CONFIG):当前构建配置(Release/Debug)$(PLATFORMSDK_MACOS_SCRATCH_DIR):Delphi识别的Mac scratch根目录(Delphi 10.4+支持)
修改后的命令示例:
scp -P 64211 john@192.168.1.100:"$(PLATFORMSDK_MACOS_SCRATCH_DIR)/$(PROJECT_NAME)/$(CONFIG)/*.app" "D:\MacBuilds" scp -P 64211 john@192.168.1.100:"$(PLATFORMSDK_MACOS_SCRATCH_DIR)/$(PROJECT_NAME)/$(CONFIG)/*.pkg" "D:\MacBuilds"
方法二:修改PAServer scratch目录到共享目录
直接让PAServer将产物输出到Mac端的共享目录,再通过Windows访问:
- 在Mac端创建共享目录(如
/Users/john/SharedBuilds),配置允许Windows访问的权限。 - 打开PAServer,进入Settings > Scratch Directory,替换为该共享目录路径。
- 在Windows端将Mac共享目录映射为网络驱动器(如Z:\),构建产物会直接出现在该驱动器下。
注意:需确保Mac和Windows在同一局域网,且共享权限正确;PAServer的临时文件清理机制可能会删除旧文件,建议定期备份。
额外提示
- Delphi 11+可尝试在Project > Options > Deployment中添加自定义部署步骤,直接将Mac端产物部署到本地。
- 先手动执行
scp命令验证复制正常,再配置到构建后事件中。
内容的提问来源于stack exchange,提问作者zeus
相关产品推荐
相关产品推荐

