objective-c - 打包成.framework sdk 想在里面放 js 文件,不想用 bundle,怎么可以读取到 js 文件

浏览:47日期:2023-11-21

问题描述

用了 NSString * jsStr = [[NSString alloc]initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@'xx' ofType:@'js'] ,一直报 Error Domain=NSCocoaErrorDomain Code=258 'The file name is invalid ,有没有知道怎么解决的?

问题解答

回答1:

静态库好像不行,必须搞bundle,而且放入的bundle的js文件会被系统自动转换为.txt文件,更好的解决办法是将js代码压缩,然后进行URLEncode编码可以解决这个问题。

回答2:

可以将你需要的文件一起打包到 Framework 里面,然后通过 NSBundle 去获取这个文件。不同的是不能使用 mainBundle,因为此时的 mainBundle 指的引用 Framework 的这个程序。当然找不到你的 JS 文件了。

解决方法:

在 Framework 的工程里面,Target->Build Phases->Copy Bundle Resources 里面加入你需要打包进 Framework 的文件

需要读取某个文件时使用

NSBundle *bundle = [NSBundle bundleWithIdentifier:@'your.framework.id'];if (bundle) { NSString *filePath = [bundle pathForResource:@'somefile' ofType:@'js']; // ...}

PS: Framework 需要为动态库才行!

相关文章: