React Native集成Amazon Chime iOS端调用startMeeting崩溃求助
React Native集成Amazon Chime SDK iOS端崩溃解决方法
问题概述
Android端运行正常,iOS调用以下代码时崩溃:
NativeFunction.startMeeting(meetingResponse.JoinInfo.Meeting.Meeting, meetingResponse.JoinInfo.Attendee.Attendee);
崩溃日志显示:[AppInfo setAppVersionName:]: unrecognized selector sent to instance 0x281888aa0,崩溃触发点在iOS桥接代码的[meetingSession.audioVideo startAndReturnError:&error]行。
解决方案
1. 修正AppInfo初始化的字段差异
崩溃核心原因是iOS端AppInfo类不存在setAppVersionName:方法——这是Android SDK的字段,iOS SDK对应的字段是appVersion。
- 在iOS桥接代码中创建
AppInfo时,使用iOS SDK的正确初始化方式:AppInfo *appInfo = [[AppInfo alloc] initWithAppName:@"你的应用名称" appVersion:@"你的应用版本号"]; - 避免直接复用Android端的参数结构映射字段,严格区分双端SDK的API差异。
2. 检查Chime SDK版本兼容性
- 确认Podfile中
AmazonChimeSDK和AmazonChimeSDKMedia的版本为官方稳定版,避免版本不匹配导致的方法缺失问题。 - 执行
pod update AmazonChimeSDK AmazonChimeSDKMedia更新到最新兼容版本。
3. 验证参数传递完整性
- 在iOS桥接的
startMeeting方法中,打印传入的Meeting和Attendee参数,确认字段结构符合iOS SDK要求:- (void)startMeeting:(NSDictionary *)meetingDict attendee:(NSDictionary *)attendeeDict { NSLog(@"Meeting参数: %@", meetingDict); NSLog(@"Attendee参数: %@", attendeeDict); // 后续初始化逻辑 } - 确保
Meeting中的meetingId、mediaPlacement,以及Attendee中的attendeeId、externalUserId等关键字段无缺失或格式错误。
4. 清理缓存并重建项目
- 执行
pod deintegrate && pod install彻底清理并重新安装依赖 - 在Xcode中执行
Product -> Clean Build Folder清理构建缓存 - 重启Metro服务和Xcode,避免旧代码缓存干扰。
5. 确认权限配置(辅助检查)
虽然当前崩溃与权限无关,但确保Info.plist中已添加必要权限描述:
<key>NSCameraUsageDescription</key> <string>需要访问摄像头进行视频会议</string> <key>NSMicrophoneUsageDescription</key> <string>需要访问麦克风进行语音会议</string>
内容的提问来源于stack exchange,提问作者Pawan Kumar
相关产品推荐
相关产品推荐

