-
Notifications
You must be signed in to change notification settings - Fork 647
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Interaction with CodePush #36
Comments
IMO, it should be. OTA is one of the USP of RN. And as far as i now, OTA bundle is essentially a zip file, so it can contain image assets and bytecode file. |
We don't currently have an official strategy or integration with Code Push. However, nothing stops you from pushing your own pre-compiled bytecode files -- they essentially correspond 1:1 to JavaScript bundle files and can be loaded and managed in much the same way. When given a file, Hermes will examine the header to determine whether it's JS or bytecode and load it accordingly, so you don't have to change anything about how the file is loaded or even which extension it has. There is one significant caveat though: a bundle compiled with one version of Hermes will not run on a different version. To maximize efficiency and productivity, we don't try to maintain forward or backward compatibility between versions. If you want to decouple app and code releases through code pushes, you should either stick to a specific version of Hermes, or have a strategy for pushing different bytecode to each applicable Hermes version. (Specifically, the compiler encodes a bytecode version number in the bundle that the engine verifies on load). None of this applies to standard apps that just include their bytecode in the APK. In this case you're free to upgrade Hermes at any time since the bytecode will always be compiled with the relevant version. |
@willholen Thanks for the update. |
Just a head up, I've created a PR to add Hermes support on CodePush CLI here, feel free to comment: |
Hello,
Is Hermes usable with Microsoft's Code Push? Or does the pre-compilation depend on JS assets being in the iOS/Android binary?
The text was updated successfully, but these errors were encountered: