我对Unity有很大的疑问。一周前,我制作了一个Android应用,增强现实。我以APK格式编译了该应用程序。经过一个星期的团结与合作,我的硬盘坏了。
我的问题是,如何修改已经创建的apk ..因为我仅创建了项目。我只有手机上剩下的apk。
有没有可能?
我寻找结果..但徒劳。谢谢!
答案 0 :(得分:0)
有时候,可以从apk中获取一些数据,例如您编写的脚本。 这取决于您如何编译APK。 如果使用IL2CPP,我会说它丢失了,但是如果您使用mono作为脚本支持,则可以尝试对其进行反编译。 (如果您使用代码混淆等,则不会。)
要这样做,您将需要apktool和dnspy之类的程序。 (也许也可以) 比您应该使用apktool来获取dll。这是一个示例apktool.bat,它将使用apktool.jar来获取dll。
@echo off
if "%PATH_BASE%" == "" set PATH_BASE=%PATH%
set PATH=%CD%;%PATH_BASE%;
chcp 65001 2>nul >nul
java -jar -Duser.language=en -Dfile.encoding=UTF8 "%~dp0\apktool.jar" %*
运行命令后
apktool d appname.apk
您应该导航到appname \ assets \ bin \ Data \ Managed。
在此文件夹中,您将找到Assembly-CSharp.dll和Assembly-CSharp-firstpass.dll。
您可以使用dnSpy打开dll并获取大部分代码。
但是,如果您是第一次这样做,则过程可能会很复杂,因此请花一些时间。如果您还有其他问题,我可以尝试解释如何做。
您可以执行的其他操作:(以获取脚本/甚至可以收回资产)
您可以尝试使用一些统一编辑器扩展,例如Unity Unpacker。其中大多数是有偿的,通常效果不佳。
将来,我建议使用某种版本控制。它使生活更轻松,您不必担心备份。另外,如果您需要恢复几天前的操作,只需单击几下。为此,您可以使用Unity Teams,Github for Unity或类似的东西。