文章目录
-
- 前言
- 环境说明
- 问题描述
- 解决方案
-
- 第一步:下载安装
- 第二步:配置 API Key
- 第三步:启动服务
- 第四步:配置 Xcode
- 后台服务管理(可选)
- 配置项说明
- 常见问题
- 技术实现简要说明
- 总结
- 总结
在 Xcode 26.3 中配置智谱 Bigmodel 作为外部模型提供者后,对话时报错 The data couldn't be read because it is missing。原因是智谱 API 响应格式与 Xcode 期望的 Claude API 格式不完全兼容。本文提供一个本地服务的解决方案,在 Xcode 和智谱 API 之间做协议转发,彻底解决这个问题。
- 操作系统:macOS
- Xcode:26.3
- 智谱 Coding Plan(需在 open.bigmodel.cn 购买)
- 项目语言:Rust(预编译二进制可直接下载,无需安装 Rust 环境)
在 Xcode Settings 中添加智谱 Bigmodel 作为 Internet Hosted 模型提供者:
配置本身就可能验证失败:
即使配置通过,发起对话时也会报错:
The data couldn't be read because it is missing. Unable to decode as APIErrorResponse.
原因 :Xcode 内置的是 Claude API 客户端,对响应格式的要求非常严格。直连智谱 /api/anthropic 端点时,返回的响应格式不完全符合 Xcode 的预期,导致解码失败。而智谱的 /api/coding/paas/v4 端点提供了 OpenAI 兼容的 API 格式,与 Xcode 的解析器能够正常配合------需要通过程序做协议适配来接入这个端点。
/api/coding/paas/v4
第一步:下载安装
从 GitHub Releases 下载 macOS 二进制(约 6MB):
chmod +x glm_coding_xcode_proxy
sudo mv glm_coding_xcode_proxy /usr/local/bin/
或从源码编译:
git clone https://github.com/cicbyte/glm-coding-xcode-proxy.git
cd glm-coding-xcode-proxy cargo build –release sudo cp target/release/glm_coding_xcode_proxy /usr/local/bin/
第二步:配置 API Key
glm_coding_xcode_proxy config set KEY your-api-key-here
也可以直接运行程序,未检测到 API Key 时会交互式引导输入。
第三步:启动服务
# 默认监听 127.0.0.1:8890
glm_coding_xcode_proxy
指定端口
glm_coding_xcode_proxy –port 9090
启动成功后会显示:
🚀 Xcode AI 服务已启动
📡 监听地址: http://127.0.0.1:8890 ⚙️ 重试配置: 最大重试次数: 3 重试延迟: 1000ms (递增) 请求超时: 60000ms
第四步:配置 Xcode
- 打开 Xcode → Settings → Components → Model Providers
- 删除之前配置的智谱 Internet Hosted 提供者(如果有的话)
- 点击 "+" 添加 Locally Hosted 提供者
- 端口填写 8890
配置完成后即可正常对话:
如果不想每次手动启动,可以注册为 macOS 系统服务:
# 安装并启动(自动配置 KeepAlive 保活)
glm_coding_xcode_proxy service install
查看状态
glm_coding_xcode_proxy service status
停止
glm_coding_xcode_proxy service stop
卸载
glm_coding_xcode_proxy service uninstall
日志输出到 ~/Library/Logs/glm-coding-xcode-proxy/,方便排查问题。
KEY 智谱 API Key(必需) 无
HOST 监听地址
127.0.0.1
PORT 监听端口
8890
MAX_RETRIES 最大重试次数
3
RETRY_DELAY 重试基础延迟(ms)
1000
REQUEST_TIMEOUT 请求超时(ms)
60000
# 查看所有配置(API Key 脱敏显示)
glm_coding_xcode_proxy config list
修改配置
glm_coding_xcode_proxy config set MAX_RETRIES 5 glm_coding_xcode_proxy config set REQUEST_TIMEOUT
修改配置后需重启服务
glm_coding_xcode_proxy service stop && glm_coding_xcode_proxy service start
Q: 首次运行二进制被 macOS 拦截怎么办?
A: 系统设置 → 隐私与安全性 → 点击"仍要打开"。然后在 系统设置 → 通用 → 登录项与扩展 → 后台活动 中找到 glm_coding-xcode-proxy,点击"允许"。
Q: 端口 8890 被占用怎么办?
A: 使用 --port 参数指定其他端口:
glm_coding_xcode_proxy --port 9090
或在配置文件中设置:
glm_coding_xcode_proxy config set PORT 9090
Q: 如何验证是否正常工作?
A: 直接 curl 测试:
# 测试模型列表
curl http://localhost:8890/v1/models
测试对话
curl http://localhost:8890/v1/chat/completions -H "Content-Type: application/json" -d ‘{
"model": "glm-5", "messages": [{"role": "user", "content": "你好"}], "stream": false
}’
Q: 支持哪些模型?
A: 目前仅支持智谱 GLM Coding Plan,需要有效的智谱 API Key。
- 协议适配 :切换到智谱
/api/coding/paas/v4端点,注入 API Key 认证,处理请求格式的对接 - 流式透传 :流式场景下直接透传 SSE 字节流,设置正确的
Content-Type头 - 异步重试:线性递增延迟策略(1s, 2s, 3s),对上游 API 临时故障自动重试
- 统一错误处理:将网络超时、上游 500 等异常统一转化为 Xcode 可解析的 JSON 错误响应
核心代码不到 500 行,实测二进制约 6MB,内存常驻 5.6MB。
Xcode 直连智谱 GLM Coding Plan 会因响应格式不兼容导致对话失败,通过本地服务转发请求即可解决。整个过程只需下载二进制、配置 API Key、启动、修改 Xcode 配置四步。
完整源码:github.com/cicbyte/glm-coding-xcode-proxy(MIT License)
B。
Xcode 直连智谱 GLM Coding Plan 会因响应格式不兼容导致对话失败,通过本地服务转发请求即可解决。整个过程只需下载二进制、配置 API Key、启动、修改 Xcode 配置四步。
完整源码:github.com/cicbyte/glm-coding-xcode-proxy(MIT License)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/252477.html