搜尋

首頁  >  問答  >  主體

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

用了NSString * jsStr = [[NSString alloc]initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"xx" ofType:@"js"] ,一直報Error Domain=NSCocoaErrorDomain Code=258 "The Codefile"沒有知道怎麼解決的?

过去多啦不再A梦过去多啦不再A梦2820 天前835

全部回覆(2)我來回復

  • 迷茫

    迷茫2017-05-02 09:35:31

    靜態函式庫好像不行,必須搞bundle,而且放入的bundle的js檔案會被系統自動轉換為.txt文件,更好的解決方法是將js程式碼壓縮,然後進行URLEncode編碼可以解決這個問題。

    回覆
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-02 09:35:31

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

    解決方法:

    1. Framework 的工程里面,Target->Build Phases->Copy Bundle Resources 里面加入你需要打包进 Framework 的檔案

    2. 需要讀取某個檔案時使用

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

    PS: Framework 需要為動態函式庫才行!

    回覆
    0
  • 取消回覆