Description
In React Native 0.80.0, when RCT_NEW_ARCH_ENABLED=1, the NewArchitectureHelper.set_RCTNewArchEnabled_in_info_plist method is invoked during pod install.
This method attempts to find and edit all Info.plist files recursively under the Xcode project root using find. While it excludes /Pods, Tests, and some folders, it may still match Info.plist files in locally bundled third-party .frameworks or .xcframeworks, which are often in Apple Binary Plist format or encoded in non-UTF8 formats (e.g., UTF-16 or GBK). These files should not be modified.
This causes:
[!] An error occurred while processing the post-install hook of the Podfile.
invalid byte sequence in UTF-8
This breaks installation for many existing projects unless the file is forcibly removed or encoded manually.
We believe this behavior is overly aggressive and potentially dangerous, as those Info.plist files are not intended to be edited, especially not by a third-party script.
💡 Suggestion:
Only modify the main App target's Info.plist (usually at root level), rather than traversing the entire project directory. You can obtain this directly from the Xcodeproj structure via installer.aggregate_targets.first.user_target_uuids.map.
Let developers manually opt-in if other targets require RCTNewArchEnabled.
Steps to reproduce
- Create a React Native app with
RCT_NEW_ARCH_ENABLED=1
- Link a local binary
.framework or xcframework (e.g., Protobuf.framework)
- Try
bundle exec pod install
- Observe
invalid byte sequence in UTF-8 crash during post-install hook
React Native Version
0.8.0
Output of npx @react-native-community/cli info
info Fetching system and libraries information...
System:
OS: macOS 15.5
CPU: (12) arm64 Apple M4 Pro
Memory: 157.88 MB / 24.00 GB
Shell:
version: "5.9"
path: /bin/zsh
Binaries:
Node:
version: 22.16.0
path: /usr/local/bin/node
Yarn:
version: 1.22.22
path: /usr/local/bin/yarn
npm:
version: 10.9.2
path: /usr/local/bin/npm
Watchman:
version: 2025.05.26.00
path: /opt/homebrew/bin/watchman
Managers:
CocoaPods:
version: 1.16.2
path: /Users/congying/.rbenv/shims/pod
SDKs:
iOS SDK:
Platforms:
- DriverKit 24.5
- iOS 18.5
- macOS 15.5
- tvOS 18.5
- visionOS 2.5
- watchOS 11.5
Android SDK: Not Found
IDEs:
Android Studio: Not Found
Xcode:
version: 16.4/16F6
path: /usr/bin/xcodebuild
Languages:
Java: Not Found
Ruby:
version: 3.2.2
path: /Users/congying/.rbenv/shims/ruby
npmPackages:
"@react-native-community/cli":
installed: 19.0.0
wanted: 19.0.0
react:
installed: 19.1.0
wanted: 19.1.0
react-native:
installed: 0.80.0
wanted: 0.80.0
react-native-macos: Not Found
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: Not found
newArchEnabled: Not found
iOS:
hermesEnabled: true
newArchEnabled: true
Screenshots and Videos
this file position:
node_modules/react-native/scripts/cocoapods/new_architecture.rb
find . -name "*.plist" -exec file {} \; | grep -v "UTF-8"
modify info.plist


Description
In React Native 0.80.0, when
RCT_NEW_ARCH_ENABLED=1, theNewArchitectureHelper.set_RCTNewArchEnabled_in_info_plistmethod is invoked duringpod install.This method attempts to find and edit all
Info.plistfiles recursively under the Xcode project root usingfind. While it excludes/Pods,Tests, and some folders, it may still matchInfo.plistfiles in locally bundled third-party.frameworks or.xcframeworks, which are often in Apple Binary Plist format or encoded in non-UTF8 formats (e.g., UTF-16 or GBK). These files should not be modified.This causes:
[!] An error occurred while processing the post-install hook of the Podfile.
invalid byte sequence in UTF-8
This breaks installation for many existing projects unless the file is forcibly removed or encoded manually.
We believe this behavior is overly aggressive and potentially dangerous, as those
Info.plistfiles are not intended to be edited, especially not by a third-party script.💡 Suggestion:
Only modify the main App target's
Info.plist(usually at root level), rather than traversing the entire project directory. You can obtain this directly from the Xcodeproj structure viainstaller.aggregate_targets.first.user_target_uuids.map.Let developers manually opt-in if other targets require
RCTNewArchEnabled.Steps to reproduce
RCT_NEW_ARCH_ENABLED=1.frameworkorxcframework(e.g.,Protobuf.framework)bundle exec pod installinvalid byte sequence in UTF-8crash during post-install hookReact Native Version
0.8.0
Output of
npx @react-native-community/cli infoScreenshots and Videos
this file position:
node_modules/react-native/scripts/cocoapods/new_architecture.rbfind . -name "*.plist" -exec file {} \; | grep -v "UTF-8"modify info.plist
