Skip to content

fmt error on Xcode 26.4 #1081

@msluszniak

Description

@msluszniak

Description

Running demo apps on Xcode 26.4 is affected by the errors in how consteval rules are evaluated in Apple Clang 21, see these:
facebook/react-native#55601 — FMT Compile Errors on Xcode 26.4
expo/expo#44229 — SDK 55 iOS build from source fails on Xcode 26.4
fmtlib/fmt#4740 — FMT_STRING consteval error with Apple clang 21
BleepingSwift — Fixing the fmt consteval Error in Xcode 26.4 for React Native

We should be up to date with the fixes and apply them when resolved.

Steps to reproduce

  1. Run bare-rn demo app with Xcode 26.4 and Apple Clang 21.
  2. Observe the following errors in build:
error call to consteval function 'fmt::basic_format_string<char, fmt::basic_string_view<char> &, const char (&)[3]>::basic_format_string<FMT_COMPILE_STRING, 0>' is not a constant expression
error call to consteval function 'fmt::basic_format_string<char, const char (&)[7], int &>::basic_format_string<FMT_COMPILE_STRING, 0>' is not a constant expression
error call to consteval function 'fmt::basic_format_string<char, unsigned int &>::basic_format_string<FMT_COMPILE_STRING, 0>' is not a constant expression
error call to consteval function 'fmt::basic_format_string<char, int>::basic_format_string<FMT_COMPILE_STRING, 0>' is not a constant expression

If you want to temporarily patch this problem, please add this to ios/Podfile:

    # Local-only workaround for Xcode 26.4 + Apple clang 21 consteval strictness
    # breaking fmt 11.x (facebook/react-native#55601). Do not commit.
    installer.pods_project.targets.each do |target|
      if target.name == 'fmt' || target.name == 'RCT-Folly'
        target.build_configurations.each do |config|
          config.build_settings['CLANG_CXX_LANGUAGE_STANDARD'] = 'c++17'
          config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)']
          config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'FMT_USE_CONSTEVAL=0'
        end
      end
    end

(This workaround is applied to bare-rn example app)

Snack or a link to a repository

No response

React Native Executorch version

main (0.9.0)

React Native version

0.81.6

Platforms

iOS

JavaScript runtime

None

Workflow

None

Architecture

None

Build type

None

Device

None

Device model

No response

AI model

No response

Performance logs

No response

Acknowledgements

Yes

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1Important fixes that are not urgent, some workaround available etc.platform: iosIssues and tasks related to iOS

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions