hmm.. ok.. here's exactly what I do.
I use this tool:
https://www.ambiera.com/irrfuscator/index.html
By default irrFuscator will obfuscate everything in the source tree. By adding tags that the tool recognizes, I can flag code NOT to be obfuscated. It also supports global settings to not obfuscate certain things, but I like to use this method as much as possible to have direct control of the code I want obfuscated. This allows dynamic vars, classes, certain functions, etc to not be affected which could break the compiling process. So.. if I don't want a block of code obfuscated...
// IRRFUSCATOR_ignorebegin
// IRRFUSCATOR_noStringEncryptBegin
.
. code or full class, etc
.
// IRRFUSCATOR_ignoreend
// IRRFUSCATOR_noStringEncryptEnd
irrFuscator also allows you to point to SWC files your project will use and it won't obfuscate those.
So like I said earlier, I don't worry about obfuscation until I have a release ready. Then I just create a copy of the source folder and call it something like: "release_obfuscate" and then run irrFuscator on it. From that point on it's just another source build, I build the swf, then package the apk as usual. Seriously...I'm assuming this is the standard way everyone does it. I can't imagine another way of doing it. You could automate things with command line, etc, etc, but it's just a simple drag / copy rename source folder / obfuscate / build swf / package apk.
Now certainly there is the issue of should you even worry about obfuscating your code in 2020? Since our frickin SWF files are so easily accessible I do like some level of obfuscation for an attempt of some piece of mind. However.. I don't obfuscate any of my low level custom engine code, but I do obfuscate game logic.