[0.84.0] [iOS] Mac Catalyst build failed with bundle format is ambiguous (could be app or framework)
まだ誰も着手していません。
- 主要言語
- C++
- スター
- 127k
- フォーク
- 25.3k
- 平均マージ
- 1日 23時間
- マージ済み PR(30日)
- 4
説明
Issues
Upgrading to 0.84 broke build for Mac Catalyst, with the error "bundle format is ambiguous (could be app or framework)"
There are several issues:
-
Hermes 250829098.0.7 (shipped with 0.84) has the wrong symlinks in the framework for Mac Catalyst. (This has been fixed in 250829098.0.8; see https://github.com/facebook/hermes/issues/1883)
-
React Native pre-built dependencies also have the wrong symlinks as well as invalid structures.
ls -al ReactNativeDependencies.xcframework/ios-arm64_x86_64-maccatalyst/ReactNativeDependencies.framework
-rw-r--r-- 1 rying staff 6963960 Feb 11 06:48 ReactNativeDependencies drwxr-xr-x 3 rying staff 96 Feb 11 06:48 ReactNativeDependencies_boost.bundle drwxr-xr-x 3 rying staff 96 Feb 11 06:48 ReactNativeDependencies_folly.bundle drwxr-xr-x 3 rying staff 96 Feb 11 06:48 ReactNativeDependencies_glog.bundle drwxr-xr-x 3 rying staff 96 Feb 11 06:48 Resources drwxr-xr-x 4 rying staff 128 Feb 11 06:48 Versionsls -al React.xcframework/ios-arm64_x86_64-maccatalyst/React.framework
drwxr-xr-x 63 rying staff 2016 Feb 11 07:15 Headers drwxr-xr-x 3 rying staff 96 Feb 11 07:15 Modules -rw-r--r-- 1 rying staff 114967784 Feb 11 07:14 React drwxr-xr-x 3 rying staff 96 Feb 11 07:14 Resources drwxr-xr-x 4 rying staff 128 Feb 11 07:14 Versions
Expectations
- The correct symlinks shoud look like this
lrwxr-xr-x 1 rying staff 40 Feb 12 21:37 ReactNativeDependencies -> Versions/Current/ReactNativeDependencies lrwxr-xr-x 1 rying staff 26 Feb 12 21:37 Resources -> Versions/Current/Resources drwxr-xr-x@ 4 rying staff 128 Feb 12 21:37 Versions ReactNativeDependencies_boost.bundleetc. cannot be in the directoryReactNativeDependencies.framework. These bundles need to be moved to underVersions/Current/Resourcesinstead.
Workarounds
-
Download the newer version of Hermes 250829098.0.8 from https://repo1.maven.org/maven2/com/facebook/hermes/hermes-ios and use it for pod install:
HERMES_ENGINE_TARBALL_PATH=/Users/rying/Downloads/hermes-ios-250829098.0.8-hermes-ios-debug.tar.gz pod install -
Here is a script that fixes the pre-built dependencies' framework structures:
pushd ios/Pods/hermes-engine/destroot/Library/Frameworks/universal/hermesvm.xcframework/ios-arm64_x86_64-maccatalyst/hermesvm.framework rm -r hermesvm Resources ln -s Versions/Current/Resources Resources ln -s Versions/Current/hermesvm hermesvm pushd Versions && rm -r Current && ln -s 1 Current && popd popd pushd ios/Pods/React-Core-prebuilt/React.xcframework/ios-arm64_x86_64-maccatalyst/React.framework rm -r React Resources ln -s Versions/Current/Resources Resources ln -s Versions/Current/React React pushd Versions && rm -r Current && ln -s A Current && popd popd pushd ios/Pods/ReactNativeDependencies/framework/packages/react-native/ReactNativeDependencies.xcframework/ios-arm64_x86_64-maccatalyst/ReactNativeDependencies.framework rm -r ReactNativeDependencies Resources ln -s Versions/Current/Resources Resources ln -s Versions/Current/ReactNativeDependencies ReactNativeDependencies pushd Versions && rm -r Current && ln -s A Current && popd mv ReactNativeDependencies_*.bundle Resources popd
Steps to reproduce
- Create a new RN project with CLI
- Install node modules, pods, etc.
- Open Xcode and enable Mac Catalyst support by adding it as a destination
- Run the project with the Mac Catalyst as the target
- Observe build errors
React Native Version
0.84.0
Affected Platforms
Build - MacOS
Output of npx @react-native-community/cli info
System:
OS: macOS 26.3
CPU: (10) arm64 Apple M1 Pro
Memory: 1.13 GB / 16.00 GB
Shell:
version: "5.9"
path: /bin/zsh
Binaries:
Node:
version: 25.6.1
path: /Users/rying/.nvm/versions/node/v25.6.1/bin/node
Yarn: Not Found
npm:
version: 11.9.0
path: /Users/rying/.nvm/versions/node/v25.6.1/bin/npm
Watchman: Not Found
Managers:
CocoaPods:
version: 1.16.2
path: /opt/homebrew/bin/pod
SDKs:
iOS SDK:
Platforms:
- DriverKit 25.2
- iOS 26.2
- macOS 26.2
- tvOS 26.2
- visionOS 26.2
- watchOS 26.2
Android SDK: Not Found
IDEs:
Android Studio: 2025.2 AI-252.28238.7.2523.14688667
Xcode:
version: 26.3/17C519
path: /usr/bin/xcodebuild
Languages:
Java:
version: 17.0.18
path: /opt/homebrew/Cellar/openjdk@17/17.0.18/libexec/openjdk.jdk/Contents/Home/bin/javac
Ruby:
version: 2.6.10
path: /usr/bin/ruby
npmPackages:
"@react-native-community/cli":
installed: 20.1.1
wanted: 20.1.1
react:
installed: 19.2.3
wanted: 19.2.3
react-native:
installed: 0.84.0
wanted: 0.84.0
react-native-macos: Not Found
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: true
newArchEnabled: true
iOS:
hermesEnabled: true
newArchEnabled: true
Stacktrace or Logs
N/A
MANDATORY Reproducer
https://github.com/robertying/rn84-mac-catalyst-build-error
Screenshots and Videos
No response
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
必須の再現手順と記載されている Catalyst のビルド手順から始め、次に ios/Pods 配下に生成された ReactNativeDependencies.xcframework、React.xcframework、hermesvm.framework のパスを調べます。それらの Catalyst framework のシンボリックリンクと bundle の配置場所を、issue で想定されている構成と比較します。修正済みの prebuilt framework がインストールされ、React Native プロジェクトが曖昧な bundle-format エラーなしで Mac Catalyst ターゲット向けにビルドできれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- ios, macos, react-native
- 領域
- build-system, mobile-dev
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 活発
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 48/100