mac压缩文件多了__MACOSX目录问题
文章目录
- 背景
- 原因
- 解决方案:更换压缩方式
- 分析问题
- 拓展(.DS_Store)
背景
项目中有一个场景,需要把目录压缩为app离线包的zip
但是压缩之后一致打不开,别人上传的zip是好的
原因
如图,我上传的在安卓设备
或者是windows
上解压出来多了__MACOSX
的一个目录,根据识别的顺序,在Android 10
的设备上是会有问题的
解决方案:更换压缩方式
之前我一直用的是mac电脑的默认压缩方式,也就是归档管理工具
经验证,这种方式压缩出来就会有隐藏文件
-
使用命令行压缩的时候删除
__MACOSX
zip -d XxXx.zip "__MACOSX*
-
更换其他的压缩软件,比如
keba
https://www.keka.io/en/
-
如果是可以在windows或者android上进行解压的场景的话,也可以手动删除多余的这个目录
分析问题
在mac系统上压缩文件时,会自动将一些缓存的内容
一起压缩,而这些在mac系统中是不可见的,对于其他系统如windows和andorid来说其实没有任何作用,一些特定的场景还会影响数据读取
拓展(.DS_Store)
类似的,mac电脑还会多产生.DS_Store
文件
这个文件是用来记录该目录的一些属性
,如文件夹的排序方式、图标大小等
这些功能在显示选项功能可以看到
-
禁止生成
.DS_Store
文件defaults write com.apple.desktopservices DSDontWriteNetworkStores true
这个命令可以禁止生成一切前面带
.
的隐藏文件如果是想指定目录不生成(
-m
之后的是你指定的目录)/usr/sbin/dot_clean -m ~/your_working_dir
-
删除已经生成的
.DS_Store
文件当前目录
find . -name ‘.DS_Store’ -type f -delete
所有目录
sudo find / -name “.DS_Store” -depth -exec rm {} ;
-
恢复
.DS_Store
生成defaults delete com.apple.desktopservices DSDontWriteNetworkStores