Skip to content

Unicode filesystem paths break iOS precompiled xcframework resolution due to unescaped URI handling #56878

@garretteklof

Description

@garretteklof

Description

React Native fails to resolve/build precompiled xcframeworks correctly when the project exists inside a filesystem path containing Unicode characters (e.g. emoji or certain non-ASCII characters).

This appears to be caused by unescaped file:// URI handling somewhere in the xcframework resolution/build pipeline.

Expo maintainers confirmed and fixed the issue on their side, but noted the same issue still exists upstream in React Native when built from precompiled xcframeworks. The fix on the Expo side can be found here

References:

Steps to reproduce

  1. Create a new React Native / Expo project
npx create-expo-app@latest expo-unicode-path-bug
  1. Place the project inside a Unicode filesystem path, for example:
/Users/<user>/💻dev/expo-unicode-path-bug
  1. Upgrade/install latest SDK / dependencies

  2. Run:

npx expo prebuild --platform ios --clean

or equivalent iOS build flow using precompiled xcframeworks.

  1. Observe failure during CocoaPods / xcframework resolution.

React Native Version

0.85.2

Affected Platforms

Build - MacOS

Output of npx @react-native-community/cli info

expo-env-info 2.0.12 environment info:
    System:
      OS: macOS 26.5
      Shell: 5.9 - /bin/zsh
    Binaries:
      Node: 26.1.0 - ~/.local/share/mise/installs/node/latest/bin/node
      npm: 11.13.0 - ~/.local/share/mise/installs/node/latest/bin/npm
      Watchman: 2026.05.11.00 - /opt/homebrew/bin/watchman
    Managers:
      CocoaPods: 1.16.2 - /opt/homebrew/bin/pod
    SDKs:
      iOS SDK:
        Platforms: DriverKit 25.5, iOS 26.5, macOS 26.5, tvOS 26.5, visionOS 26.5, watchOS 26.5
    IDEs:
      Xcode: 26.5/17F42 - /usr/bin/xcodebuild
    npmPackages:
      expo: ^56.0.0-preview.11 => 56.0.0-preview.11 
      expo-router: ~56.1.4 => 56.1.4 
      react: 19.2.3 => 19.2.3 
      react-dom: 19.2.3 => 19.2.3 
      react-native: 0.85.3 => 0.85.3 
      react-native-web: ~0.21.0 => 0.21.2 
    Expo Workflow: bare

Stacktrace or Logs

[!] Invalid `ExpoModulesCore.podspec` file:
bad component(expected absolute path component):

MANDATORY Reproducer

https://github.com/garretteklof/expo-unicode-path-bug

Screenshots and Videos

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions