With the advent of Hermes on iOS, it would make sense to distribute Hermes bundles via CodePush. Right now CodePush creates and distributes non-bytecode (plain source) update bundles on iOS. Thus, theoretically, app performance upon installing such an update can degrade.
Browsing the current code for the command, I can see that hermesc can only be invoked for Android projects.
Please list the steps used to reproduce your issue.
appcenter release-react command for an iOS target. Wait until the bundle is created and uploaded.main.jsbundle contains minified JS source and not bytecode.If Hermes is enabled, the resulting update bundle is Hermes bytecode.
codepush release-reactDEBUG="appcenter-cli:*" before the command, for example, DEBUG="appcenter-cli:*" appcenter apps list. Include the logs here, don't forget to omit any personal/sensitive data.Good catch! Can't believe I didn't notice this before in my bundles.
I believe the best way to determine if Hermes is being used is by scanning the Podfile.lock for the string "hermes-engine", then just use hermesc as normal.
Even if the main focus should be iOS now (as a lot of people already switched to Hermes on iOS), this will also affect Windows and MacOS, as Hermes runs on those platforms too.
cc @eggli @azundo @andreidubov
Hey all,
Yes, we have it in the roadmap, but so far we can not give any ETA.
I'm thinking... Is it possible to at least highlight the fact that the aforementioned command will not build Hermes bytecode bundles? Users will then know that they have to manually build and upload the Hermes bundle.
I stumbled upon this quirk accidentally, and I guess not many people will find it on their own without a caveat.
It seems that with 0.65 even more people will be migrating to Hermes, especially with that sweet new GC implementation.