App reloads when pressing "R" on Physical iPad Keyboard
Summary
When using a dev client, pressing the R key on a physical keyboard connected to an iPad reloads the application. This happens even when the focus is on a text field. I haven't found a way to disable this.
We use iPad keyboards a lot for development as it improves the experience but it's difficult to code and test the app when typing is involved as pressing the "R" key causes the application to reload.
Moving the reload to Cmd + R would resolve this issue – this would also match the dev menu Cmd + D.
Thanks. Reece
Managed or bare workflow?
managed
What platform(s) does this occur on?
iOS
Package versions
expo: 47.0.0 expo-dev-client: 2.0.1
Environment
expo-env-info 1.0.5 environment info:
System:
OS: macOS 12.3.1
Shell: 5.8 - /bin/zsh
Binaries:
Node: 16.13.1 - /usr/local/bin/node
Yarn: 1.22.19 - /opt/homebrew/bin/yarn
npm: 8.15.1 - /usr/local/bin/npm
Watchman: 2022.08.15.00 - /opt/homebrew/bin/watchman
Managers:
CocoaPods: 1.11.3 - /opt/homebrew/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 21.4, iOS 15.5, macOS 12.3, tvOS 15.4, watchOS 8.5
IDEs:
Xcode: 13.4.1/13F100 - /usr/bin/xcodebuild
npmPackages:
@expo/webpack-config: ^0.17.2 => 0.17.3
babel-preset-expo: ~9.2.1 => 9.2.2
expo: ^47.0.0 => 47.0.8
react: 18.1.0 => 18.1.0
react-dom: 18.1.0 => 18.1.0
react-native: 0.70.5 => 0.70.5
react-native-web: ~0.18.7 => 0.18.10
Expo Workflow: managed
Reproducible demo
- Build and open a dev-client on an iPad that has a physical keyboard connected
- Press "R" on the keyboard
- The dev-client reloads
- Open an application in the dev-client
- Press "R" on the keyboard
- The application in the dev-client reloads
This happens everywhere in the dev client. Pressing R on the main dev client interface reloads the dev client. Pressing R after you've loaded an application reloads the application
Stacktrace (if a crash is involved)
No response
Thank you for filing this issue! This comment acknowledges we believe this may be a bug and there’s enough information to investigate it. However, we can’t promise any sort of timeline for resolution. We prioritize issues based on severity, breadth of impact, and alignment with our roadmap. If you’d like to help move it more quickly, you can continue to investigate it more deeply and/or you can open a pull request that fixes the cause.
Have been running into this issue on iPhone as well for the past 2 weeks -- never used to happen prior. Pressing R always reloads it, making it very difficult to test and text field inputs.
I'm seeing this issue in the iOS Sim, expo-dev-client (1.3.1), while typing "R" into an input box with desktop keyboard
I am also seeing this issue
same problem with "expo": "^47.0.6" and "expo-dev-client": "~2.0.1".
Likely culprit: https://github.com/expo/expo/pull/14590 See also https://github.com/expo/expo/pull/14202
Possibly fixed in 2.0.2: https://github.com/expo/expo/pull/20107
Might also be fixed in https://github.com/expo/expo/pull/20209
tracked in https://github.com/expo/expo/issues/19911 which is marked closed, but I am replicating it in Expo 46 & Xcode 14.2
this is not fixed with XCode 14.3 either
Still broken running Expo 48 on simulated iPhone 14 iOS 16.4. Wildly irritating. Why couldn't the cmd-r have been swapped for a cmd-shift-r or a ctrl-r instead or just r?
Lil hack for anyone running into this problem. If you are typing words with r in them, just roll the previous letter into the r, aka make sure you hold down the letter in front of the r until you've pressed the r. If there is no 'all-keys-up' gap between the letter just typed and the r, it doesn't trigger.
Eg. to type the word 'try', type
<t-down> <r-down> <t-up> <r-up> <y-down> <y-up>, or
<t-down> <r-down> <r-up> <t-up> <y-down> <y-up>
Note that for whatever reason, holding down the letter two-before the r will not work.
Ie. typing 'oar' like this causes a reload:
<o-down> <a-down> <a-up> <r-down> <o-up> <r-up>