| #
ccc1ae54 |
| 22-May-2023 |
Tomasz Sapeta <[email protected]> |
[core][iOS] Add CoreModule defining the `global.expo` object (#22567)
|
| #
7a261681 |
| 23-Apr-2023 |
Tomasz Sapeta <[email protected]> |
[core][iOS] Initializing and returning shared objects from the native side (#22195)
Co-authored-by: Tomasz Sapeta <[email protected]>
|
| #
32c7a27a |
| 02-Mar-2023 |
Gabriel Donadel Dall'Agnol <[email protected]> |
[core][ios] Fix jsc import when using use_frameworks (#21479)
# Why
iOS projects using `use_frameworks!` along with JSC are broken on SDK 48
Closes https://github.com/expo/expo/issues/21461
[core][ios] Fix jsc import when using use_frameworks (#21479)
# Why
iOS projects using `use_frameworks!` along with JSC are broken on SDK 48
Closes https://github.com/expo/expo/issues/21461
# How
This PR adds an additional import check for `<React_jsc/JSCRuntime.h>`
inside `EXJavaScriptRuntime.mm` as when in framework mode dashes are
replaced with underscores.
# Test Plan
Update bare-expo `Podfile.properties.json` to
```
{
"expo.jsEngine": "jsc",
"ios.useFrameworks": "static"
}
```
and build the app
# Checklist
<!--
Please check the appropriate items below if they apply to your diff.
This is required for changes to Expo modules.
-->
- [ ] Documentation is up to date to reflect these changes (eg:
https://docs.expo.dev and README.md).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
- [ ] This diff will work correctly for `expo prebuild` & EAS Build (eg:
updated a module plugin).
---------
Co-authored-by: Expo Bot <[email protected]>
show more ...
|
| #
d4cd4dfc |
| 19-Dec-2022 |
Kudo Chien <[email protected]> |
[modules] Fix incompatible issue for react-native 0.71 (#20470)
# Why
sdk 48 may come next year and react-native 0.71 may be released this year. it's good to have react-native 0.71 support for ou
[modules] Fix incompatible issue for react-native 0.71 (#20470)
# Why
sdk 48 may come next year and react-native 0.71 may be released this year. it's good to have react-native 0.71 support for our modules. if users want to upgrade 0.71, they could change their project to be a bare project for the early preview.
# How
- [core][av][gl] because 0.71 doesn't serve android aar along with npm package, the aar extraction from `node_modules/react-native/android/**/*.aar` will break on 0.71. 0.71 also ships modules with prefab support. it's good to rewrite the gradle/cmake files to link with prefab modules. that would reduce much complexity. however, to be backward compatible with 0.70, i moved most logic to `ExpoModulesCorePlugin.applyLegacyReactNativeLibsExtractionPlugin` and `legacy/CMakeLists.txt`. so that we could be backward compatible and easily remove the isolated code after we drop sdk 47 support.
- [dev-launcher] add 0.71 sources because new parameter to `DevSupportManagerBase`
- [core][dev-menu] fix ios build errors for jsc because 0.71 moved the header to `<React-jsc/JSCRuntime.h>`
- [core][autolinking] integrate the `RCTAppDelegate` with our `EXAppDelegateWrapper`. that would simply the install-expo-modules migration where we only need the change `RCTAppDelegate -> EXAppDelegateWrapper` in AppDelegate.h. however, integrate RCTAppDelegate comes with some issues from expo-modules-core. [this commit](https://github.com/expo/expo/pull/20470/commits/2959477c5782f5d3ef770fbe72b04c1770bc566b) changes many code and i'll try to explain here:
- RCTAppDelegate is in `React-RCTAppDelegate` pod, which does not define module. we define module for it in our patch system in autolinking.
- defines `RCT_NEW_ARCH_ENABLED` as RCTAppDelegate
- in new architecture mode, RCTAppDelegate comes with [more cxx dependencies](https://github.com/facebook/react-native/blob/03b17d9af7e4e3ad3f9ec078b76d0ffa33a3290e/Libraries/AppDelegate/RCTAppDelegate.h#L12-L18) for fabric. that's why we should add more header search paths and also move to EXAppDelegateWrapper.mm.
# Test Plan
- [x] ci passed
- [x] bare-expo build and launch
- [x] bare-expo nightlies build and launch
- [x] fabric-tester build and launch
- [x] fabric-tester nighties build and launch (should apply [the patch to fabric-tester](https://gist.github.com/Kudo/417a5159cb01a400ecee22ad4985d287))
- [x] rn 0.71-rc4 project build and launch (could apply [the patches](https://gist.github.com/Kudo/7448c733f12e700c7fbed76251fa3553) for testing)
- [x] rn 0.71-rc4 project (new architecture) build and launch ([this pr](https://github.com/facebook/react-native/pull/35661) for react-native is required)
- [x] rn 0.71-rc4 project (use_frameworks!) build and launch
show more ...
|
| #
e68edf7a |
| 03-Nov-2022 |
Kudo Chien <[email protected]> |
Fix react-native nightly test (#19805)
# Why
Fix broken react-native nightly test
# How
- meta ships nightly build binaries on maven central now, we could just use the binaries than buildin
Fix react-native nightly test (#19805)
# Why
Fix broken react-native nightly test
# How
- meta ships nightly build binaries on maven central now, we could just use the binaries than building from source. the ci job time reduces dramatically. previously it takes almost four hours, now it takes 51m for android and 60m for ios.
- use env `REACT_NATIVE_OVERRIDE_VERSION` to override the version rather than hardcoded 9999.9999.9999 in packages.
- expo-modules-core / expo-av / expo-gl - support to download snapshot react-native from maven central
- fix some breaking changes from react-native nightly
- expo-dev-launcher: `RCTAsyncLocalStorage` is removed
- expo-modules-core: remove deprecated `<hermes/hermes.h>` import
- expo-modules-core: `RCTAppSetupDefaultRootView` has new parameter
- expo: `com.facebook.react.uimanager.UIImplementationProvider` is removed
- bare-expo `reactNativeNightly` gradle property is unused now, just rename to `buildReactNativeFromSource` if someone want to use.
- [tools] update SetupReactNativeNightly
# Test Plan
- test suite nightly ci passed
- original test suite ci passed to make sure compatibility with sdk 47
show more ...
|
| #
98fa2978 |
| 03-Oct-2022 |
Tomasz Sapeta <[email protected]> |
[modules] Fix `global.expo` object installation on iOS (#19354)
|
| #
1bed2683 |
| 28-Sep-2022 |
Tomasz Sapeta <[email protected]> |
[modules][ios] Install modules host object as `global.expo.modules` instead of `global.ExpoModules` (#19273)
|
| #
4d7ea828 |
| 26-May-2022 |
Tomasz Sapeta <[email protected]> |
[ios] Better error handling in the synchronous functions (#17628)
|
| #
9b8bcdc4 |
| 23-May-2022 |
Tomasz Sapeta <[email protected]> |
[ios] Classes with associated shared object type (#17525)
|
| #
159a70f7 |
| 23-May-2022 |
Łukasz Kosmaty <[email protected]> |
[sweet][iOS] Handle `JSIException` in the `evaluateScript` function (#17585)
# Why
`evaluateJavaScript` may also throw `jsi::JSIException` that is a base class of the `jsi::JSError` when there we
[sweet][iOS] Handle `JSIException` in the `evaluateScript` function (#17585)
# Why
`evaluateJavaScript` may also throw `jsi::JSIException` that is a base class of the `jsi::JSError` when there were a syntax error in the script. Right now, it won't be caught by the try-catch block.
# Test Plan
I didn't test that on iOS, but on Android, I have to do a similar thing.
show more ...
|
| #
7e0c1e78 |
| 12-May-2022 |
Tomasz Sapeta <[email protected]> |
[ios] Add JS classes to the Sweet API (#17412)
|
| #
447e3428 |
| 29-Apr-2022 |
Tomasz Sapeta <[email protected]> |
[ios] Split the implementation of async and sync functions (#17188)
|
| #
c4fc6f47 |
| 11-Apr-2022 |
Tomasz Sapeta <[email protected]> |
[ios] Pass function args to Swift as array of JS values (#16987)
|
| #
f57544ba |
| 06-Apr-2022 |
Tomasz Sapeta <[email protected]> |
[modules] Test calling sync functions on the JSI module (#16940)
|
| #
56c10913 |
| 06-Apr-2022 |
Tomasz Sapeta <[email protected]> |
[modules] Add tests for ExpoModules host object (#16896)
|
| #
d84b7ae9 |
| 05-Apr-2022 |
Tomasz Sapeta <[email protected]> |
[modules] Catch C++ exceptions thrown by evaluateScript and rethrow as Swift exception (#16923)
|
| #
ec62a260 |
| 05-Apr-2022 |
Tomasz Sapeta <[email protected]> |
[modules] Create ObjC wrapper for JSI values (#16910)
|
| #
60410a3b |
| 31-Mar-2022 |
Tomasz Sapeta <[email protected]> |
Fix JSI runtime being unexpectedly deallocated by shared pointer (#16828)
|
| #
bd0cffe7 |
| 30-Mar-2022 |
Tomasz Sapeta <[email protected]> |
[ios] Revert TurboModule implementation of NativeModulesProxy (#16825)
|
| #
4bcb0d98 |
| 28-Mar-2022 |
Tomasz Sapeta <[email protected]> |
[core][ios] Evaluating JavaScript code from Swift (#16777)
|
| #
370fa39d |
| 28-Feb-2022 |
Kudo Chien <[email protected]> |
[android][ios] Fix versioning for expo go after react-native 0.67.2 upgrade (#16401)
# Why
for sdk45 and based on #16400
# How
- [tools] Fix versioning tools for react-native 0.67.2 upgrade
[android][ios] Fix versioning for expo go after react-native 0.67.2 upgrade (#16401)
# Why
for sdk45 and based on #16400
# How
- [tools] Fix versioning tools for react-native 0.67.2 upgrade
- [expo-modules-core][ios] Fix missing `EX` prefix to some objective-c files for versioning support
- [autolinking] Apply our cocoapods fix for `React-Core` swift support to versioned code
- [expo-updates] fix an incompatible `ReactInstanceManager` in UpdatesPackage where UpdateController is unversioned but UpdatePackage is versioned.
- [expo-file-system] okhttp/okio code for new versioned code build successfully. this is done in #16446
# Test Plan
- `et add-sdk -p android -s 45.0.0` and build/launch sdk 45 expo go with sdk 45 ncl
- `et add-sdk -p ios -s 45.0.0` and build/launch sdk 45 expo go with sdk 45 ncl
show more ...
|