iOS项目真机正常模拟器编译报错Undefined symbol: _OBJC_CLASS_$_AppsFlyerLib怎么办
报错具体含义
你遇到的Undefined symbol: _OBJC_CLASS_$_AppsFlyerLib是Xcode的链接阶段错误,意味着构建模拟器目标时,链接器无法找到AppsFlyerLib对应的Objective-C类符号,无法完成最终的可执行文件打包。
真机运行正常、模拟器报错的核心原因是当前集成的AppsFlyerLib缺少模拟器需要的架构切片,大概率是你用的M系列Mac默认运行arm64架构的模拟器,而你集成的AppsFlyer SDK版本低于v6.5.0,该版本之前的官方SDK没有提供arm64模拟器的架构支持,仅兼容x86_64模拟器和全架构真机。
可行解决方法
- 优先升级
AppsFlyerLib到v6.5.0及以上版本,新版本SDK使用XCFramework格式,默认同时支持真机、x86_64模拟器、arm64模拟器架构,升级后重新执行pod install即可 - 若暂时无法升级SDK,可在项目的Build Settings中找到
Excluded Architectures配置项,在模拟器对应的配置下添加arm64,强制模拟器以x86_64架构运行,该操作需要重启Xcode生效 - 如果升级或修改架构配置后仍报错,执行
pod deintegrate彻底移除现有Pod集成配置后,再重新执行pod install,避免旧的缓存配置残留影响构建 - 检查你的Podfile中是否存在针对模拟器剔除第三方库的配置,确认没有主动过滤掉
AppsFlyerLib的模拟器适配
内容的提问来源于stack exchange,提问作者Noah Iarrobino
相关产品推荐
相关产品推荐

