Skip to content

feat: iOS zip compatibility mode for server-side unzippers #367

Description

@cursor

Motivation

Multiple reports of iOS-created ZIPs failing when extracted by server tools (unzipper, Java ZipInputStream) while Android-created archives from the same app work:

Local macOS unzip often succeeds, so the issue is interoperability (Zip64, data descriptors, encryption flags, how SSZipArchive writes entries), not outright corruption.

Proposal

Add a compatibility path for iOS zip creation that produces archives reliably consumed by common server unzippers:

  • Prefer classic deflate without unexpected Zip64 when not needed
  • Ensure entry sizes / CRCs are written in a form Java/unzipper accept
  • Document any trade-offs (e.g. AES vs STANDARD)

Optionally expose a flag, e.g. zip(..., { compatibility: 'interop' }), or make interop the default for non-password zips if safe.

Acceptance criteria

Priority

P1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions