Fix destination in buildProject
#2706
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
If you run
It will result in Xcodebuild building for the simulator instead of a physical iOS device:
This PR fixes that so the outcome instead becomes
This is achieved by fixing the destination in
buildProject
when running with device arg but no specific UDID orargs.destination
. Also movedevice
property from the run command'sFlagsT
to the build command'sBuildFlags
because that is where it was actually described (insidegetBuildOptions
).See more discussion with @thymikee here:
#2517 (comment)
This PR is largely a restructuring of the existing complex ternary conditions into a more readable if-else-condition with the addition of a missing check for
isDevice
.Test Plan
Unfortunately, there are no tests for the
--device
option (which is probably also why this feature broke at some point), but I see it as out of scope for this PR to correct that, so testing will have to be done manually by connecting a physical iOS device and then runAnd validate that it actually builds, installs and launches the app on the iOS device.
Checklist
react-native
checkout (instructions).