【发布时间】:2018-11-11 20:27:15
【问题描述】:
我正在开发本机反应本机模块,我需要一个 JSON 资源文件。我无法弄清楚如何使这个文件可用于 iOS 端,以便在模块中进行单元测试或在为 react 本机应用程序提供服务时使用。
我一直在尝试将文件放入模块 ios 文件夹根级别的文件夹(Resources 或 SupportFiles 文件夹名称没有区别)。当我将它拖到 XCode (9.3.1) 项目导航器时,它被添加到模块的“测试”目标(乐高积木图标)中,位于 Build Phases --> Copy Bundle Resources 下。我还尝试将其添加到Build Phases --> Copy Files 下的真正模块构建目标(带有外观图标的目标)。
使用单元测试运行NSLog(@"%@", [[NSBundle mainBundle] bundlePath]); 我得到了一条路径:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Agents
我的文件和文件夹都不会传输到该路径。如果我手动将文件复制到那里,它会从我的代码中毫无问题地打开(从mainBundle 访问,但这不是一个可持续的解决方案。
我想知道资源文件是否只会在完整构建操作期间复制到目标?该模块为单元测试成功构建,但尚未定义完整构建,因为该模块不打算自行运行。我还尝试构建我的测试应用程序,该应用程序运行模块,但也无法在任何构建结果中找到该文件。
总而言之,这应该是微不足道的(在 Android 端也是如此)。我错过了什么?
【问题讨论】:
-
在没有真正解决方案的情况下,我将 2M 的 JSON 转换为字符串常量。不完全是我正在寻找的东西,但可以完成这项工作。如果有人知道如何捆绑它,我仍然更喜欢从资源文件中加载。
-
我也有同样的问题,有人有答案吗?如果我弄清楚了,我会在这里发布解决方案。我的资源文件是 xml 文件,但除此之外,这完全是我迄今为止尝试使用捆绑包但没有运气的问题。
标签: ios objective-c xcode react-native