-
Notifications
You must be signed in to change notification settings - Fork 928
Fix destination in buildProject
#2706
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Fix destination in buildProject
#2706
Conversation
Fix: Fix destination in buildProject when running with device arg but no specific UDID or args.destination
buildProject
Hi @thymikee |
const isDevice = args.device; | ||
let destination = ''; | ||
if (udid) { | ||
destination = `id=${udid}`; | ||
} else if (isDevice) { | ||
destination = 'generic/platform=iOS'; | ||
} else if (mode === 'Debug') { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you move this logic further down so it's not tied to the simulatorDest
logic below?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't want to mess too much around with the previous logic, so my if-else is more or less a more verbose version of the previous ternary condition with the addition of an isDevice
check.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
previous logic would execute this branch regardless of the mode
. I'd like to keep that behavior
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Like this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If not please provide a code suggestion and I would be happy to apply it :)
Review comment
newline
fix lint
fix lint
fix lint
@thymikee For some reason there were some lint issues in files that I didn't touch in this PR. However, I fixed them to make the lint CI pass. The E2E tests that are failing does not seem to be related to this PR. |
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).