Skip to content
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

Support for Hermes on iOS (RN 0.64) #1986

Closed
mrousavy opened this issue Nov 23, 2020 · 19 comments
Closed

Support for Hermes on iOS (RN 0.64) #1986

mrousavy opened this issue Nov 23, 2020 · 19 comments

Comments

@mrousavy
Copy link

The first release candidate of 0.64 relased (React Native 0.64-rc0), which includes support for using the Hermes JS Executor on iOS.

While it's still a pre-release, it makes sense to support it once 0.64 officially releases, as now CodePush does not work with hermes enabled on iOS.

Is this already planned?

@mrousavy
Copy link
Author

Of course the appcenter codepush command needs to be able to create the Hermes bundle on iOS first, so I've created an issue for that here: microsoft/appcenter-cli#1164

@gilbertl
Copy link

gilbertl commented Jan 13, 2021

Our app is on rc64-2 with Hermes enabled on iOS. I just made a codepush OTA update to our app and it worked perfectly.

What am I missing?

@mrousavy
Copy link
Author

@gilbertl how did you create the bundle?

@gilbertl
Copy link

We run

appcenter codepush release-react -d #{ENV['IOS_CODEPUSH_DEPLOYMENT_NAME']} -a #{ENV['APPCENTER_USERNAME']}/#{ENV['IOS_APPCENTER_APP_ID']} --target-binary-version \"#{targetVersion}\" --description \"#{release_notes}\" --disable-duplicate-release-error

to bundle and release the update

@a-eid
Copy link

a-eid commented Mar 12, 2021

@mrousavy could you please let us know if this works for you ( with hermes enabled on IOS ) ?

@mrousavy
Copy link
Author

Works for me now. Not sure what the original issue was, maybe I had a weird node version.

@ivanmoskalev
Copy link

ivanmoskalev commented Apr 28, 2021

@mrousavy @gilbertl The bundle that gets built is an old text-based jsbundle and not Hermes bytecode.

@mrousavy
Copy link
Author

@ivanmoskalev can you elaborate? How did you find that out? Does it still run when it's text-based?

@ivanmoskalev
Copy link

ivanmoskalev commented Apr 29, 2021

@mrousavy It does run, Hermes supports running JS source.

How I found this out: in the Appcenter portal there is a button that allows you to download the Codepush update bundle that gets served by the Appcenter to your users. You can access by clicking on a specific CP deployment.

I pressed it and inspected the iOS Codepush bundle manually. It contained JS source.

When I checked the Android Codepush bundle the same way, it had Hermes bytecode.

Then I checked appcenter-cli sources and found out that the algorithm that determines whether the release-react should run hermesc when building is implemented only for Android.

@mrousavy
Copy link
Author

I see, that is a problem. I assume this affects overall app performance, as the bundle is not fully optimized in that case. I'll reopen this issue then, hopefully a maintainer might look at this. Could you create an issue at the appcenter-cli repo in the meantime? @ivanmoskalev

cc @alexandergoncharov or other maintainers

@mrousavy mrousavy reopened this Apr 29, 2021
@ivanmoskalev
Copy link

ivanmoskalev commented Apr 29, 2021

I went ahead and created microsoft/appcenter-cli#1399

@alexandergoncharov-zz
Copy link
Contributor

Hi there,

Thanks for reopening the issue.

Hermes for IOS is on our roadmap but we don't have ETA for this.
We will do it as soon as possible and will keep this issue and others posted.

Thanks,
Alexander

@BANG88
Copy link

BANG88 commented Oct 18, 2021

@alexandergoncharov Any updates ?. 😄

Thanks.

@ivanmoskalev
Copy link

@BANG88 this has been fixed (see microsoft/appcenter-cli#1399)!

@BANG88
Copy link

BANG88 commented Oct 18, 2021

@ivanmoskalev
Copy link

@BANG88 Check microsoft/appcenter-cli@3128d37 – you might want to use a version that includes this commit.

@BANG88
Copy link

BANG88 commented Oct 18, 2021

@ivanmoskalev Sorry dude. I don't know which version include iOS Hermes Support. 😭

@alexandergoncharov-zz
Copy link
Contributor

alexandergoncharov-zz commented Oct 19, 2021

Hi all,

Yeah, the latest version of the appcenter-cli has support for iOS Hermes. Sorry that I didn't mention it in this issue.
@ivanmoskalev , could you please test it on the latest appcenter-cli version?

@BANG88 , thanks for help :)

@bryansum
Copy link

Probably fine to close this issue right? It being open made me think it wasn't supported yet (it is!). Excited to try this out

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants