bitcoin-dot-org / BitcoinWalletMobile

A simple, well designed and easy to use mobile Bitcoin wallet. Compatible with both Android and iOS. Designed for newbies.
MIT License
21 stars 20 forks source link

Expose DevSettingsActivity only in Debug build #10

Open emanuelb opened 3 years ago

emanuelb commented 3 years ago

The DevSettingsActivity activity is exposed on all releases, as it's declared in main folder at:

https://github.com/bitcoin-dot-org/BitcoinWalletMobile/blob/893175f939fae2ef123342b120ed71ec44919af5/android/app/src/main/AndroidManifest.xml#L33

From react documentation at "Android (Java)" > "Configuring permissions": https://reactnative.dev/docs/integration-with-existing-apps#configuring-permissions

If you need to access to the DevSettingsActivity add to your AndroidManifest.xml:

This is only used in dev mode when reloading JavaScript from the development server, so you can strip this in release builds if you need to.

The source code of "DevSettingsActivity.java" contain comment about this issue:

https://github.com/facebook/react-native/blob/3b31e69e284074da72108edfb11e41ee74d7100e/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSettingsActivity.java#L14-L17

/**
 * Activity that display developers settings. Should be added to the debug manifest of the app. Can
 * be triggered through the developers option menu displayed by {@link DevSupportManager}.
 */

Fix: Declare DevSettingsActivity activity in ./android/app/src/debug/AndroidManifest.xml instead.