先说原因:下载的App的沙盒在同一个目录下可能存在大小写重名的文件或者文件夹(如A.txt,a.txt)。
iOS真机上是区分大小写的,而mac os默认是不区分大小写的,因此下载手机的沙盒到mac上的时候导致此错误发生。
我当时的上下文:之前做了一个单词语音包下载功能,上线一段时间后安卓安卓发现部分单词没有发音,后来发现是语音包里的单词音频文件存在大小写重名的情况(即China.mp3,china.mp3,China-中国,china-瓷器),后面解压出来的文件会覆盖掉前面同名的文件,但是安卓调用Api读取音频文件的时候是区分大小写的,
比如存在china.mp3文件,不存在China.mp3 的情况下,安卓使用Api调用读取China.mp3的时候,会去找China.mp3,然而找不到。后来安卓采用名称MD5化的方式命名音频文件。
一直没注意iOS是否支持大小写,于是做了个试验,发现iOS是支持大小写的区分的,所以不需要处理(在真机上测试,在模拟器上的话文件系统就是基于mac os了)。
后来查阅相关资料,要描述解释为区分大小写问题涉及到的问题较深,深究这个意义不大,OS和文件系统是独立的。开发的时候了解下有这个坑。