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

React Native 0.64在XCode运行时出现sharedApplication is not available错误求助

解决React Native 0.64在Xcode中运行时sharedApplication is not available错误

原因分析

React Native 0.64的核心库部分模块(如RCTLinkingManager、RCTPushNotificationManager)仍在使用[UIApplication sharedApplication]这个被高版本iOS SDK标记为受限/废弃的API,当用Xcode 13及以上版本编译时就会触发该错误。

修复方案

方案1:修改RN原生代码适配API

如果报错来自RN核心库,推荐用patch包修改:

  • 安装patch-package工具:
    npm install patch-package --save-dev
    
  • 找到node_modules/react-native/Libraries/LinkingIOS/RCTLinkingManager.m(或对应报错文件),将[UIApplication sharedApplication]的调用替换为兼容写法:
    UIApplication *application = [UIApplication sharedApplication];
    if ([application respondsToSelector:@selector(openURL:options:completionHandler:)]) {
      [application openURL:url options:options completionHandler:completion];
    } else {
      [application openURL:url];
    }
    
  • 生成并保存patch文件:
    npx patch-package react-native
    
  • 将生成的patches/react-native+0.64.x.patch提交到版本控制,其他开发者安装依赖后执行npx patch-package即可应用修复。

方案2:临时绕过编译错误

若暂时无法修改代码,可调整Xcode编译设置:

  • 打开Xcode项目,选中目标应用
  • 进入Build Settings,搜索Other C Flags
  • 添加-Wno-error=deprecated-declarations,将废弃API的警告转为非错误,允许编译通过

注意:此为临时方案,仅用于紧急调试,不建议长期使用

方案3:升级React Native版本(可选)

如果项目允许,升级到React Native 0.65及以上版本,这些版本已适配iOS SDK的API变更,移除了对sharedApplication的不安全调用。

内容的提问来源于stack exchange,提问作者S.Hashmi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 04:56:06