Uni app原代码丢失如何找回?

Uniapp 写的项目原代码没了打成h5的包还在,有没有人知道怎么找回,或者包能不能反编译回来

可以参考这篇文章 手动调整
https://blog.csdn.net/qq_35744728/article/details/123783667

如果您已经把Uniapp项目打包成了H5,那么可以通过查找相应的H5的资源文件或者代码文件,来找回或者还原原代码。

首先,您可以查找之前生成的H5包所在的电脑或者服务器,看是否还能找到相应的文件,包括 HTML、CSS、JavaScript、图片等资源文件以及各页面的代码文件。如果这些文件还能找到的话,就可以把它们重新整合到Uniapp项目中,还原之前的项目。

另外,对于已经生成的H5包,通过反编译还原Uniapp项目并不容易,因为Uniapp项目包含的是原生移动应用和H5应用,需要将两者混合编译、打包。但是,也有一些反编译工具可以用于反编译H5应用,例如JebDecompiler等,但是反编译后还原的代码经常会出现各种问题和bug,因此不是很推荐这种方法。

从 H5 包中提取源代码:H5 包实际上是一组 HTML、CSS、JavaScript 文件,可以使用解压工具(如 WinRAR、7-Zip 等)解压 H5 包,然后从解压后的文件中提取源代码。一般来说,Uniapp 生成的 H5 包会包含一个 index.html 文件,这个文件中包含了项目的入口 HTML 文件,可以通过查看这个文件以及其他的 CSS 和 JavaScript 文件,逐步提取源代码。

反编译 H5 包:H5 包中的 JavaScript 代码可以通过一些工具进行反编译,将压缩过的 JavaScript 代码还原为可读性较高的源代码。一些常用的 JavaScript 反编译工具包括 UglifyJS、Terser、JS Beautifier 等。通过这些工具,可以还原部分或全部的源代码,但可能无法完全还原原始的源代码。

需要注意的是,无论是从 H5 包中提取源代码还是进行反编译,都可能无法完全还原原始的源代码,并且提取的代码可能会缺失一些元信息、注释、变量名等,导致代码可读性降低。此外,反编译 H5 包可能涉及到法律和道德方面的问题,应遵循相关法律法规和道德规范。在进行任何操作之前,建议先备份好原始的 H5 包,以防止数据丢失或其他不可逆操作。

最好的方式是在项目开发阶段时做好代码的版本控制和备份,确保源代码安全,以便在丢失代码或出现其他问题时能够轻松找回和恢复。

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
如果你丢失了Uni App项目的原代码,但是拥有打好的 H5 包,可以通过借助第三方工具来反编译H5包,尝试恢复源代码。

这里推荐一个比较好用的工具,名字叫做 JTool,是一款基于 Java 开发的工具,可以用于反编译 H5 包和尝试恢复源代码。

使用步骤如下:

1.首先确保你已经安装了 JDK 环境和 Java 开发工具。

2.下载 JTool 工具,可以在 GitHub 上找到相关资源。

3.将你打好的 H5 包解压到一个文件夹中。

4.打开命令行工具,进入到 JTool 的解压目录。

5.执行以下命令进行反编译,其中 “yourWebappFolder” 是你解压后的 H5 包所在的文件夹名称。

java -jar jtool.jar -d yourWebappFolder

6.等待反编译完成,你应该可以在你的解压目录中找到一个名为 “source” 的文件夹,里面应该包含了反编译出来的源代码。

注意:

  • 由于 Uni App 支持多端编译,因此你可能会需要对多个目标平台的 H5 包进行反编译尝试,以获取最终的源代码。
  • 反编译出来的代码可能无法与原始代码一一对应,因此需要手动进行修复和调整。
  • 反编译出来的代码可能存在版权问题,因此应该仅用于个人学习和研究,不得用于商业用途。
    如果我的回答解决了您的问题,请采纳!

引用chatGPT作答,如果你的Uniapp项目原代码不见了,但是你仍然有打包成H5的包,那么你可以使用反编译工具尝试将H5包还原成源代码。不过需要注意的是,反编译可能会导致代码不完整或无法编译,因为编译器生成的代码通常会被优化、压缩或混淆。

如果你想尝试反编译H5包,你可以使用一些开源的反编译工具,例如Jadx、apktool等等。这些工具可以将H5包反编译成Java或XML等源代码格式,然后你可以手动将其转换回原来的代码。

另外,你也可以尝试使用一些反混淆工具来解除代码的混淆,这样可以使得代码更易读,更容易还原。例如Proguard等混淆工具。

无论哪种方法,都需要注意保护好源代码的安全性,避免泄露或被不法分子利用。

如果没有备份原代码,而且只有打包好的H5包,那么找回原代码的可能性比较小。因为H5包只是前端打包后的静态文件,是无法还原回原始代码的。

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7658730
  • 这篇博客你也可以参考下:微信H5缓存解决方案,适用于uniapp被微信缓存页面导致空白【微信公众号缓存】
  • 除此之外, 这篇博客: uniapp字体图标的使用步骤详细版【前端开发】中的 II.uniapp中使用字体图标的详细步骤 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 1️⃣获取字体图标文件

    首先,我们要到iconmoon网站上获取我们需要的字体图标。

    进入它的官网,点击上图红圈的按钮,之后就进入了下图字体图标的选择页面

    这时候我们根据自己的需要,点击选中它们即可。

    选择完成之后,点击右侧的 Generate Font 按钮,生成字体图标的文件。

    最后,点击 Download 按钮,下载字体图标文件到本地。


    2️⃣字体图标文件放在合适的位置

    上一步Download后,会下载这样一个压缩包:

    解压后,找到 style.css 并在子文件夹 fonts 里找到这四个文件:iconmoon.eot、iconmoon.svg、iconmoon.ttf、iconmoon.woff选中这5个文件并复制

    之后在自己的uniapp工程文件夹子文件夹static中,新建一个font文件夹把五个文件放进去


    3️⃣修改CSS文件代码

    放完了字体图标文件,进入倒数第二步,修改style.css文件里的路径

    uniapp中打开我们的style.css文件,可以看到它的第一大段代码是这样的:

    @font-face {
      font-family: 'icomoon';
      src:  url('fonts/icomoon.eot?r6t106');
      src:  url('fonts/icomoon.eot?r6t106#iefix') format('embedded-opentype'),
        url('fonts/icomoon.ttf?r6t106') format('truetype'),
        url('fonts/icomoon.woff?r6t106') format('woff'),
        url('fonts/icomoon.svg?r6t106#icomoon') format('svg');
      font-weight: normal;
      font-style: normal;
      font-display: block;
    }

    将这一段中所有的路径url的最前面添加一个 ~@/,表示相对路径的意思。

    @font-face {
      font-family: 'icomoon';
      src:  url('~@/fonts/icomoon.eot?r6t106');
      src:  url('~@/fonts/icomoon.eot?r6t106#iefix') format('embedded-opentype'),
        url('~@/fonts/icomoon.ttf?r6t106') format('truetype'),
        url('~@/fonts/icomoon.woff?r6t106') format('woff'),
        url('~@/fonts/icomoon.svg?r6t106#icomoon') format('svg');
      font-weight: normal;
      font-style: normal;
      font-display: block;
    }

    ⛔️注意千万不要直接复制我上面这一段,而是老老实实在自己的代码中一行一行修改,我这一段是针对我上一段的部分加的~@/,但是因为我们选择的字体图标不同,我们的style.css文件内容是不同的


    4️⃣在页面上生成图标

    完成了上面三个步骤,就可以享用字体图标了。回到刚才下载字体图标的iconmoon网站,在Download页面,选择自己下载的其中一个字体图标,点击Get Code

     在弹出的页面中,复制第一行的HTML代码,是一个span标签

    复制之后,需要在哪里放置它,就把它copy到哪里即可。(修改样式时,直接用类名icon-xxxx在css中书写代码即可)

    完结撒花!🌸🌸🌸


  • 以下回答由chatgpt基于相关博客总结生成:

    很遗憾,如果你之前没有做备份,丢失的代码是无法找回的。但是你可以尝试将已有的打包文件反编译回原代码,具体操作如下:

    1. 首先下载并安装JADX工具,它是一个Java反编译工具,可以帮助我们反编译已有的打包文件。
    2. 找到你的h5包并重命名为zip格式,然后解压缩。
    3. 进入解压缩后的文件夹,找到uni文件夹,把它复制到你的电脑里。
    4. 打开JADX工具,点击File-->Open,选择复制过来的uni文件夹。
    5. 工具会自动解析文件,解析完成后,你应该就能看到反编译后的代码了。

    以上是反编译h5包的方法,如果你有原生应用的话,也可以尝试使用其他反编译工具。需要注意的是,反编译后的代码可能无法完全还原原始代码,而且还可能包含一些错误,需要你手动修改。