公司需求,要在A(yíng)pp中解壓zip和rar文件,zip解壓我之前做過(guò),用的是第三方庫(kù),所以以為解壓rar會(huì)一樣容易,沒(méi)想到解壓rar的庫(kù)比較少,花費(fèi)了一兩天才搞定。
首先介紹一個(gè)第三方庫(kù)SARUnArchiveANY,他可以支持解壓rar(Unrar4iOS庫(kù))、zip(SSZipArchive庫(kù) )、7z(LZMA庫(kù))文件。那么你要問(wèn)了,那我就用這個(gè)庫(kù),還廢話(huà)什么。。
但是之前說(shuō)過(guò)了解壓rar的庫(kù)比較少,查了很久只查到一個(gè)Unrar4iOS,但是很久沒(méi)有維護(hù)更新了,Xcode 9加進(jìn)去是有問(wèn)題的,廢了一番功夫還是找到了一個(gè)支持Xcode 9的Unrar4iOS庫(kù)。
1、下載 SARUnArchiveANY 工程,拷貝項(xiàng)目中文件夾vendor中的Frameworks、LZMASDK、ZipArchive文件夾,不需要拷貝Unrar文件夾。
再拷貝改工程中的SARUnArchiveANY.h +?SARUnArchiveANY.m 文件到你的工程中。
至此你的工程中應(yīng)該有如下文件:
2、此時(shí)你Build就會(huì)報(bào)如下錯(cuò)誤:
是因?yàn)閯倓偽覀儧](méi)有添加Unrar文件夾,于是把出錯(cuò)的這樣改成
#include <Unrar4iOS/Unrar4IOS.h>
3、再Build,就會(huì)報(bào)另一個(gè)錯(cuò)誤:
為什么?因?yàn)閁nrar4iOS需要重新打包下,從這里下載,然后替換Frameworks里的Unrar4iOS.framework。
4、再Build,又報(bào)錯(cuò):
莫急,最后一步了,在TARGETS - Build Setting - Other Linker Flags里添加?-lc++
再Build,OK了吧~~
5、使用。在剛剛下載的SARUnArchiveANY工程及其Github頁(yè)面里都有使用說(shuō)明,在此不再贅述了。