升级Xcode 15后Widget扩展出现链接错误,如何排查修复?
解决Xcode 15 Widget扩展链接错误(Undefined symbols)的方法
1. 查看完整链接日志
Xcode默认会隐藏详细编译日志,你可以通过以下步骤找到具体未定义的符号:
- 选中Widget扩展的target,点击顶部菜单栏
Product>Build(或按Cmd+B) - 编译失败后,点击Xcode左侧的
Report Navigator(列表带箭头的图标) - 在报告列表中找到对应编译记录,展开
Link阶段的日志,就能看到具体缺失的符号信息
2. 检查依赖与符号可见性
- 核对依赖库:确认Widget扩展的
Build Phases>Link Binary With Libraries中,已添加所有需要的框架、静态库——主App里引入的库,Widget扩展不会自动继承,得手动添加 - 确认符号暴露:如果是自研代码,确保要给Widget调用的类、函数添加
public修饰符;如果是第三方库,检查是否有适配Xcode 15的版本,旧库可能需要重新编译
3. 清理缓存后重新编译
- 按
Cmd+Shift+K清理当前target的构建缓存 - 再按
Cmd+Option+Shift+K清理整个项目的全局缓存,之后重新执行Build
4. 调整Build Settings链接配置
- 查看Widget扩展的
Build Settings,把Dead Code Stripping临时改成NO,避免工具误删需要的符号 - 检查
Other Linker Flags,删除多余或错误的路径、参数引用
5. 统一主App与Widget的编译配置
确保主App和Widget扩展的Deployment Target、Architecture(如arm64)、Swift Version等配置完全一致,Xcode 15对配置不一致的兼容性要求更严格
内容的提问来源于stack exchange,提问作者Preem Palver2
相关产品推荐
相关产品推荐

