SSZipArchive
ZipArchive is a simple utility class for zipping and unzipping files on iOS, macOS and tvOS.
- Unzip zip files;
- Unzip password protected zip files;
- Unzip AES encrypted zip files;
- Create zip files;
- Create large (> 4.3Gb) files;
- Create password protected zip files;
- Create AES encrypted zip files;
- Choose compression level;
- Zip-up NSData instances. (with a filename)
Installation and Setup
The main release branch is configured to support Objective-C and Swift 3+.
SSZipArchive works on Xcode 7-11 and above, iOS 9-13 and above, tvOS 9 and above, macOS 10.9-10.15 and above, watchOS 2 and above.
CocoaPods
In your Podfile:
pod 'SSZipArchive'
You should define your minimum deployment target explicitly, like: platform :ios, '9.0'
Recommended CocoaPods version should be at least CocoaPods 1.7.5.
SPM
Add a Swift Package reference to https://github.com/ZipArchive/ZipArchive.git (SSZipArchive 2.3.0 and higher or master)
Carthage
In your Cartfile:
github "ZipArchive/ZipArchive"
Note: We are no longer releasing a Carthage pre-built package as of 2.2.3. Developers are encouraged to build one themselves.
Manual
- Add the
SSZipArchive
andminizip
folders to your project. - Add the
libz
andlibiconv
libraries to your target. - Add the
Security
framework to your target. - Add the following GCC_PREPROCESSOR_DEFINITIONS:
HAVE_INTTYPES_H HAVE_PKCRYPT HAVE_STDINT_H HAVE_WZAES HAVE_ZLIB $(inherited)
.
SSZipArchive requires ARC.
Usage
Objective-C
//Import "#import <ZipArchive.h>" for SPM/Carthage, and "#import <SSZipArchive.h>" for CocoaPods.
// Create
[SSZipArchive createZipFileAtPath:zipPath withContentsOfDirectory:sampleDataPath];
// Unzip
[SSZipArchive unzipFileAtPath:zipPath toDestination:unzipPath];
Swift
//Import "import ZipArchive" for SPM/Carthage, and "import SSZipArchive" for CocoaPods.
// Create
SSZipArchive.createZipFileAtPath(zipPath, withContentsOfDirectory: sampleDataPath)
// Unzip
SSZipArchive.unzipFileAtPath(zipPath, toDestination: unzipPath)
License
SSZipArchive is protected under the MIT license and our slightly modified version of minizip-ng (formally minizip) 3.0.2 is licensed under the Zlib license.
Acknowledgments
- Big thanks to aish for creating ZipArchive. The project that inspired SSZipArchive.
- Thank you @soffes for the actual name of SSZipArchive.
- Thank you @randomsequence for implementing the creation support tech.
- Thank you @johnezang for all his amazing help along the way.
- Thank you @nmoinvaz for minizip-ng (formally minizip), the core of ZipArchive.
- Thank you to all the contributors.