【问题标题】:How to explore NSBundle contents?如何探索 NSBundle 内容?
【发布时间】:2020-05-04 07:01:58
【问题描述】:

我有一个名为 main.jsbundle 的 NSBundle 文件,由 react-native 包打包,我可以使用哪个工具来探索它的内容?我可以看到它里面有缩小的 js 代码,还有文件开头的某种索引。我需要提取 js 代码来调试问题。

【问题讨论】:

    标签: ios react-native nsbundle


    【解决方案1】:

    NSBundle 是一个完全不同的东西——它是一个原生类,代表了一种封装应用程序和框架的 Apple 格式,允许从原生代码访问和操作它。

    您问的是 React Native 包,这是一个相当松散的概念,即单个缩小的 JS 代码文件 + 用于图像和数据的资产文件夹。实际上,您可以使用 uglify-js 等常规工具对 js-bundle 进行分解并尝试对其进行检查。

    您也可以使用sourcemaps produced by Metrometro-symbolicate 来了解压缩包中的代码如何映射到实际源代码,尽管在不知道手头的问题的情况下我不能推荐任何更具体的东西。 metro-symbolicate 也没有文档,这意味着您必须了解它的来源。

    【讨论】:

    • 它与浏览器js包有点不同,因为文件开头有一堆二进制数据。我发现通过strings 管道传输文件可以为我剥离二进制数据
    • 那么你使用的是 RAM 捆绑包吗?
    • 我想我确实这样做了,我记得设置了类似的东西。
    【解决方案2】:

    正如@ivanmoskalev 指出的那样,这可能不一定是 NSBundle。无论如何,通过strings 输出文件几乎只是文件的javascript部分,所以这对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-05
      • 2011-03-08
      • 1970-01-01
      • 2014-01-15
      • 1970-01-01
      • 1970-01-01
      • 2015-04-15
      • 2017-12-01
      相关资源
      最近更新 更多