## 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: - #333 — iOS unzipping / server invalid signature after v7 - #323 — iOS zip uploads fail server-side (`invalid entry size`) 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 - [ ] Reproduce #333/#323 style failure with a fixture; fix covered by a regression test or documented verification script - [ ] iOS-created (non-password) zip extracts cleanly with Node `unzipper` and Java `ZipInputStream` - [ ] Android behavior unchanged (already interoperable) - [ ] README notes the compatibility guarantees ## Priority **P1**