react-native-macos/React
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
..
AccessibilityResources/en.lproj Add localized accessibility strings to React Core pod (#27995) 2020-02-20 14:31:03 -08:00
Base Fabric: Removing `RCTExperimentSetSyncPerformanceFlag` 2020-10-30 15:45:21 -07:00
CoreModules Fix crash in RCTEventEmitter 2020-10-29 22:07:09 -07:00
CxxBridge feat: Enable Hermes to work on iOS (#29914) 2020-11-03 01:14:38 -08:00
CxxModule Proxing NSException stack trace to NSError object 2020-09-08 13:22:54 -07:00
CxxUtils Clang format for all React Native files 2020-03-08 23:01:17 -07:00
DevSupport Respect port information if available from RCTBundleURLProvider 2020-08-28 16:01:02 -07:00
Fabric Fabric: `touchesShouldCancelInContentView` now always returns `YES` 2020-10-31 16:23:29 -07:00
Inspector Clang format for all React Native files 2020-03-08 23:01:17 -07:00
Modules Dispatch events even when there are no listeners 2020-10-14 21:05:38 -07:00
Profiler remove most of tvOS remnants from the code (#29407) 2020-09-28 21:26:41 -07:00
Tests Add unit tests for RCTComponentViewRegistry 2020-10-21 10:49:43 -07:00
UIUtils A couple of checks for corner cases in RCTGetDimensions and RCTExportedDimensions 2020-10-01 13:19:52 -07:00
Views Make RCTEventDispatcher TurboModule-compatible 2020-10-14 02:40:10 -07:00
React-RCTFabric.podspec remove most of tvOS remnants from the code (#29407) 2020-09-28 21:26:41 -07:00
third-party.xcconfig Upgrade Folly to v2020.01.13.00 (#27810) 2020-01-21 12:44:00 -08:00