It's July 2020.
The pending question is: If my flutter app requires secret string to operate, say an API-key, then what strategy would prevent a malicious party from being able to extract this API-key from the published app?
I found some discussion threads on this subject, but none seem to arrive at an answer.
Use flutter_secure_storage
I don't think that works. I can use this to pass user input to Keychain/Keystore where it will remain forever safe. But unless I personally type the API key into each installation of my app, this can't be used for storing an API-key... without the API-key being in the code/assets
Store the API key on a Backend server, only pass results to app
Well that just creates the same problem with extra steps. My Vendor API-key is now safe on my backend server. But what ever 'key' I am using to police data requests from my backend server ... well that needs to be in the flutter code/assets
Use a firebase remote config
firebase says don't do that:
Don't store confidential data in Remote Config parameter keys or parameter values. It is possible to decode any parameter keys or values stored in the Remote Config settings for your project.
Ok, so that's a couple of ways that I think do not work. Is there actually a strategy that does work?