使用Xcode 15 Beta开发Flutter应用提交App Store遇ITMS-90338错误
解决ITMS-90338(非公开API使用)问题的额外排查步骤
检查Flutter版本兼容性:Xcode 15 Beta和旧版Flutter可能存在适配bug,先跑
flutter doctor看当前版本,建议升级到Flutter 3.13及以上(官方对Xcode 15支持较好的版本),执行flutter upgrade完成升级。排查第三方依赖的非公开API调用:非公开API大概率来自第三方package,而非Flutter本身。用下面的命令扫描iOS项目里的可疑代码:
grep -r "_" ios/ --include="*.h" --include="*.m" --include="*.swift"重点找
_开头的私有方法或类,定位到对应的package后,要么升级该package到最新修复版,要么替换成功能类似的替代包。手动校验Flutter.framework符号:如果重新生成的Flutter.framework仍有问题,用以下命令检查私有符号:
nm -gU ios/Flutter/Flutter.framework/Flutter | grep "_"要是发现私有符号,说明当前Flutter版本和Xcode 15 Beta不兼容,切换到官方明确支持Xcode 15的Flutter版本试试。
调整Xcode编译配置:打开
ios/Runner.xcworkspace,做这些设置:- 关闭
Enable Bitcode(Xcode 15已废弃Bitcode,开启可能引发兼容性问题) - 检查
Other Linker Flags,删掉任何涉及私有库或非公开API的参数 - 把Xcode Beta更到最新版,旧Beta版本可能自带bug,更新后再打包上传。
- 关闭
根据邮件提示精准定位:App Store Connect的邮件里通常会列出具体的非公开API名称,比如
_UIKeyboardLayoutAlignmentView这类,直接搜项目里哪里用到了这个API,针对性修复。
内容的提问来源于stack exchange,提问作者Sambhav jain
相关产品推荐
相关产品推荐

