- Added support for
NSProgress
andNSProgressReporting
in all extraction and iteration methods (Issue #32) - Added detailed logging using new unified logging framework. See the readme for more details (Issue #47)
- Added support for archiving and restoring files' POSIX permissions (PRs #84, #86, #87 - Thanks, @MartinLau7!)
- Added methods to check data integrity of an individual archived file, or the entire archive (Issue #63)
- Fixed a crasher in
extractBufferedDataFromFile:error:action:
, which also manifested in other methods that use it, likevalidatePassword
(Issue #51 - Thanks, @amosavian, @monobono, and @segunlee!) - Upgraded project to Xcode 9 and to the macOS 10.13 and iOS 11 SDKs (Issue #61)
- Consolidated targets so they're shared between iOS and macOS (Issue #62)
- Added a CocoaPods test spec (Issue #59)
- Improved the way warnings are ignored to be more consistent, and so they're only ignored in
minizip
, and not the UnzipKit sources (Issue #68)
- Fixed issues with localization (again, again) (Issue #42). Thanks, @stevenp!
- Updated to Xcode 8 (Issue #50)
- Fixed issues with localization (again) (Issue #42). Thanks, @ConfusedVorlon and @tomjpsun!
- Fixed bug in iOS framework target causing a framework bundle not to be produced (Issue #48 – Thanks, @amosavian!)
- Added CI automation to release tagged successful builds to CocoaPods from Travis (Issue #49)
Fixed issues with localization, that could affect submission through iTunes Connect (Issue #42)
- Added checking whether a file is compressed with the Deflate64 method, and returning a specific error code for that unsupported format (Issue #37)
- Fixed internationalization, laying the groundwork for non-US-English localization in the future. If you use UnzipKit from Carthage or CocoaPods, and run your app using the "Show non-localized strings" option, UnzipKit's strings should no longer display as all-cap (Issue #38)
Fixed a bug causing delete operations (including writing updated data with the overwrite
flag set to true) to fail when the archive resides on an external volume (Issue #36)
Fixed the nullability attributes of the 'password' argument in the UZKArchive intitializers (Issue #34 - Thanks, Mohammad!)
Fixed a bug causing the UZKErrorDomain constant not to be visible from client projects using Swift 2.2 (Xcode 7.3) or greater (Issue #33)
- Reduced memory footprint while using
extractFilesTo:overwrite:progress:error
to extract an archive. This method now uses a buffer to read and write the archived file, rather than reading it into memory up front (Issue #27, PR #28). Thanks, @brendand! - Added
nullable
attribute to the return types of theextractData...
methods, so they play more nicely with Swift's error handling (PR #29). Thanks, @amosavian! - Fixed a compiler warning that started showing up in Xcode 7.3 (Issue #26). Thanks again, @brendand!
Fixed some issues when extracting files from an archive:
- Extracting the first file past the 4 GB mark in an archive would fail, due to a bug in the Zip64 implementation (Issue #25)
- Memory would grow as each file was extracted, potentially consuming multiple gigabytes for large archives
- Improved error messages when there's an error extracting a file (the underlying error is no longer hidden)
Thanks @brendand!
Fixed issue that can cause a crash when writing to Zip files across multiple threads (Issue #23). Thanks again, @iblacksun!
Added support for using UnzipKit from a Swift dynamic framework target (Issue #21, PR #22). Thanks @iblacksun!
- Added full support for Carthage (Issue #11)
- Added annotations for nullability, improving compatibility with Xcode 7 and Swift
Fixed a bug causing global comments not to get written to disk (Issue #19)
- Added the ability to password protect a file over the streaming API (
-writeInfoBuffer:...
), if the CRC of the file is known up front (Issue #16) - Fixed a memory consumption bug, causing a crash on iOS when creating an archive with many files when
overwrite =- YES
(Issue #18) - Quieted the warning logged every time a
UZKArchive
is created for an as-yet uncreated file (Issue #17)
Fixed a bug causing file-specific passwords never to be written to an archive (Issue #15)
-
Fixed file encryption (Issue #12)
Due to Zip format requirements (the CRC needs to be known before a file write begins), passwords can no longer be used with the block-based file writing methods (
-writeIntobuffer...
). This is checked with an assertion, since thepassword
property could be set already before starting the buffered write -
Updated the implementation of
isPasswordProtected
to check all files, not just the first (Issue #13)
Fixed a bug causing file-specific passwords never to be written to an archive (Issue #15)
Fixed a bug, in which password
was passed through as nil
for the overload of -writeData...
that doesn't take the overwrite
argument (Issue #14)
Improved buffered writing API, no longer requiring a CRC, and allowing for error handling in the action block (Issue #9)
Silenced some 32-bit iOS warnings (Thanks, Clint!)
Added iOS 7 compatibility (Issue #8), and an iOS (Swift!) demo project
Added methods to easily detect whether a file is a Zip archive or not (Issue #7)
Fixed a bug introduced in the last version that would cause errors when writing a file for whom the comment had not first been read or written
Exposed a "comment" property on UZKArchive for reading and writing an archive's global comment (Issue #6)
Fixed a file handle leak that could lead to random file access errors (Issue #5)
Improved error handling, providing more detail in the NSSError objects returned (Issue #3)
Added synchronization, so accessing the same archive across threads doesn't cause errors (Issue #4)
Fixed bug causing file extraction to fail when an archive contains directories (Issue #2)
Fixed bug causing the library not to build for the 10.9 target SDK
Initial release