React Native项目Xcode归档报错:No matching function for call to 'RCTAppSetupPrepareApp'
解决Xcode14.2归档React Native 0.71.7时
RCTAppSetupPrepareApp报错问题 这个报错是因为AppDelegate中RCTAppSetupPrepareApp函数的调用签名与React Native 0.71.x的要求不匹配,或是缓存、配置冲突导致的,以下是可行的解决步骤:
1. 修复AppDelegate中的函数调用
React Native 0.71.x的RCTAppSetupPrepareApp要求必须传入应用实例和配置block,检查你的AppDelegate.mm(或.m)文件,确保调用格式正确:
#import "AppDelegate.h" #import <React/RCTAppSetupUtils.h> // 其他必要import @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { RCTAppSetupPrepareApp(application, ^(RCTAppSetupBuilder *builder) { // 若无需额外配置,此处可留空,但block必须存在 // 示例配置:builder.moduleName = @"YourAppName"; }); // 其他原有代码 return YES; } @end
如果之前的调用缺少block参数,补上即可解决签名不匹配的问题。
2. 清理缓存并重新构建
缓存冲突也可能引发这类编译错误,执行以下操作:
- Xcode中依次执行:
Cmd+Shift+K清理构建产物,Cmd+Option+Shift+K清除构建文件夹 - 终端中运行RN缓存清理命令:
rm -rf node_modules npm install cd ios && pod install --repo-update cd .. npx react-native clean
3. 检查Xcode配置
- 确认Xcode项目的
Deployment Target设置为iOS 11.0或更高版本(React Native 0.71.x的最低要求) - 检查
Build Settings中的Other C Flags和Other Linker Flags,确保没有错误的自定义配置,若不确定可暂时重置为RN默认配置
4. 切换AppDelegate文件类型
React Native 0.71.x默认使用.mm文件(支持Objective-C++混编),如果你的AppDelegate是.m格式,尝试将其重命名为.mm,并确保Xcode中文件类型识别正确。
完成以上步骤后,先尝试在Xcode中运行项目确认无编译错误,再执行Archive操作即可正常完成归档。
内容的提问来源于stack exchange,提问作者Manish Sharma
相关产品推荐
相关产品推荐

