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

如何读取应用包外本地JSON文件或通过Build Phases脚本将其加入包?

解决方案:处理构建脚本生成的JSON文件读取问题

一、将生成的JSON文件添加到应用包中(推荐方案)

这是最稳妥的做法,能让你现有的Swift代码直接正常工作,步骤如下:

  • 打开Xcode项目,切换到Build Phases标签页
  • 点击左上角的+,选择New Run Script Phase,把这个阶段挪到Compile Sources前面(保证脚本先生成文件,再被打包流程处理)
  • 在Run Script的输入框里写入你的.sh脚本执行命令,比如:
# 假设你的生成脚本在项目根目录下
./generate_client_token.sh
  • 接下来把生成的client_token_key.json加入打包资源:
    1. 在Build Phases里找到Copy Bundle Resources
    2. 点击+按钮,选中生成的JSON文件;如果文件是脚本动态生成在项目目录的,也可以直接把文件拖进项目,在文件属性的Target Membership里勾选你的主Target,同时确认Copy items if needed已勾选
    3. 或者也可以在Run Script之后加一个Copy Files阶段,把JSON文件复制到$(BUILT_PRODUCTS_DIR)/$(CONTENTS_FOLDER_PATH)目录,这样文件会被自动打包进应用包

完成后,你现有的Swift读取逻辑就能正常拿到文件了。

二、读取应用包外的JSON文件(仅适合调试场景)

iOS应用受沙盒限制,运行时只能访问自己的沙盒目录(Documents、Library、tmp等),构建脚本在电脑上生成的文件,安装到设备后根本访问不到。

如果是在模拟器运行,理论上可以硬编码电脑上的文件路径读取,但这种方式完全不能用于生产环境,真机上直接失效,所以不推荐这么做。

额外提示:如果脚本执行后文件没找到,可以在Run Script里加日志输出排查路径,比如:

./generate_client_token.sh
echo "Generated JSON path: $(pwd)/client_token_key.json"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 17:31:00