升级Xcode 14.0后Flutter应用App Store Connect提交遇非公开选择器错误
Xcode 14.0 应用引用非公开选择器报错的解决办法
错误详情
打包或提交应用时触发以下错误:
应用在Payload/Runner.app/Runner中引用了非公开选择器:fontWeight、relativeSize、spanArray、spanArray_Count、strikeThrough、underline

解决步骤
1. 定位调用来源
用Xcode的「Find in Project」搜索这些选择器名称,区分调用来自自研代码还是第三方依赖库。
2. 替换私有API为公开实现
如果是自研代码调用,直接替换成苹果官方公开API:
fontWeight→ 改用UIFont的weight属性strikeThrough/underline→ 改用NSAttributedString.Key.strikethroughStyle、NSAttributedString.Key.underlineStyle设置富文本样式relativeSize→ 通过计算字体大小比例实现(比如UIFont.systemFont(ofSize: baseSize * 1.1))spanArray相关调用 → 使用NSAttributedString的公开方法处理富文本片段拆分
3. 处理第三方依赖
如果调用来自第三方库:
- 优先升级库到最新版本,多数主流库会适配Xcode 14并移除私有API调用
- 若库无更新,可fork仓库修改源码替换私有API,或者更换功能类似的合规库
- 不建议用关闭检测的方式临时绕过,苹果审核时可能触发拒绝,优先修复代码
4. 验证修复
清理项目(Cmd+Shift+K)后重新构建、打包,确认错误消失
内容的提问来源于stack exchange,提问作者Sheetal Savani
相关产品推荐
相关产品推荐

