Skip to content

fix(android): strip dangling splashscreen_logo reference#666

Merged
wyne merged 1 commit into
mainfrom
fix/android-splash-no-icon
Jun 17, 2026
Merged

fix(android): strip dangling splashscreen_logo reference#666
wyne merged 1 commit into
mainfrom
fix/android-splash-no-icon

Conversation

@wyne

@wyne wyne commented Jun 17, 2026

Copy link
Copy Markdown
Owner

Problem

npx eas build --profile preview --platform android --local failed during :app:processReleaseResources:

error: resource drawable/splashscreen_logo (aka com.wyne.scorepad.preview:drawable/splashscreen_logo) not found

expo-splash-screen 56.0.10 always writes windowSplashScreenAnimatedIcon → @drawable/splashscreen_logo into android/app/src/main/res/values/styles.xml, but only generates that drawable when an image/drawable is configured. Our splash config is color-only by design (the animated logo is rendered in JS by SplashOverlay), so a clean prebuild produced a dangling reference and aapt linking failed.

The committed-but-gitignored android/ folder was stale (from an older Expo that used windowBackground + shipped the PNGs), which masked this locally — EAS does a clean prebuild, so it broke there.

Fix

  • plugins/withAndroidSplashNoIcon.js — config plugin that removes the dangling windowSplashScreenAnimatedIcon item after expo-splash-screen runs. Throws if the item isn't found, so a future SDK change won't silently no-op.
  • app.config.js — plugin listed before expo-splash-screen. Expo runs the most-recently-registered mod first, so an earlier-listed plugin's withAndroidStyles mod runs last (after expo-splash-screen has written its style items).

Native splash stays color-only as intended; no new assets needed.

Verification

  • expo prebuild --platform android --clean — confirmed windowSplashScreenAnimatedIcon / splashscreen_logo no longer appear in generated styles.xml.
  • npx eas build --profile preview --platform android --local:app:processReleaseResources passes and the build produces app-release.apk.

🤖 Generated with Claude Code

expo-splash-screen always writes windowSplashScreenAnimatedIcon ->
@drawable/splashscreen_logo into styles.xml, but only generates that
drawable when an image is configured. Our splash is color-only (logo is
handled in JS by SplashOverlay), so a clean Android prebuild produced a
dangling reference and failed resource linking:
  error: resource drawable/splashscreen_logo not found

Add a config plugin that removes the icon item after expo-splash-screen
runs (listed before it so its withAndroidStyles mod runs last).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Coverage after merging fix/android-splash-no-icon into main will be

61.33%

Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
redux
   GamesSlice.ts52.73%26.19%54.17%63.64%102–103, 103, 103, 105, 113–114, 114, 114, 116, 124, 146–148, 163, 182, 193, 200, 202, 205–207, 271, 284, 293–294, 294, 294, 300, 300, 300–301, 303, 305–306, 309, 309, 309, 309, 309–310, 313–314, 316, 318, 318, 318, 318, 318–319, 321, 321, 321, 323–324, 327, 327, 327, 329, 33, 56, 67, 84, 89–90, 90, 90
   PlayersSlice.ts88.04%95%85.71%86.27%105, 107, 115, 35, 52–53, 70–71
   SettingsSlice.ts53.85%66.67%45%57.69%100, 103, 108, 111, 114, 58, 61, 67, 70, 73, 82, 85, 94
   backup.ts0%0%0%0%11, 27–29, 31, 45–49, 51, 51, 51–52, 57, 60, 64–66, 71, 71, 71, 73–75, 78–79, 81–82, 85, 85, 85, 85, 85–87, 90–93, 95, 97
   hooks.ts100%100%100%100%
   scoreUtils.ts93.33%87.50%100%100%5
   selectors.ts100%100%100%100%
   store.ts0%0%0%0%10, 12, 12, 12–13, 13, 13–15, 18, 21–23, 23, 23, 23, 23–24, 29, 33, 60, 67, 74, 81, 99
   testStore.ts0%100%0%0%11–15, 20–23, 25, 42–44, 5
src
   Analytics.ts100%100%100%100%
   ColorPalette.ts100%100%100%100%
   Logger.ts91.23%87.50%81.82%94.74%14–15, 22
   Navigation.tsx75.68%72.73%62.50%83.33%45, 49, 70, 73, 79–80
   constants.ts100%100%100%100%
   theme.ts93.75%85.71%100%100%79
src/components
   EditGame.tsx79.63%75%66.67%84.85%35, 49, 62–63, 86, 86, 86–87
   FloatingActionButton.tsx93.75%100%88.89%95.24%42
   GameListItem.tsx66.10%47.83%100%73.33%103, 20, 23–24, 24, 24–26, 26, 26–28, 28, 28–30, 30, 30–31, 73
   GameListItemPlayerName.tsx100%100%100%100%
   MenuOpenContext.tsx87.50%100%66.67%100%
   PlayerListItem.tsx0%0%0%0%123, 123, 134, 24, 32–34, 34, 34–38, 40, 40, 40, 40, 40–41, 41, 41–42, 42, 42, 44–45, 56, 63–64, 66, 72–73, 76, 79, 82–83, 90, 93, 93, 96, 96, 96–97, 99
   ScoreLogTable.tsx92.59%82.35%100%96.15%50, 52, 54, 54
   SplashOverlay.tsx0%0%0%0%22–24, 24, 24, 26–28, 30, 32–33, 35, 37, 40, 40, 40, 43, 49, 53, 58, 74
src/components/AppInfo
   RotatingIcon.tsx0%0%0%0%18–19, 21–24, 26, 28–30, 37–38, 40, 40, 40–41, 44, 44, 44–48, 51, 53–54, 59
   SeedData.ts0%100%0%0%17, 47, 49–50, 52, 54–56, 58–60, 62, 68, 71, 82–85
src/components/BigButtons
   BigButton.tsx0%0%0%0%18, 18–20, 22–23, 23, 25, 25–26, 26, 48
src/components/Boards
   ListBoard.tsx86.81%72.73%84.21%98.57%123, 180, 206–207, 220, 223, 262, 29, 33, 59–61, 84, 84, 88, 92
   PlayerTile.tsx0%0%0%0%29, 39, 39, 39, 39, 39–40, 40, 40, 40, 40, 42–46, 46, 46–47, 47, 47, 47, 47–48, 48, 48–50, 50, 50, 52–54, 54, 54, 56, 59, 59, 63–64, 67–68, 70, 72, 82, 82, 99
   TileBoard.tsx96.39%90.32%100%100%18, 78, 92
src/components/Buttons
   AppSettingsButton.tsx100%100%100%100%
   BackButton.tsx0%100%0%0%16–18, 20–21
   GameOptionsButton.tsx51.85%42.86%69.23%54.72%102, 122, 122, 122–123, 125–126, 130, 130, 130, 130, 130, 130, 130, 132–133, 135–136, 138–139, 141–144, 146–148, 150–152, 159, 165–166, 177, 179, 179, 185, 185, 185, 185, 40, 46, 48, 58, 65, 73, 94, 98
   HeaderButton.tsx100%100%100%100%
src/components/ColorPalettes
   ColorSelector.tsx100%100%100%100%
   PalettePreview.tsx0%0%0%0%10–12, 14, 19, 19, 25
   PaletteSelector.tsx0%0%0%0%13, 15–18, 20, 22, 22, 22, 24–25, 31, 37, 40, 45, 56
src/components/Headers
   RoundHeaderTitle.tsx0%0%0%0%12–14, 16, 18, 18, 18, 20–21, 21, 21–22, 22, 22, 24–25, 27–28, 28, 28, 28, 28, 30–31, 31, 34–35, 44–45, 45, 45, 47–49, 57, 59, 62, 62, 62, 62, 64, 64, 70,

@wyne wyne merged commit 8947377 into main Jun 17, 2026
5 checks passed
@wyne wyne deleted the fix/android-splash-no-icon branch June 17, 2026 04:36
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