You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xcode 13.0编译RN应用报错No matching function for call to 'RCTBridgeModuleNameForClass'

修复方案

Xcode 13 强化了 Objective-C 与 C++ 混编场景下的类型校验规则,原有 Xcode 12.5 的补丁仅覆盖了两处源码修改,缺少对 RCTTurboModuleManager.mm 另一处调用点的适配,因此会继续抛出函数匹配失败的错误。

你只需要修改 Podfile 中的 post_install 段,新增一处替换规则即可,完整的修复代码如下:

post_install do |installer|
  flipper_post_install(installer)
  
  # Xcode 12.5 + 13 通用修复
  def find_and_replace(dir, findstr, replacestr)
    Dir[dir].each do |name|
        text = File.read(name)
        replace = text.gsub(findstr,replacestr)
        if text != replace
            puts "Fix: " + name
            File.open(name, "w") { |file| file.puts replace }
            STDOUT.flush
        end
    end
    Dir[dir + '*/'].each(&method(:find_and_replace))
  end

  find_and_replace("../node_modules/react-native/React/CxxBridge/RCTCxxBridge.mm",
  "_initializeModules:(NSArray<id<RCTBridgeModule>> *)modules", "_initializeModules:(NSArray<Class> *)modules")
  find_and_replace("../node_modules/react-native/ReactCommon/turbomodule/core/platform/ios/RCTTurboModuleManager.mm",
  "RCTBridgeModuleNameForClass(module))", "RCTBridgeModuleNameForClass(Class(module)))")
  # 新增Xcode 13专属适配规则
  find_and_replace("../node_modules/react-native/ReactCommon/turbomodule/core/platform/ios/RCTTurboModuleManager.mm",
  "RCTBridgeModuleNameForClass(strongModule))", "RCTBridgeModuleNameForClass(Class(strongModule)))")
end

修改完成后按以下步骤操作即可正常构建:

  • 保存 Podfile 文件,删除项目 iOS 目录下的 Podfile.lock 和 Pods 文件夹
  • 清空 Xcode 缓存:打开 Xcode 偏好设置 → Locations → 点击 DerivedData 右侧的小箭头进入文件夹,删除整个 DerivedData 目录
  • 在 iOS 目录下执行 pod install,完成后重新打开 .xcworkspace 文件构建项目即可

如果你的 React Native 版本在 0.64.2 及以上,官方已经内置了该问题的修复,可直接升级对应版本避免手动打补丁的后续兼容问题。

内容的提问来源于stack exchange,提问作者Fábio Lourenço

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 01:54:05