XCode中AgoraRTMWrapper是否必需?Unity集成Agora SDK上传App Store Connect报错咨询
问题解决说明
关于libAgoraRTMWrapper的必要性
如果你需要正常使用Agora RTM的实时消息相关功能,该组件为必需组件,它是Unity层与iOS原生RTM SDK交互的桥接封装层,直接移除会导致所有RTM功能完全不可用,不可直接删除。
对应报错的解决方案
- 修正文件类型配置
你遇到的「所在位置的文件类型不正确」「Swift支持无效」报错,大概率是Unity导出XCode工程时,libAgoraRTMWrapper.swift的文件类型被错误识别为资源文件。你可以在XCode中选中该文件,在右侧「Identity and Type」面板中将文件类型修改为Swift Source,同时确认该文件的Target Membership勾选的是你的主应用目标,没有被错误归类到Copy Bundle Resources阶段。 - 移除冗余的模拟器架构
提示wrapper适用范围包含iOS+iOS模拟器的问题,是因为SDK默认打包了x86_64模拟器架构,该架构不需要上传到App Store Connect。你可以在主应用Target的Build Settings中找到「Excluded Architectures」选项,在Release配置下针对Any iOS SDK添加x86_64架构即可。也可以导出工程后用lipo命令手动移除冗余架构,命令参考:lipo -remove x86_64 [libAgoraRTMWrapper文件的本地路径] -output [libAgoraRTMWrapper文件的本地路径] - 补全Swift支持配置
如果仍提示Swift支持无效,可在Build Settings中将「Always Embed Swift Standard Libraries」设置为Yes,该配置会自动打包对应版本的Swift标准库到应用包中,纯Unity导出的OC工程也可正常使用该配置,不会产生额外兼容问题。 - 持久化配置避免重复修改
你可以编写Unity PostProcessBuild构建后处理脚本,在Unity导出XCode工程时自动修改pbxproj配置,完成上述所有调整,不需要每次导出后手动修改。
内容的提问来源于stack exchange,提问作者chamon220
相关产品推荐
相关产品推荐

