Sideloading certain ZIP files results in error on-device & fail to install

Thank you @SHiLLySiT. I believe there is an issue with how itch processes the upload.

Specifically:

  1. gimme-friction-baby-1.1.2.pdx.zip -- My original zip upload. (OK)
  2. gimme-friction-baby-1.1.2.pdx -- Extracted from my zip. (OK)
  3. gimme-friction-baby-playdate.zip -- Zip file downloaded from Itch (NOT OK)
  4. gimme-friction-baby-1.1.2.pdx -- Extracted from the itch zip. (OK)

I have NO IDEA what is causing the issue decompressing on-device.
The pdx directory extracted from each is identical (as compared by diff -bur
As expected the files contained in the two zip files are identical, but it appears the order they appear in the archive differs. Specifically the itch zip defines all the directories first:

  • gimme-friction-baby-1.1.2.pdx/images/loader/
  • gimme-friction-baby-1.1.2.pdx/fonts/
  • gimme-friction-baby-1.1.2.pdx/sound/
  • gimme-friction-baby-1.1.2.pdx/
  • gimme-friction-baby-1.1.2.pdx/images/
  • gimme-friction-baby-1.1.2.pdx/images/balls/
  • gimme-friction-baby-1.1.2.pdx/main.pdz
    etc

While my original (working) zip:

  • gimme-friction-baby-1.1.2.pdx/
  • gimme-friction-baby-1.1.2.pdx/main.pdz
  • gimme-friction-baby-1.1.2.pdx/images/
  • gimme-friction-baby-1.1.2.pdx/images/balls/
  • gimme-friction-baby-1.1.2.pdx/images/balls/14-1.pdi
    etc

I can totally imagine that whatever software the playdate hardware is using to extract the zip archive is making an assumption about zip archive structure that is not true of this zip file.

It appears my original zip (created by the command line zip (Info-Zip 3.0 on MacOS) creates directories and then their contents (a sane structure) while the Itch tooling creates all directories first (in no particular order) and then files in those directories.

I've attached four files.

  1. My original upload: gimme-friction-baby-1.1.2.pdx.zip (1.5 MB)
  2. The broken Itch zip gimme-friction-baby-playdate.zip (1.5 MB)
  3. zip -sf gimme-friction-baby-1.1.2.pdx.zip output orig112.txt.zip (509 Bytes)
  4. zip -sf gimme-friction-baby-playdate.zip output itch112.txt.zip (509 Bytes)

I will reach out to Itch support, but in the meantime the workaround seems to be to extract pdx diretcories before sideloading at Sign In -- cause if you sideload the itch zip you're gonna have a bad time.