react-native-macos/scripts
Richard Hyatt 4a5a909264 iOS build - en0 and en1 used when generating ip.txt file (#25462)
Summary:
When `en0` is not assigned and `en1` is in use along with another interface present on the machine that uses a self-assigned address (169.254.xxx.xxx), the ip.txt file contains the self-assigned address. This causes the app reload/debug actions to fail when deployed to a physical device. see https://github.com/facebook/react-native/issues/25460

Code change looks at the value assigned to `en1` if `en0` is not set. If `en1` is not available on the machine or not set, then it will be empty. If both `en0` and `en1` are not set, the existing code was modified exclude addresses that are self-assigned, as they will most likely be unavailable to the connected device (iPhone, iPad, etc.).

## Changelog

[Internal] [Fixed] - en0 and en1 are used when generating the ip.txt file for iOS device debug builds
Pull Request resolved: https://github.com/facebook/react-native/pull/25462

Test Plan:
execute `ifconfig`:

```
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
	options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP>
	inet 127.0.0.1 netmask 0xff000000
	inet6 ::1 prefixlen 128
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
	nd6 options=201<PERFORMNUD,DAD>
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
XHC20: flags=0<> mtu 0
XHC0: flags=0<> mtu 0
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	options=10b<RXCSUM,TXCSUM,VLAN_HWTAGGING,AV>
	ether 38:f9:d3:0d:aa:fe
	nd6 options=201<PERFORMNUD,DAD>
	media: autoselect (none)
	status: inactive
en2: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
	options=60<TSO4,TSO6>
	ether 42:00:84:a8:f6:00
	media: autoselect <full-duplex>
	status: inactive
en3: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
	options=60<TSO4,TSO6>
	ether 42:00:84:a8:f6:01
	media: autoselect <full-duplex>
	status: active
bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	options=63<RXCSUM,TXCSUM,TSO4,TSO6>
	ether 42:00:84:a8:f6:00
	inet6 fe80::e:80be:b322:79b7%bridge0 prefixlen 64 secured scopeid 0x9
	inet 169.254.209.63 netmask 0xffff0000 broadcast 169.254.255.255
	Configuration:
		id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
		maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
		root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
		ipfilter disabled flags 0x2
	member: en2 flags=3<LEARNING,DISCOVER>
	        ifmaxaddr 0 port 7 priority 0 path cost 0
	member: en3 flags=3<LEARNING,DISCOVER>
	        ifmaxaddr 0 port 8 priority 0 path cost 0
	nd6 options=201<PERFORMNUD,DAD>
	media: autoselect
	status: active
ap1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
	ether 3a:f9:d3:9a:14:05
	media: autoselect
	status: inactive
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	ether 38:f9:d3:9a:14:05
	inet6 fe80::1444:113e:d65:5fb3%en1 prefixlen 64 secured scopeid 0xb
	inet 192.168.1.115 netmask 0xffffff00 broadcast 192.168.1.255
	nd6 options=201<PERFORMNUD,DAD>
	media: autoselect
	status: active
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
	ether 0a:f9:d3:9a:14:05
	media: autoselect
	status: inactive
awdl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1484
	ether 6a:fe:9d:f0:39:3f
	inet6 fe80::68fe:9dff:fef0:393f%awdl0 prefixlen 64 scopeid 0xd
	nd6 options=201<PERFORMNUD,DAD>
	media: autoselect
	status: active
utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 2000
	inet6 fe80::c992:4ed:9399:85bc%utun0 prefixlen 64 scopeid 0xe
	nd6 options=201<PERFORMNUD,DAD>
utun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380
	inet6 fe80::f5de:860a:fd07:ee87%utun1 prefixlen 64 scopeid 0xf
	nd6 options=201<PERFORMNUD,DAD>
utun2: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380
	inet6 fe80::3115:b6a0:6625:23ee%utun2 prefixlen 64 scopeid 0x11
	nd6 options=201<PERFORMNUD,DAD>
en5: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	ether e2:33:8e:95:93:9b
	inet6 fe80::cea:8f7a:b379:ebcd%en5 prefixlen 64 secured scopeid 0x10
	inet 169.254.167.11 netmask 0xffff0000 broadcast 169.254.255.255
	nd6 options=201<PERFORMNUD,DAD>
	media: autoselect (100baseTX <full-duplex>)
	status: active
```

execute `ipconfig getifaddr en0`:  (produces nothing)

execute `ipconfig getifaddr en1`:
```
192.168.1.115
```

execute `ipconfig getifaddr en99`:  (produces nothing - non-existent case)

existing code `ifconfig | grep 'inet ' | grep -v ' 127.' | cut -d\   -f2  | awk 'NR==1{print $1}'` yields:

```
169.254.209.63
```

modified code ` ifconfig | grep 'inet ' | grep -v ' 127.' | grep -v ' 169.254.' | cut -d\   -f2  | awk 'NR==1{print $1}'` yields:

```
192.168.1.115
```

Differential Revision: D16099639

Pulled By: cpojer

fbshipit-source-id: bd480a5f638efc58611d22cef4ba5193052b713d
2019-07-03 02:39:49 -07:00
..
circleci Bots cleanup, avoid leaving inline reviews when N>5 (#24923) 2019-05-21 19:38:54 -07:00
versiontemplates Update copyright headers to yearless format 2018-09-11 15:33:07 -07:00
.packager.env Move YGStyle to seperate file and add constructors 2018-02-20 05:55:36 -08:00
.tests.env Use Xcode 10.2.0 and iOS 12.2 in iOS tests (#24572) 2019-04-24 09:33:17 -07:00
android-e2e-test.js Fix ios/android e2e tests (#24974) 2019-05-21 05:44:29 -07:00
android-setup.sh Bump Android NDK to r19c (#25140) 2019-06-04 13:59:36 -07:00
autolink-ios.rb TM iOS: Set up CocoaPods specs for the TM specs 2019-07-01 15:20:01 -07:00
bump-oss-version.js Adjust test manual e2e script to work with new init (#24583) 2019-04-25 02:03:10 -07:00
generate-rncore.sh Fix rncore generation for React-Fabric.podspec following 98b03fa (#25437) 2019-07-01 03:15:54 -07:00
ios-configure-glog.sh Upgrade folly to v2018.10.22.00 for iOS (#21976) 2018-10-29 12:13:11 -07:00
ios-install-third-party.sh Allow arbitrary location for third-party iOS dependency cache 2019-04-30 09:49:14 -07:00
launchPackager.bat Use latest React Native CLI (#24517) 2019-04-24 05:09:10 -07:00
launchPackager.command macOS : request interactive input when killing the packager (#19663) 2019-02-24 22:48:17 -08:00
node-binary.sh Fix: use NODE_BINARY when starting packager (#24156) 2019-04-10 07:39:23 -07:00
objc-test.sh Use CocoaPods-based RNTesterPods for iOS tests (#25416) 2019-06-28 19:18:10 -07:00
packager.sh Use CocoaPods-based RNTesterPods for iOS tests (#25416) 2019-06-28 19:18:10 -07:00
process-podspecs.sh Update copyright headers to yearless format 2018-09-11 15:33:07 -07:00
publish-npm.js Deploy to npm on tagged commits only (#21250) 2018-09-22 09:16:58 -07:00
react-native-xcode.sh iOS build - en0 and en1 used when generating ip.txt file (#25462) 2019-07-03 02:39:49 -07:00
run-android-ci-instrumentation-tests.js Update copyright headers to yearless format 2018-09-11 15:33:07 -07:00
run-android-emulator.sh Update copyright headers to yearless format 2018-09-11 15:33:07 -07:00
run-android-local-integration-tests.sh Use latest React Native CLI (#24517) 2019-04-24 05:09:10 -07:00
run-android-local-unit-tests.sh Update copyright headers to yearless format 2018-09-11 15:33:07 -07:00
run-ci-e2e-tests.js Cache CocoaPods specs-repo (#25095) 2019-05-31 16:50:15 -07:00
run-ci-javascript-tests.js Add react-native-oss-e2e job to Sandcastle, running JavaScript e2e tests from open source 2019-04-15 11:07:54 -07:00
run-instrumentation-tests-via-adb-shell.sh Migration of RN-Android OSS tests to Android X 2019-03-17 08:13:30 -07:00
set-rn-template-version.js Adjust test manual e2e script to work with new init (#24583) 2019-04-25 02:03:10 -07:00
sync-css-layout.sh Clean up instances of scripts/signedsource.py 2019-03-14 13:42:27 -07:00
test-manual-e2e.sh Unify "Hot Reloading" and "Reload-on-Save" into "Fast Refresh" 2019-06-24 13:54:39 -07:00
try-n-times.js Fix linting issues (#22062) 2018-11-01 14:29:16 -07:00
validate-android-device-env.sh Use ShellCheck (#19681) 2018-09-28 17:03:24 -07:00
validate-android-sdk.sh Update copyright headers to yearless format 2018-09-11 15:33:07 -07:00
validate-android-test-env.sh fix validate-android-test-env.sh (#22961) 2019-01-14 10:54:18 -08:00
validate-ios-test-env.sh Update copyright headers to yearless format 2018-09-11 15:33:07 -07:00