Skip to content

Releases: mockingbot/react-native-zip-archive

v8.0.1

19 May 02:23

Choose a tag to compare

Fixed

  • iOS: replace _methodQueue ivar with static dispatch_once to fix build on RN 0.83+ with New Architecture (#347)

Added

  • playground-rn: bare React Native 0.83.9 test app with New Architecture
  • playground-expo: Expo SDK 55.0.24 test app with New Architecture
  • Maestro E2E flows now use ${APP_ID} env var for cross-app reuse
  • npm scripts: test:e2e:expo:ios, test:e2e:expo:android, test:e2e:rn:ios, `test:e2e:rn:android"

Changed

  • Export EncryptionMethods enum from JS entry point
  • Playground apps read library version dynamically from package.json
  • Removed debug-specific Maestro flows

v8.0.0

17 May 04:40

Choose a tag to compare

Added

  • TurboModule support for React Native New Architecture
  • TypeScript specification with Codegen integration
  • Playground app with Expo Development Builds
  • Jest test suite with TurboModule integration tests
  • Maestro E2E test flow for Android Assets (assets.yaml)
  • Playground listFilesRecursive utility for displaying nested extracted files

Changed

  • iOS implementation converted from RCTBridgeModule to TurboModule protocol
  • Android implementation converted from ReactContextBaseJavaModule to NativeZipArchiveSpec
  • JS entry point now uses TurboModuleRegistry with NativeModules fallback
  • Minimum React Native version: 0.70.0
  • Minimum React version: 18.0.0
  • Minimum Android API: 23

Fixed

  • Android unzipAssets now handles compressed assets (fallback from openFd() to InputStream.available())
  • Android processZip null check for f.listFiles() to prevent NPE
  • iOS zipFolderWithPassword encryption default consistency (empty string → standard ZipCrypto)
  • iOS old-arch fallback with #ifdef RCT_NEW_ARCH_ENABLED guards
  • Android unzipWithPassword resolves with destDirectory string instead of array
  • Android missing return statements after promise.reject() in multiple methods
  • Android updateProgress(1,1) moved outside loop in processZip
  • README broken markdown image link

Removed

  • Legacy Native Module APIs (RCT_EXPORT_METHOD, @ReactMethod)

v7.1.1

05 May 15:15

Choose a tag to compare

What's Changed

Bug Fixes

  • Fix Android build failure: invalid switch selector type double in getCompressionLevel (#342) by @FerRiv3ra
    • Cast compressionLevel to int before switch; fixes compilation error introduced in v7.1.0
    • Resolves #340 and #341

Contributors

Thanks to @FerRiv3ra for the fix!

v7.1.0

12 Apr 14:50

Choose a tag to compare

What's Changed

New Features

  • Add compression level argument (#332) by @m@rtin.sh

    • Added compressionLevel parameter to zip() and zipWithPassword() functions
    • Added constants: DEFAULT_COMPRESSION, NO_COMPRESSION, BEST_SPEED, BEST_COMPRESSION
    • Supports compression levels 0-9 on both platforms
    • Note: On iOS, compression level only works with directory sources
  • Add AES encryption support for zipFolderWithPassword on iOS (#337) by @superandrew213

    • zipFolderWithPassword now supports AES encryption on iOS
    • Improved error messages in unzipWithPassword
    • Note: zipFilesWithPassword still uses standard encryption

Bug Fixes

  • Fix Android crash due to null promise rejection code (#336) by @pSapien

Contributors

Thanks to @m@rtin.sh, @superandrew213, and @pSapien for their contributions!

v7.0.2

15 Jun 10:46

Choose a tag to compare

  • fix typing issue

v7.0.1

08 Oct 02:23

Choose a tag to compare

  • fix the compilation issue with XCode 16

v7.0.0

19 Sep 02:47

Choose a tag to compare

Well, after tweaking the underlying deps SSZipArchive back and forth, we finally decided to update it to include the changes essential to the latest App Store requirement.

v6.1.2

19 Sep 02:41

Choose a tag to compare

  • Revert update of SSZipArchive, which forces user to update their iOS deployment target.

v6.1.1

07 May 02:11

Choose a tag to compare

THIS IS THE BREAK CHANGE

  • resolve the 'iOS privacy manifest' issue, thanks to @vomchik. #303

updates

Sorry for not following the semver for including a breaking change.
You need to change the minimum iOS deployment version up to 15.5 in your project via podfile.

v6.1.0

16 Oct 06:57

Choose a tag to compare

  • new getUncompressedSize API to get the uncompressed size of the zip file, via #287