Skip to content

Resize the 2048 px fruit-based alternate icons (about 35 MB off the app) - #1654

Merged
GianniCarlo merged 1 commit into
developfrom
fix/alternate-icon-sizes
Oct 18, 2026
Merged

GianniCarlo merged 1 commit into
developfrom
fix/alternate-icon-sizes

Conversation

@GianniCarlo

Copy link
Copy Markdown
Collaborator

Problem

The App Store lists 5.22.2 at 69.8 MB, and about 35 MB of that is four alternate-icon PNGs. fruit-based-26@2x/@3x (iPhone) and fruit-based-ipad-26@2x/@3x (iPad) are the same 2048×2048 16-bit file, 8.75 MB each. They've been that way since they were added in 303498c, and 5.13.0 was the first release to ship them. Their siblings (music-26, pride-26, Platinum) are 120/180 px on iPhone and 152/167 px on iPad.

They're loose bundle files (CFBundleAlternateIcons in Info.plist, also loaded with UIImage(named:) for the picker in AppIconView), so App Thinning can't drop them, and Xcode's copypng copies 16-bit PNGs unchanged.

Changes

  • fruit-based-26 / fruit-based-ipad-26: downscaled from the 2048 px source with sips -Z to 120/180 px (iPhone) and 152/167 px (iPad), keeping the same file names. They're 8-bit Display P3 with alpha (17–32 KB). The siblings are 16-bit, which makes no visible difference at these sizes.
  • retro-icon / retro-icon-ipad: each PNG carried a 463 KB Adobe ImageReady XMP chunk around 6–9 KB of image. Only the text chunks are removed and the image data is byte-for-byte the same. copypng -strip-PNG-text already drops this chunk when building, so this part only shrinks the repo.
  • Info.plist and the project file are unchanged.
Before After
Settings/Icons/assets in the repo 39.3 MB 2.5 MB
The four fruit icons in the built app 35.0 MB 135 KB

Testing

  • Compared the resized icons with music-26, pride-26 and Platinum at the same sizes on light and dark backgrounds: same shape and inset, no aliasing.
  • Decoded the retro icons before and after the change: identical pixels.
  • BookPlayer builds for the iOS Simulator with Xcode 27.1, and the built app has the new icons (7–42 KB each).
  • Not tried: picking the fruit icon in Settings › App Icon on a device or simulator.

The four fruit-based-26 alternate icons were the same 2048x2048 16-bit PNG,
8.75 MB each. They're loose bundle files, so App Thinning can't drop them
and Xcode's copypng copies them unchanged: about 35 MB of the App Store
size since 5.13.0. Resize them to the sizes their siblings use, 120/180 px
on iPhone and 152/167 px on iPad.

Also drop the 463 KB Adobe XMP chunk from each retro-icon PNG. The pixels
are unchanged, and copypng already strips it from the build, so this only
shrinks the repo.
@github-actions

Copy link
Copy Markdown

✅ Claude PR Review — PASS

Binary-only change: the four 2048 px 16-bit fruit-based-26 / fruit-based-ipad-26 alternate-icon PNGs are downscaled to 120/180 px (iPhone) and 152/167 px (iPad), the same sizes as music-26 / music-ipad-26, and the XMP text chunks are stripped from the retro-icon PNGs. File names are unchanged, so Info.plist CFBundleAlternateIcons (lines 110 and 244), the project.pbxproj resource entries, the UIImage(named:) force-unwrap in AppIconView (fed the -26 name by SettingsAppIconsView) and StoryView's UIImage(named: "retro-icon@3x")! all still resolve. No code, concurrency, player, persistence or entitlement surface is touched. Before release, someone should pick the fruit icon in Settings › App Icon on a device, which the author has not done yet.

Findings: no findings

Converged: nothing new this round, and no earlier finding is open.

Model claude-opus-5-5 · run log · 0 new · 0 carried over · 0 resolved · advisory (a human should still review). Findings are de-duplicated across pushes; an earlier finding closes only when the verification pass judges it against the current code — fixed, no longer applicable, accepted by a maintainer, or a duplicate of a finding reported on this push.

@GianniCarlo
GianniCarlo merged commit b010747 into develop Oct 18, 2026
3 checks passed
@GianniCarlo
GianniCarlo deleted the fix/alternate-icon-sizes branch October 18, 2026 12:55

This branch was successfully deployed

1 active deployment
reviewer — 9c5747b1 Deployed Oct 18, 2026 by GianniCarlo via review #291
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant