You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xcode iOS归档发布版React Native应用未触发网络访问权限弹窗问题

解决方案

第一步:解决Info.plist勾选target后的归档报错

你遇到的重复构建命令报错,是因为手动把Info.plist加入Target成员后,同时存在「处理Info.plist」和「复制Info.plist到包内」两个冲突的构建步骤,按以下操作修复:

  • 打开Xcode项目的Target设置,切换到Build Phases标签
  • 找到Copy Bundle Resources分组,删除其中的Info.plist条目
  • 重新归档即可解决该报错

第二步:修复Release构建下权限不弹出、搜不到投屏设备问题

Debug运行正常、归档后功能异常几乎都是构建配置差异导致,按优先级逐一排查:

1. 确认能力配置覆盖所有构建模式

  • 打开Target的Signing & Capabilities标签,顶部配置选择器切换为All Configurations
  • 确认Access WiFi Information能力处于勾选状态,没有仅对Debug生效
  • 若使用了Cast相关的自定义App Group等配置,也需确认对所有构建模式生效

2. 确认Info.plist配置覆盖所有构建模式

  • 打开Target的Build Settings标签,搜索INFOPLIST_FILE配置项
  • 确认Debug和Release配置指向的Info.plist路径完全一致,避免Release使用了缺失配置的plist文件
  • 额外补充Google Cast iOS14+要求的Bonjour服务配置到Info.plist:
<key>NSBonjourServices</key>
<array>
  <string>_googlecast._tcp</string>
  <string>_YOUR_GOOGLE_CAST_APP_ID._googlecast._tcp</string>
</array>

替换YOUR_GOOGLE_CAST_APP_ID为你实际使用的Cast应用ID。

3. 排查条件编译屏蔽了Cast相关逻辑

  • 检查项目中JWPlayer Cast模块初始化、权限申请相关代码,确认没有被__DEV__等Debug专属的条件判断包裹,导致Release构建时相关逻辑被裁剪
  • 建议在用户点击投屏按钮前,主动触发蓝牙和本地网络权限申请,避免SDK内部申请逻辑在Release优化下不生效:
    • 蓝牙权限:调用CBCentralManager的requestAlwaysAuthorization方法
    • 本地网络权限:调用相关API主动触发,iOS会自动弹出申请弹窗

4. 定位具体报错信息

  • 将AdHoc包安装到真机后,打开Xcode的Window > Devices and Simulators,选择对应设备查看控制台日志
  • 点击投屏按钮时筛选权限、Cast、JWPlayer相关关键词,可快速定位具体是缺少配置还是逻辑调用问题

内容的提问来源于stack exchange,提问作者JRedford

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 02:36:04