Expo SDK45 Bare工作流iOS构建报EXUpdatesControllerRegistry找不到错误
问题描述
使用Expo构建应用预览版本时触发iOS端编译报错,错误信息为:cannot find 'EXUpdatesControllerRegistry' in scope
问题已阻塞构建流程较长时间,暂未定位到明确根因。
环境信息
- EXPO SDK版本:45
- 目标构建平台:iOS
- 工作流类型:BARE(裸工作流)
修复方案
该问题为SDK45裸工作流iOS端的常见依赖同步问题,核心原因是expo-updates版本与SDK版本不匹配、原生依赖未正确同步,或是AppDelegate内缺失对应的导入与注册逻辑,按以下步骤操作即可修复:
- 对齐
expo-updates版本至SDK45适配版本
SDK45对应的expo-updates稳定适配版本为0.13.4,在项目根目录执行对应包管理命令安装正确版本:# npm用户执行 npm install expo-updates@~0.13.4 # yarn用户执行 yarn add expo-updates@~0.13.4 - 清理并重新安装iOS端Pods依赖
进入iOS原生项目目录,清理旧依赖后重新拉取最新版本依赖:cd ios pod deintegrate pod install --repo-update - 核对AppDelegate文件配置
打开iOS项目下的AppDelegate.m(或AppDelegate.mm)文件做两项检查:- 确认文件头部存在expo-updates的头文件导入,缺失则补上:
#import <EXUpdates/EXUpdatesControllerRegistry.h> - 确认
application:didFinishLaunchingWithOptions生命周期方法内存在控制器注册逻辑,缺失则在方法靠前位置补上:[EXUpdatesControllerRegistry registerController];
- 确认文件头部存在expo-updates的头文件导入,缺失则补上:
- 清理构建缓存后重新编译
打开Xcode使用快捷键Cmd + Shift + K清理旧构建产物,再重新触发构建即可。
内容的提问来源于stack exchange,提问作者Relie Essom
相关产品推荐
相关产品推荐

