You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi FMX Mac应用切换至Application Store配置后无法联网求助

排查Delphi Mac应用Application Store配置下联网失败问题的建议
  • 检查App Sandbox权限配置
    Application Store配置默认会启用App Sandbox,而Normal配置通常未开启。需在Delphi项目设置的macOS Sandbox选项中,确认已添加网络客户端(Network Client)权限——这是FTP、SMTP这类网络请求的必需权限。权限缺失会直接导致域名解析失败、网络连接被拦截,与你遇到的nodename nor servname provided错误完全匹配。

  • 验证域名解析与IP直连的差异
    尝试用IP地址代替域名测试FTP和SMTP连接:

    • 若IP直连正常,说明Sandbox环境下DNS解析被限制,需确认Network Client权限是否正确覆盖DNS请求(通常该权限包含此能力,但需检查Delphi配置是否同步生效)。
    • 若IP直连也失败,说明是Sandbox拦截了基础网络连接,重点排查权限配置是否被正确嵌入应用签名。
  • 用命令验证应用签名的权限
    执行codesign --display --entitlements - /path/to/your.app查看打包后App的权限声明,确认是否包含com.apple.security.network.client条目。如果缺失,说明Delphi部署过程中未正确将Sandbox权限写入签名,需检查项目设置中的entitlements文件是否生成正确,或Deploy步骤是否指定了正确的权限文件。

  • 测试基础网络连通性
    在Application Store配置的App中添加简单的HTTP测试逻辑(比如用TIdHTTP请求公开接口),判断是否是全局网络权限问题:

    • 若HTTP请求也失败,锁定为Sandbox网络权限配置错误;
    • 若HTTP正常,说明Indy的FTP/SMTP组件可能存在Sandbox适配问题,需检查组件版本或显式配置Socket参数。
  • 对比两种配置的Entitlements文件
    找到项目编译输出目录或macOS子文件夹下的entitlements文件,对比Normal与Store配置的内容差异。Store配置的文件应包含Sandbox相关权限声明,若缺失则手动添加后重新打包测试。

  • 升级Indy组件版本
    旧版本Indy对macOS Sandbox环境的支持可能存在缺陷,尝试升级到最新稳定版Indy,看是否能解决Sandbox下的网络连接、域名解析问题。

内容的提问来源于stack exchange,提问作者Rick Hollerich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 23:15:29