History log of /expo/packages/expo-modules-core/ios/JSI/EXJavaScriptRuntime.mm (Results 1 – 21 of 21)
Revision Date Author Comments
# 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 ...