react-native-macos/React/CxxBridge
Mike Grabowski c95ee5ac18 feat: Enable Hermes to work on iOS (#29914)
Summary:
This PR makes it possible to build iOS applications with Hermes. Note that it doesn't work with `use_frameworks!` just yet.

Fixes https://github.com/facebook/react-native/issues/27845 (by downgrading iOS deployment target for RCT-Folly to 9.0)
Fixes https://github.com/facebook/react-native/issues/28810 (as above)

Checklist:
- [x] Adjust release scripts to create Hermes bytecode bundle
- [x] Release new Hermes npm package that includes iOS files (unreleased right now, if you want to try locally, you have to clone Hermes and `yarn link` its master to this project)
- [x] Test on a new React Native application in both Debug and Release (Device)
- [x] Test on an RNTester application in both Debug and Release (Device)
- [x] Add missing `i386` to Hermes framework and enable Bitcode
- [x] Inspect CI failures for possible regressions
- [x] Resolve Folly issue as reported https://github.com/facebook/react-native/issues/27845 and https://github.com/facebook/react-native/issues/28810
- [x] Release new Hermes and test against it that everything works

## Changelog

[IOS] [FEATURE] - Enable Hermes on iOS
[INTERNAL] - Upgrade to CocoaPods 1.10.0 to resolve Xcode 12.0 issues
[INTERNAL] - Upgrade to Xcode 12.0 on the CircleCI
[INTERNAL] - Fix building RNTester in Release mode
[INTERNAL] - Fix build-time errors of `libevent` with `use_frameworks!`
[INTERNAL] - Introduce `USE_HERMES` variable and test all RNTester configurations on the CI
[INTERNAL] - Do not fetch CocoaPods repository since we're using CDN anyway

Pull Request resolved: https://github.com/facebook/react-native/pull/29914

Test Plan:
Turn on `hermes_enabled` to true in your `Podfile`, install pods, and run the iOS application. Your app should be running Hermes now.

Preview: (note "Engine: Hermes")

<img width="395" alt="Screenshot 2020-09-09 at 19 22 32" src="https://user-images.githubusercontent.com/2464966/92631584-d7c01d80-f2d1-11ea-9b40-33d73db96a53.png">

Reviewed By: hramos

Differential Revision: D24684845

Pulled By: cpojer

fbshipit-source-id: 900cbe3bf9398a6fd4a773d552899a001bf5146b
2020-11-03 01:14:38 -08:00
..
JSCExecutorFactory.h Clang format for all React Native files 2020-03-08 23:01:17 -07:00
JSCExecutorFactory.mm Upstream RN macOS Hermes integration bits (#29748) 2020-08-27 01:18:33 -07:00
NSDataBigString.h Clang format for all React Native files 2020-03-08 23:01:17 -07:00
NSDataBigString.mm Clang format for all React Native files 2020-03-08 23:01:17 -07:00
RCTCxxBridge.mm feat: Enable Hermes to work on iOS (#29914) 2020-11-03 01:14:38 -08:00
RCTCxxBridgeDelegate.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTJSIExecutorRuntimeInstaller.h Upstream RN macOS Hermes integration bits (#29748) 2020-08-27 01:18:33 -07:00
RCTJSIExecutorRuntimeInstaller.mm Upstream RN macOS Hermes integration bits (#29748) 2020-08-27 01:18:33 -07:00
RCTMessageThread.h Fix ASAN crash in RCTMessageThread 2020-10-13 15:37:52 -07:00
RCTMessageThread.mm Fix ASAN crash in RCTMessageThread 2020-10-13 15:37:52 -07:00
RCTObjcExecutor.h Clang format for all React Native files 2020-03-08 23:01:17 -07:00
RCTObjcExecutor.mm Split loadApplicationScript into initializeRuntime and loadBundle (#27844) 2020-04-01 17:52:39 -07:00