Expo集成AWS Amplify APNs推送通知时出现依赖找不到错误
解决Amplify推送通知报错:
Notifications [Error: Unable to find @aws-amplify/rtn-push-notification. ] 针对你用Expo 49 + Amplify 5.3.11配置APNs推送时遇到的这个错误,以下是针对性的排查和解决步骤:
确认Expo原生模块支持
@aws-amplify/rtn-push-notification是原生模块,Expo Go无法加载这类自定义原生依赖。必须执行预构建生成原生项目文件:npx expo prebuild --clean之后用
npx expo run:ios启动项目,而非npx expo start(Expo Go模式)。校验依赖安装与版本兼容性
- 执行以下命令确认包已正确安装到项目根依赖:
如果输出显示包嵌套在其他依赖下,说明安装异常,需重新安装。npm list @aws-amplify/rtn-push-notification - 确保aws-amplify与rtn-push-notification版本匹配:Amplify 5.x系列需搭配1.x版本的rtn-push-notification,你当前的1.1.7理论上兼容5.3.11,但可尝试锁定更稳定的匹配版本,比如:
npm install @aws-amplify/rtn-push-notification@1.1.10 aws-amplify@5.3.11 --save-exact
- 执行以下命令确认包已正确安装到项目根依赖:
检查Amplify初始化代码
必须在Amplify全局配置前,显式导入并初始化PushNotification模块,否则Amplify无法识别原生模块:import { Amplify } from 'aws-amplify'; import { PushNotification } from '@aws-amplify/rtn-push-notification'; import awsconfig from './aws-exports'; // 先初始化推送模块 PushNotification.configure(); // 再配置Amplify全局 Amplify.configure(awsconfig);彻底清理并重建依赖
执行以下命令完成全量清理,避免缓存或依赖残留问题:rm -rf node_modules package-lock.json npm cache clean --force npx expo install --fix cd ios && pod install && cd ..iOS原生配置检查
预构建后打开Xcode项目:- 确认Pods目录下存在
@aws-amplify/rtn-push-notification,若缺失,重新执行pod install。 - 在项目的Signing & Capabilities中添加Push Notifications能力,并配置好对应的APNs证书。
- 确认Pods目录下存在
内容的提问来源于stack exchange,提问作者3st3b4n
相关产品推荐
相关产品推荐

