[ios] Remove legacy notifications module code (#24325)
[file-system][iOS] Migrate to Expo Modules API (#23943)
[core][iOS] AppContext configuration (#24292)
[iOS] Add a native module for Expo Go (#23730)
[iOS] Refactor version manager in Expo Go (#23624)
[dev-client][updates] fix ios use_frameworks build errors (#23218)# Why fix ios use_frameworks with expo-dev-client and expo-updates fixes #23190 close ENG-9158 # How - [dev-launcher][d
[dev-client][updates] fix ios use_frameworks build errors (#23218)# Why fix ios use_frameworks with expo-dev-client and expo-updates fixes #23190 close ENG-9158 # How - [dev-launcher][dev-menu] remove bridging headers. bridging headers are only supported in app projects as far as i know. - [dev-launcher][dev-menu] remove double quoted imports - [manifests][updates-interface] remove the swift generated header copying to PODS_ROOT. if we did that, xcode will have ambiguous imports that import from non-module header. # Test Plan - ci passed - versioned expo go - bare-expo - sdk49 project + use_frameworks! static
show more ...
[ios][updates][tools] fix swift casting runtime exception (#23132)# Why close ENG-9094 # How - this is again the swift runtime exception for casting versioned class to unversioned class li
[ios][updates][tools] fix swift casting runtime exception (#23132)# Why close ENG-9094 # How - this is again the swift runtime exception for casting versioned class to unversioned class like https://github.com/expo/expo/pull/23012#discussion_r1237294135. this time it's the `EXUpdatesUpdate` and solved by the `object_setClass` too. - moving the `object_setClass` to expo-go only `EXUpdatesBinding` class which is a proper place to do the casting. however, this requires more swift <-> objc interop like adding swift compatibility header to search paths and adding `-fmodule-map`. - some refactoring for the expokit podspec # Test Plan - ci passed - test local expo-go to load sdk 49 updates (both classic updates and eas updates)
Remove react-native-shared-element from Expo Go (#22970)
[ios][core][tools] fix expo go versioning issues on ios (#23012)# Why fix expo-go ios versioning for sdk 49 close ENG-8955 # How - a lot of mess transform rules update mainly for react-na
[ios][core][tools] fix expo go versioning issues on ios (#23012)# Why fix expo-go ios versioning for sdk 49 close ENG-8955 # How - a lot of mess transform rules update mainly for react-native 0.72 and reanimated v3 - [core] rename `ExpoRuntime -> EXRuntime` in objc for versioning - [updates] force casting for the `UpdatesConfig` (i'll leave comment for this) - [react-native-lab] add correct dependencies to make versioned code build passed # Test Plan `et add-sdk -p ios -s 49.0.0` + ios versioned expo-go + sdk49 ncl
[expo-updates] Updates state machine for iOS and Android, E2E tests (#22845)# Why Implement state machine on Android and iOS. # How - New state machine classes on Android and iOS - Integr
[expo-updates] Updates state machine for iOS and Android, E2E tests (#22845)# Why Implement state machine on Android and iOS. # How - New state machine classes on Android and iOS - Integration with UpdatesController/AppController - State machine change events sent to JS - Test hook in `@expo/use-updates` to allow E2E tests - E2E tests for both platforms # Test Plan - Manual testing on both platforms - Unit tests for state machine on both platforms - New E2E tests for state machine feature - Existing E2E tests and existing `expo-updates` functionality should be unaffected # Checklist <!-- Please check the appropriate items below if they apply to your diff. This is required for changes to Expo modules. --> - [x] Documentation is up to date to reflect these changes (eg: https://docs.expo.dev and README.md). - [x] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) - [x] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin).
[go] add network inspector support (#22741)# Why add network inspector support for expo go close ENG-8010 # How integrate the ExpoRequestCdpInterceptor from expo-modules-core. unlike expo
[go] add network inspector support (#22741)# Why add network inspector support for expo go close ENG-8010 # How integrate the ExpoRequestCdpInterceptor from expo-modules-core. unlike expo-dev-launcher to use hacky solution, we want to enable the network inspector on release mode, so the implementation follows formal way. - on ios, we leverage the `RCTSetCustomNSURLSessionConfigurationProvider` from react-native to create dedicated `URLSessionConfiguration`. - on android, we already have a dedicated okhttp client from expo go. this pr just adds the interceptors. - found image requests are not intercepted, it is because we don't use okhttp for fresco image pipeline. this pr tries to use the okhttp for fresco as react-native. - android expo go has multiple react instances. however, the network inspector currently only support single inspector target to metro-inspector-proxy. as the result, we only limit the current foreground activity to send network inspector events. # Test Plan ncl + expo go to test the network inspector
[go] upgrade @react-native-picker/picker to 2.4.10 (#22919)# Why Upgrade @react-native-picker/picker vendored module. # How Ran `et uvm -m @react-native-picker/picker`. Added `PickerIOS
[go] upgrade @react-native-picker/picker to 2.4.10 (#22919)# Why Upgrade @react-native-picker/picker vendored module. # How Ran `et uvm -m @react-native-picker/picker`. Added `PickerIOS` tests to demo `selectionColor` prop, [the only change](https://github.com/react-native-picker/picker/pull/474) since SDK 48. # Test Plan Build Expo Go unversioned locally, tested NCL on iOS/ Android. # Checklist <!-- Please check the appropriate items below if they apply to your diff. This is required for changes to Expo modules. --> - [x] Documentation is up to date to reflect these changes (eg: https://docs.expo.dev and README.md). - [x] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) - [x] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin).
Vendor react-native-maps to 1.7.1 (#22908)
Remove Amplitude from Expo Go (#22523)
[expo-updates][expo-go] Support new SDK version field in new manifests (#22356)
[go] Disable Remote JS debugger on SDK 49+ (#22027)# Why As part of https://github.com/facebook/react-native/pull/36754, we should remove the ability to use remote JS debugging from the DevMenu
[go] Disable Remote JS debugger on SDK 49+ (#22027)# Why As part of https://github.com/facebook/react-native/pull/36754, we should remove the ability to use remote JS debugging from the DevMenu. This change is motivated by the fact that generally speaking, this feature does not work with the new architecture and most of the popular modules these days. Follow up of https://github.com/expo/expo/pull/22010 Closes ENG-8088 # How This PR removes the `Remote JS debugger` option from Expo Go menu when using SDK 49 or above # Test Plan Run Expo Go locally <table> <tr><th>iOS</th><th>Android</th></tr> <tr> <td> <img src="https://user-images.githubusercontent.com/11707729/230474710-28b0a90a-9f49-48c1-baaf-8883fdad8178.png" height="700px" /> </td> <td> <img src="https://user-images.githubusercontent.com/11707729/230473058-e06831e6-96d9-4a17-8da1-d884d9c9678f.png" height="700px" /> </td> </tr> </table> # 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).
[exupdates][ios] Fix odd nullability issue in expo module (#21655)# Why 1. `EXUpdatesBinding.config` returns nil when called here 2. This is because `EXUpdatesManager.configForScopeKey` returns
[exupdates][ios] Fix odd nullability issue in expo module (#21655)# Why 1. `EXUpdatesBinding.config` returns nil when called here 2. This is because `EXUpdatesManager.configForScopeKey` returns nil for what I assume is the home scope key. I checked and it was also the case prior to the swift conversion, but didn't crash because objective-c is more nil-selector-call-lenient. # How Change types to be nullable. # Test Plan Run expo go, see no more crash. # 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).
[exupdates][ios] Convert database to swift (#21450)# Why This converts a good chunk of the EXUpdates database code to swift. # How Convert manually. Unfortunately this couldn't be broken u
[exupdates][ios] Convert database to swift (#21450)# Why This converts a good chunk of the EXUpdates database code to swift. # How Convert manually. Unfortunately this couldn't be broken up further due to OpaquePointer return type incompatibility (can't return OpaquePointer over bridge). # Test Plan Run all tests and build 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).
[ios] fix build errors (#21481)# Why fix expo go ios and bare-expo build errors # How there are two errors: 1. bare-expo `EXDevLauncherController.h:8:1: use of '@import' when C++ module
[ios] fix build errors (#21481)# Why fix expo go ios and bare-expo build errors # How there are two errors: 1. bare-expo `EXDevLauncherController.h:8:1: use of '@import' when C++ modules are disabled, consider using -fmodules and -fcxx-modules`. the import is from bare-expo's AppDelegate.mm. the solution migrates `@import EXManifest; -> +#import <EXManifests/EXManifests-Swift.h>` 2. ios expo go: https://github.com/expo/expo/actions/runs/4305432041/jobs/7507869126 ``` /Users/runner/work/expo/expo/ios/Pods/Headers/Public/EXConstants/EXConstantsService.h:14:43: error: declaration of 'EXInternalModule' must be imported from module 'EXFileSystem.EXFilePermissionModule' before it is required @interface EXConstantsService : NSObject <EXInternalModule, EXConstantsInterface> ``` the pr tries to add some rearrange some imports # Test Plan ci passed
[expo-updates][ios] Convert selection policies to swift (#21394)# Why This converts EXUpdatesSelectionPolicy stuff to swift. # How Manually convert. # Test Plan Run all tests (will u
[expo-updates][ios] Convert selection policies to swift (#21394)# Why This converts EXUpdatesSelectionPolicy stuff to swift. # How Manually convert. # Test Plan Run all tests (will update tests in a follow-up PR to ensure they don't both break accidentally). # 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).
[expo-updates][ios] Convert EXUpdatesConfig to swift (#21391)# Why Converting one more class to swift. # How Convert manually. # Test Plan Run all tests and build. # Checklist
[expo-updates][ios] Convert EXUpdatesConfig to swift (#21391)# Why Converting one more class to swift. # How Convert manually. # Test Plan Run all tests and build. # 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).
[exupdates][ios] Start converting to swift (#21320)# Why Start the conversion process of the expo-updates library by converting EXUpdatesUpdate and subclasses. # How Convert manually... l
[exupdates][ios] Start converting to swift (#21320)# Why Start the conversion process of the expo-updates library by converting EXUpdatesUpdate and subclasses. # How Convert manually... lol. The main note is that we can't use swift nullability/type forcing operators (`!`, `as!`, `as?`) etc since the previous implementation was relying upon NSAssert to raise an NSException which is caught in the calling code, so I added new extension functions to replicate the behavior (similar to EXManifests util functions). # Test Plan Build and run all tests. # 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).
[exmanifests][ios] Convert to swift (#21298)
[go] disable remote debugging when running on hermes (#21269)# Why close ENG-7610 # How the implementation is slightly different between android and ios. on ios, we could just disable rem
[go] disable remote debugging when running on hermes (#21269)# Why close ENG-7610 # How the implementation is slightly different between android and ios. on ios, we could just disable remote debugging when changing to hermes and enable it when changing back to jsc. however, on android we just disable remote debugging when running on hermes. this is because the fact of we have override `EXDevSettings` on ios but no similar stuff on android. # Test Plan follow steps on ENG-7610
Upgrade `@react-native-community/[email protected]` ➡️ `@react-native-community/[email protected]` (#20926)# Why Fixes ENG-7318 # How Ran `et update-vendored-module --module @react-
Upgrade `@react-native-community/[email protected]` ➡️ `@react-native-community/[email protected]` (#20926)# Why Fixes ENG-7318 # How Ran `et update-vendored-module --module @react-native-community/datetimepicker --target expo-go --commit 5d174d097d2821911b73b5e308520f9e028b8348` <details><summary>See log output</summary> ```bash Cloning @react-native-community/datetimepicker#5d174d097d2821911b73b5e308520f9e028b8348 from https://github.com/react-native-community/react-native-datetimepicker.git ‼️ Using legacy vendoring for platform ios NOTE: In Expo, native Android styles are prefixed with ReactAndroid. Please ensure that resourceNames used for grabbing style of dialogs are being resolved properly. Cleaning up iOS files at Exponent/Versioned/Core/Api/Components/DateTimePicker ... Copying iOS files ... > ios/Exponent/Versioned/Core/Api/Components/DateTimePicker/RNDateTimePicker.h > ios/Exponent/Versioned/Core/Api/Components/DateTimePicker/RNDateTimePicker.m > ios/Exponent/Versioned/Core/Api/Components/DateTimePicker/RNDateTimePickerManager.h > ios/Exponent/Versioned/Core/Api/Components/DateTimePicker/RNDateTimePickerManager.m > ios/Exponent/Versioned/Core/Api/Components/DateTimePicker/RNDateTimePickerShadowView.h > ios/Exponent/Versioned/Core/Api/Components/DateTimePicker/RNDateTimePickerShadowView.m Updating pbxproj configuration ... Saving updated pbxproj structure to the file Exponent.xcodeproj/project.pbxproj ... Successfully updated iOS files, but please make sure Xcode project files are setup correctly in Exponent/Versioned/Core/Api/Components/DateTimePicker ‼️ Using legacy vendoring for platform android NOTE: In Expo, native Android styles are prefixed with ReactAndroid. Please ensure that resourceNames used for grabbing style of dialogs are being resolved properly. Cleaning up Android files at expoview/src/main/java/versioned/host/exp/exponent/modules/api/components/datetimepicker ... Copying Android files ... > android/expoview/src/main/java/versioned/host/exp/exponent/modules/api/components/datetimepicker/Common.java > android/expoview/src/main/java/versioned/host/exp/exponent/modules/api/components/datetimepicker/KeepDateInRangeListener.java > android/expoview/src/main/java/versioned/host/exp/exponent/modules/api/components/datetimepicker/MinuteIntervalSnappableTimePickerDialog.java > android/expoview/src/main/java/versioned/host/exp/exponent/modules/api/components/datetimepicker/ReflectionHelper.java > android/expoview/src/main/java/versioned/host/exp/exponent/modules/api/components/datetimepicker/RNConstants.java > android/expoview/src/main/java/versioned/host/exp/exponent/modules/api/components/datetimepicker/RNDate.java > android/expoview/src/main/java/versioned/host/exp/exponent/modules/api/components/datetimepicker/RNDatePickerDialogFragment.java > android/expoview/src/main/java/versioned/host/exp/exponent/modules/api/components/datetimepicker/RNDatePickerDialogModule.java > android/expoview/src/main/java/versioned/host/exp/exponent/modules/api/components/datetimepicker/RNDatePickerDisplay.java > android/expoview/src/main/java/versioned/host/exp/exponent/modules/api/components/datetimepicker/RNDateTimePickerPackage.java > android/expoview/src/main/java/versioned/host/exp/exponent/modules/api/components/datetimepicker/RNDismissableDatePickerDialog.java > android/expoview/src/main/java/versioned/host/exp/exponent/modules/api/components/datetimepicker/RNDismissableTimePickerDialog.java > android/expoview/src/main/java/versioned/host/exp/exponent/modules/api/components/datetimepicker/RNTimePickerDialogFragment.java > android/expoview/src/main/java/versioned/host/exp/exponent/modules/api/components/datetimepicker/RNTimePickerDialogModule.java > android/expoview/src/main/java/versioned/host/exp/exponent/modules/api/components/datetimepicker/RNTimePickerDisplay.java ✍️ Updating bundled native modules ✍️ Updating workspace dependencies Successfully updated @react-native-community/datetimepicker ``` </details> # Test Plan ## Android After changing: - Add 1global.setImmediate = function(){};` -> to fix reanimated issue - Change `@shopify/flash-list` (vendored SDK 46 and 47 code) `androidx.annotation:annotation:+` to `androidx.annotation:annotation:1.2.0` I managed to test the date time picker on Android. Dropped a few test features that weren't used, or are removed. - The "open and hide dialog after 3 seconds" -> had no logic connected, was mostly confusing - Dropped `clock` and `calendar` (which is `default` now) enums. - Updated `neutralButtonLabel` -> `neutralButton` ## iOS > **Warning** > Testing on iOS is currently blocked by building issues. <details><summary>Build errors</summary>  </details> # 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).
12345678910>>...21