描述
在
react-native/packages/react-native/scripts/react-native-xcode.sh
第17行到第22行中:
| | fornumin 0 1 2 3 4 5 6 7 8;do |
| | IP=$(ipconfig getifaddr en${num}||echo"") |
| | if [ !-z"$IP" ];then |
| | break |
| | fi |
| | done |
该脚本通过一个接口列表查找IP,使用 ipconfig getifaddr
。
在
react-native/packages/react-native/scripts/react-native-xcode.sh
第23行到第25行中:
| | if [ -z"$IP" ];then |
| | IP=$(ifconfig | grep 'inet '| grep -v ' 127.'| grep -v ' 169.254.'|cut -d\ -f2 | awk 'NR==1{print $1}') |
| | fi |
如果前一个搜索没有找到任何内容( IP
为空),则使用较宽松的搜索,grep
对 inet
进行ping并丢弃本地链接地址( 127.x
和 169.254.x
)。
我遇到的情况是,我的 en0
具有本地链接地址( 169.254.36.33
),因此作为第一个搜索无法过滤出这些地址,这就是在
react-native/packages/react-native/scripts/react-native-xcode.sh
第27行中写入 63e893d
| | echo"$IP">"$DEST/ip.txt" |
的原因,因此我的iOS设备无法连接到metro示例。
重现步骤
React Native版本
0.74.1
受影响的平台
运行时-iOS
npx react-native info
的输出
-
堆栈跟踪或日志
-
可复现步骤
截图和视频
- 无响应*
6条答案
按热度按时间byqmnocz1#
uelo1irk2#
xfyts7mz3#
如果我们需要以不同的方式修复iOS上的这个问题,请发送邮件至cipolleschi@robhogan.et al。
7tofc5zh4#
@msbit,你的问题只出现在物理设备上,对吗?在模拟器上它可以正常工作,是吗?
l5tcr1uw5#
@cipolleschi 我没有仔细检查,但我猜想在:
react-native/packages/react-native/scripts/react-native-xcode.sh
第16行的63e893d
| | if !"$SKIP_BUNDLING_METRO_IP"&&"$CONFIGURATION"=*Debug*&&!"$PLATFORM_NAME"==*simulator ;then |
会在模拟器下排除这种行为。
eoigrqb66#
是的,这是可能的。@robhogan你能拿这个吗?我下周要休假。否则我可以回来后再处理这件事。