React Native 0.70 iOS构建上传App Store Connect遇非公开选择器错误求配置原因
解决React Native 0.70 + Xcode 14上传App Store Connect时的非公开选择器错误
错误详情
上传后触发的错误提示:
The app references non-public selectors in Payload/xyz_app6.app/xyz_app6: getAuthorizationStatus:, onSuccess:
可能关联的Xcode配置及排查方向
第三方依赖的隐式调用排查
即便未手动启用定位或授权功能,React Native的部分原生依赖(如第三方模块、底层库)可能在代码中隐式引用了这些私有选择器。可在终端执行以下命令扫描二进制文件,定位问题来源:nm -u Payload/xyz_app6.app/xyz_app6 | grep getAuthorizationStatusBuild Settings优化
- 确认
Dead Code Stripping设置为YES(路径:Build Settings > Linking > Dead Code Stripping),该配置会移除未实际调用的冗余代码,可能清理掉误引用的私有选择器。 - 检查
Other Linker Flags配置,避免使用-all_load或-force_load这类强制加载所有代码的参数,可替换为-ObjC以减少不必要的代码加载。
- 确认
Archive构建规范
必须使用Xcode的Archive功能构建上传包,且确保Archive时的Build Configuration设置为Release。Debug构建包含大量未优化的代码引用,更容易触发这类检测警告。Info.plist冗余权限清理
检查Info.plist文件,移除未实际使用的权限声明(如定位相关的NSLocationWhenInUseUsageDescription等键值),避免Apple检测工具误判。Pods依赖重置
执行以下命令重新安装Pods依赖,确保依赖版本与React Native 0.70、Xcode 14兼容:pod deintegrate pod install
内容的提问来源于stack exchange,提问作者user938363
相关产品推荐
相关产品推荐

