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

Alamofire访问Symfony本地开发服务器自签SSL报错如何解决?

错误成因

你收到的报错核心是对象生命周期问题:你将自定义的Session实例定义为发起请求所在作用域的局部变量,ARC(自动引用计数)会在当前作用域的同步代码执行完成后直接回收这个Session对象。而网络请求是异步执行的,在服务器响应返回前Session就已经被释放,所以触发了无效化提示。这个错误和你配置的自签名证书信任逻辑无关。

解决方案

  • 首先将自定义的Session实例升级为当前使用类的存储属性,保证请求完成前Session不会被回收,示例代码如下:
// 示例:在你的ViewController或者网络工具类中定义为全局属性
private let afSession: Session = {
    let manager = ServerTrustManager(evaluators: ["192.168.2.9": DisabledEvaluator()])
    return Session(serverTrustManager: manager)
}()

// 发起请求的逻辑中直接调用持有的实例
func fetchTableData() {
    afSession.request("https://192.168.2.9:8000/api/tables/1", method: .get)
        .responseDecodable(of: Table.self) { response in
            // 你的响应处理逻辑
        }
}
  • 完成上述修改后如果仍遇到SSL校验问题,可确认项目的App Transport Security(ATS)配置:在Info.plist中添加针对192.168.2.9的访问例外,或临时开启NSAllowsArbitraryLoads(仅建议开发阶段使用)。
  • 你当前的自签名证书忽略配置本身是正确的,ServerTrustManager的evaluators键只需填写IP/域名,不需要携带端口号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:36:03