Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用IL2CPP防止代码剥离?_Android_Unity3d_Socket.io_Apk - Fatal编程技术网

Android 如何使用IL2CPP防止代码剥离?

Android 如何使用IL2CPP防止代码剥离?,android,unity3d,socket.io,apk,Android,Unity3d,Socket.io,Apk,我们正在制作我们的第一款小型Unity Android游戏。应用程序连接到我们的Socket.IO服务器并发送/接收一些数据。在开发过程中,一切正常。我们通过USB连接设备,在设备上使用Unity Remote 5,应用程序连接到服务器,一切都很好 然后我们从Unity构建签名APK。我们将APK安装到同一个设备上,应用程序启动时没有问题,但socket.io通信无法工作。在服务器端,我可以看到连接的初始请求(这是成功的),但随后应用程序将不会连接到指定的命名空间,并且不会发送加载数据的请求 我

我们正在制作我们的第一款小型Unity Android游戏。应用程序连接到我们的Socket.IO服务器并发送/接收一些数据。在开发过程中,一切正常。我们通过USB连接设备,在设备上使用Unity Remote 5,应用程序连接到服务器,一切都很好

然后我们从Unity构建签名APK。我们将APK安装到同一个设备上,应用程序启动时没有问题,但socket.io通信无法工作。在服务器端,我可以看到连接的初始请求(这是成功的),但随后应用程序将不会连接到指定的命名空间,并且不会发送加载数据的请求

我们是否犯了一些明显的错误?我们是否必须指定其他东西来构建工作APK?我们只是在发布时添加密钥库。似乎在版本APK中启用了网络通信,因为我们看到了一些请求。我们是Unity初学者,任何帮助都将不胜感激

我们使用Unity 2019.1.11f1。我们使用这个socket.io客户端库:

我们尝试了其他库:但遇到了相同的问题。在开发过程中工作,在版本APK中不工作。我们还尝试了两种不同的Socket.IO服务器实现,它们(Flask和go Socket.IO)的行为相同

编辑:我们做了更多的测试,发现当使用Mono时,一切正常。但当我们切换到IL2CPP时,APK被破坏了。 由于Play store(需要64位),我们必须使用IL2CPP。我们目前的理论是过于激进的代码剥离,删除了一些重要的代码部分


所以,问题应该是,如何防止使用IL2CPP进行代码剥离?

不确定它是否真的与您的问题有关,但代码剥离在引擎中有一个正确的设置:


设备日志中有什么内容吗?谢谢,我们会检查的today@Kubik你试过FM WebSocket吗?它支持许多带有Socket.IO设置的平台。youtube ref:这似乎是正确的方法,但我们无法确定到底是哪个类/文件/程序集被剥离。所以我们放弃了Unity项目,在没有3d支持的情况下用原生Android重写了整个应用程序。无论如何,谢谢你的建议。@Kubik据我所知,如果unity中的代码剥离被启用,那么unity将从所有DLL(包括外部DLL、其自身引擎内部DLL、所有DLL)中剥离所有未使用的内容,我认为这是在功能级别上。很遗憾听到你因为这个问题放弃了Unity,但是很高兴听到你以某种方式解决了这个问题。