React Native Module,找不到Cocoapod文件

时间:2019-12-02 21:00:38

标签: ios react-native cocoapods react-native-ios react-native-native-module

我正在为React Native构建一个模块,作为其中的一部分,cocoapod中包装了一些本地iOS代码。我的工作正常,可以安装cocoapod并从RN端查看本机类没有问题。一种本机类正在尝试获取子文件夹proj/Audio/file.mp3内的本地mp3文件的路径。使用以下ObjC代码:NSString *path = [[NSBundle mainBundle] pathForResource:@"file" ofType:@"mp3" inDirectory:@"Audio"];

这将返回nil,因此在尝试获取文件的NSURL时会导致错误。我将mp3扩展名添加到了podspec @ s.source_files = "ios/**/*.{h,m,swift,mp3}"中,因此它将文件移了过来。但是,我认为我必须丢失一些东西,因为它最终找不到文件。

我进入了源xcode项目,并在构建阶段将mp3文件添加到Copy files阶段。我还确保该文件已链接到目标。我不确定在这一点上我还能缺少什么,因为找不到它。

1 个答案:

答案 0 :(得分:0)

不要将mp3文件放在podspec的source_files中,而是尝试使用resource_bundles;请参阅文档here。基本上,您可以使用指定的资产来定义CocoaPods为您创建的资源包文件,例如:

s.resource_bundles = {
'Audio' => ['ios/**/*.mp3']
} 

您可以加载CocoaPods创建的捆绑文件资源(在上面的示例中,通过其名称-NSBundle和扩展名-Audio从其URL创建bundle对象),然后从此包中的资源获取路径(与您在mainBundle上使用的方法相同)。