React Native 0.76.7新架构Swift项目iOS启动崩溃:TurboModuleRegistry无法找到'PlatformConstants'
我之前碰到过类似的新架构启动崩溃问题,给你几个实用的排查和解决方向,你可以一步步试:
检查新架构的核心配置是否完整
除了Podfile里设置fabric_enabled: true,还要确认ios/Podfile.properties.json里的"newArchEnabled"是否为true。如果这个文件配置不对,你可以先删掉它,然后重新执行pod install,让系统自动生成正确的配置文件。另外打开Xcode,在项目的Build Settings里搜索ENABLE_FABRIC和ENABLE_NEW_ARCHITECTURE,确保这两个选项都被设为YES,有时候局部配置会覆盖全局设置。修复Swift项目的TurboModule注册逻辑
因为用的是Swift模板,模块注册的细节很容易出问题。你可以打开AppDelegate.swift,检查模块注册的代码是否正确关联了PlatformConstants。比如确保你的模块注册表初始化时用了默认的模块列表提供者:import React class RCTAppDelegate: UIResponder, UIApplicationDelegate { var moduleRegistry: RCTModuleRegistry? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // 初始化模块注册表,确保包含PlatformConstants self.moduleRegistry = RCTModuleRegistry( moduleProvider: { moduleName in return RCTDefaultModuleListProvider().module(for: moduleName) }, lazilyDiscoveredModules: [] ) // ... 其他初始化代码 return true } }另外执行
pod update,确保所有新架构相关的Pods都更新到RN 0.76.7对应的版本,旧缓存很容易导致模块缺失。彻底清理缓存后重新构建
缓存问题在新架构里特别常见,你可以按这个顺序操作:- 在Xcode里执行
Product -> Clean Build Folder,然后找到Derived Data文件夹(Xcode偏好设置->Locations里能看到路径),直接删掉整个文件夹; - 执行
npx react-native clean清理RN的缓存,再重新安装依赖npm install; - 删除
ios/build文件夹,然后重新执行pod install,最后用npx react-native run-ios启动项目。
- 在Xcode里执行
检查RCTReactNativeFactory的配置
如果你手动配置了RCTReactNativeFactory,要确保它和新架构的TurboModuleRegistry正确配合,不要混用旧架构的桥接逻辑。比如工厂类初始化时要传入正确的moduleRegistry实例,而不是旧的RCTBridge对象。
备注:内容来源于stack exchange,提问作者추성우

