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

Swift中如何访问内部Framework中的JSON文件?

Swift内部Framework中访问JSON文件返回nil的解决方法

以下是几个排查和解决的关键点:

  • 确认文件已加入Framework构建目标
    打开Xcode,选中你的AVStream Framework目标,进入Build Phases标签,检查Copy Bundle Resources列表里是否包含RemoteVideos.json。如果没添加,点击+按钮把文件加进去,否则文件不会被打包到Framework的bundle中,必然获取不到URL。

  • 简化Bundle获取逻辑
    你当前的Bundle扩展存在冗余调用,直接通过标记类获取Framework的bundle更简洁可靠。修改后的扩展代码如下:

    // Bundle+Ext.swift
    // AVStream
    private final class AVStreamMarker { }
    
    extension Bundle {
        static var avstream: Bundle {
            Bundle(for: AVStreamMarker.self)
        }
    }
    

    用独立的标记类AVStreamMarker可以避免和项目中其他同名类产生冲突。

  • 核对文件名的准确性
    确保代码中使用的文件名和实际文件完全一致,包括大小写(比如不要把RemoteVideos写成remoteVideos)、扩展名(确认是json而不是JSON或其他拼写)。

  • 备选路径获取方式
    如果上述方法都无效,可以尝试先获取文件路径再转换为URL:

    guard let filePath = Bundle.avstream.path(forResource: "RemoteVideos", ofType: "json"),
          let fileUrl = URL(fileURLWithPath: filePath) else {
        return
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 18:06:17