C# iOS上的Ionic.Zip.Unity.dll ZlibException

C# iOS上的Ionic.Zip.Unity.dll ZlibException,c#,ios,unity3d,build,zip,C#,Ios,Unity3d,Build,Zip,我正在使用Unity为Android和iOS开发一款手机游戏。 在我的游戏中,我需要下载一个压缩文件并将其解压缩 为了管理压缩和解压缩,我使用了Ionic.Zip.Unity(您可以在中找到该库)。 Ionic.Zip是DotNetZip库的精简版本,应该可以与Android和iOS一起使用 所以,我的代码是: string fileStr = "*************"; byte[] fileData = Convert.FromBase64String(fileStr); Memor

我正在使用Unity为Android和iOS开发一款手机游戏。 在我的游戏中,我需要下载一个压缩文件并将其解压缩

为了管理压缩和解压缩,我使用了Ionic.Zip.Unity(您可以在中找到该库)。 Ionic.Zip是DotNetZip库的精简版本,应该可以与Android和iOS一起使用

所以,我的代码是:

string fileStr = "*************";
byte[] fileData = Convert.FromBase64String(fileStr);

MemoryStream fileStream = new MemoryStream(fileData);

ZipFile zipFile = ZipFile.Read(fileStream);
foreach (ZipEntry zipEntry in zipFile)
{
     MemoryStream memoryStream = new MemoryStream();

     zipEntry.Extract(memoryStream);

     memoryStream.position = 0;
     StreamReader streamReader = new StreamReader(memoryStream);
     string str = streamReader.ReadToEnd();

     Debug.Log("String decoded: " + str);
}
*fileStr包含加密字符串

此代码在所有平台(Android、PC、iOS)的编辑器上都能正常工作。 如果我为Android构建apk,它会工作。 问题在于iOS版本。代码已编译,但运行时出现以下异常:

ZlibException 充气:rc=323508496 msg=

我已经尝试删除.dll并将源代码添加到项目中,效果良好。这怎么可能

我真的需要帮助,因为我完成了我的想法


谢谢大家。

我在使用
BestHTTP
时遇到了同样的问题(在引擎盖下也使用了
Zlib
)。我花了将近两天的时间才发现它确实与特定的
Unity
Xcode
版本有关,没有正确地协同工作

问题发生在使用
Xcode 8.3
Unity 5.5.0f3
Unity 5.6.0f1
上,但使用
Xcode 8.2.1
时不会发生

我将做进一步的调查,并检查它是否与更新的Unity版本一起工作。让你随时了解最新情况


更新: 这似乎是团结中的一个缺陷,应该在不久的将来解决

修订


我对新的xcode 8.3.x也有类似的问题,问题在于新的xcode以及LLVM如何剥离未使用的代码。这可能是xcode的一个bug,也可能是它的新方式。您可以尝试的一件事是将构建设置中的死代码剥离标志设置为NO

您使用哪个Unity和Xcode版本?我想我也面临同样的问题。也许我会在1-2小时内修复,我希望;)我忘了指定我正在处理:-Unity 5.3.1p4-XCode 8.3.1。所以唯一的修复方法就是将XCode更新到以前的版本?看起来是这样的。或者在发布补丁后升级Unity。我已经将XCode降级为8.2.1,现在可以正常工作了。非常感谢。很高兴听到!如果你能接受我的回答,那就太好了:-)