Skip to content

Conversation

@jaclync
Copy link
Contributor

@jaclync jaclync commented Sep 1, 2025

For WOOMOB-1222

Description

Temporarily opt out from iOS 26 liquid glass design by enabling UIDesignRequiresCompatibility in Info.plist. This prevents visual compatibility issues with the new design language while allowing the app to continue functioning properly on iOS 26.

This temporarily avoids a critical crash in NotificationsBadgeController.hideDotOn:

if let subviews = input.tabBar.orderedTabBarActionableViews[input.tabIndex].subviews.first?.subviews {
that occurs on iOS 26 built from Xcode 26 due to UITabBar subview structure changes in the liquid glass design. The crash manifests as an "Index out of range" error when accessing input.tabBar.orderedTabBarActionableViews[input.tabIndex].subviews.first?.subviews because the liquid glass design fundamentally alters how UITabBar organizes and manages its internal subview hierarchy. We will have to address this crash, ideally by replacing the existing "custom tab dot" workaround that depends on UITabBar's view hierarchy. This will be included in a p2 for WOOMOB-1213.

Steps to reproduce

To reproduce the crash (without this PR):

  1. Build with Xcode 26 beta targeting iOS 26 simulator --> app crashes shortly in logged-in state with index out of range in NotificationsBadgeController.swift:68, with the tab bar displayed with liquid glass design

To verify the fix:

  1. Build with Xcode 26 beta and run the app on iOS 26 beta with this PR --> app should not crash anymore and the tab bar should remain the same design as before iOS 26 (not the liquid glass design)
  2. Feel free tap around the tabs to verify that the app works as before

Testing information

I tested the following configurations:

  • Xcode 26 beta 7 - iPad A16 iOS 26.0 simulator (crashes without PR, fixed with PR)
  • Xcode 16.4 - iPad A16 iOS 26.0 simulator
  • Xcode 16.4 - iPad A16 iOS 18.4 simulator
  • Xcode 16.4 - iPhone 16 Pro iOS 18.5 simulator
  • Xcode 16.4 - iPad Pro 11in 3rd generation iOS 18.5 device

Screenshots

Before this PR, Xcode 26 beta 7 - iPad A16 iOS 26.0 simulator, where the app crashes with tab bar in liquid design:

Screenshot 2025-09-01 at 1 56 15 PM

After this PR, Xcode 26 beta 7 - iPad A16 iOS 26.0 simulator, where the app does not crash with tab bar in previous design:

Simulator Screenshot - iPad (A16) - 2025-09-01 at 13 53 29
  • I have considered if this change warrants user-facing release notes and have added them to RELEASE-NOTES.txt if necessary.

@jaclync jaclync added this to the 23.2 milestone Sep 1, 2025
@jaclync jaclync added the type: task An internally driven task. label Sep 1, 2025
@wpmobilebot
Copy link
Collaborator

App Icon📲 You can test the changes from this Pull Request in WooCommerce iOS Prototype by scanning the QR code below to install the corresponding build.

App NameWooCommerce iOS Prototype
Build Numberpr16066-fb74b4d
Version23.1
Bundle IDcom.automattic.alpha.woocommerce
Commitfb74b4d
Installation URL793lvn56febu8
Automatticians: You can use our internal self-serve MC tool to give yourself access to those builds if needed.

@jaclync jaclync requested a review from staskus September 1, 2025 06:35
Copy link
Contributor

@staskus staskus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. Reverting to previous iOS design there's no more crash. 👍

@jaclync jaclync merged commit 00a34fb into trunk Sep 1, 2025
24 checks passed
@jaclync jaclync deleted the backlog/WOOMOB-1222-opt-out-liquid-glass-design branch September 1, 2025 08:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: task An internally driven task.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants