Skip to content

fix(ios): resolve Xcode 26 build failures with fmt consteval and icon…#95

Merged
giolaq merged 2 commits into
AmazonAppDev:mainfrom
giolaq:fix/issue-93-ios-prebuild-swift-appdelegate
May 29, 2026
Merged

fix(ios): resolve Xcode 26 build failures with fmt consteval and icon…#95
giolaq merged 2 commits into
AmazonAppDev:mainfrom
giolaq:fix/issue-93-ios-prebuild-swift-appdelegate

Conversation

@giolaq
Copy link
Copy Markdown
Contributor

@giolaq giolaq commented May 27, 2026

  • Replace @bam.tech/react-native-keyevent-expo-config-plugin with a local plugin that handles Android-only key events, fixing the prebuild crash caused by the plugin expecting an Objective-C AppDelegate when Expo SDK 52+ generates Swift
  • Add withFmtXcode26Fix plugin to define FMT_CONSTEVAL=constexpr on the fmt pod, fixing compilation errors with Xcode 26's stricter consteval enforcement
  • Fix tvOS app icon asset (icon-400x240.png) from 420x240 to 400x240, resolving imagestack layer sizing errors enforced by Xcode 26
  • Add withTvosDeploymentTarget plugin to set tvOS deployment target to 15.1
  • Update app.json build properties (SDK versions, newArchEnabled placement)

… sizing

Xcode 26's stricter Clang rejects consteval usage in the fmt library
bundled with hermes-engine, and enforces exact imagestack layer sizing
for tvOS app icons.
@giolaq giolaq mentioned this pull request May 27, 2026
Move withFmtXcode26Fix plugin to last position so it runs after
@react-native-tvos/config-tv writes the Podfile. Switch from
FMT_CONSTEVAL preprocessor define to compiling the fmt pod with
C++17, which is the community-recommended fix (react-native#55601).
@giolaq giolaq merged commit 5c9dc39 into AmazonAppDev:main May 29, 2026
@giolaq giolaq deleted the fix/issue-93-ios-prebuild-swift-appdelegate branch May 29, 2026 21:07
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