| #
79294b5e |
| 27-Jun-2023 |
Kudo Chien <[email protected]> |
[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)
show more ...
|
| #
df150c8f |
| 22-Jun-2023 |
Douglas Lowder <[email protected]> |
[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).
show more ...
|
| #
128e1e19 |
| 10-Mar-2023 |
Will Schurman <[email protected]> |
[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).
show more ...
|
| #
415deeaa |
| 17-Oct-2022 |
Eric Samelson <[email protected]> |
[expo-updates] add docblocks to most classes (#19491)
|
| #
a4d31188 |
| 23-Aug-2022 |
Eric Samelson <[email protected]> |
[ios] add exportedInterfaces to EXUpdatesBinding (#18763)
|
| #
c54c3a4d |
| 18-Apr-2022 |
Eric Samelson <[email protected]> |
[expo-updates] add current and embedded update id headers to manifest requests (#17033)
|
| #
167fd314 |
| 30-Jun-2021 |
Will Schurman <[email protected]> |
[ios] Use stable manifest ID where applicable (#13280)
|
| #
80e36a94 |
| 23-Apr-2021 |
Eric Samelson <[email protected]> |
[expo-updates][ios] add setter and resetter for SelectionPolicy (#12685)
|
| #
96495090 |
| 23-Apr-2021 |
Eric Samelson <[email protected]> |
[expo-updates][ios] split SelectionPolicy into 3 separate interfaces (#12682)
|
| #
7e43e889 |
| 24-Sep-2020 |
Eric Samelson <[email protected]> |
[expo-updates][android][ios] allow reloading in dev mode in store clients (#10310)
|
| #
40b2cdcb |
| 14-Aug-2020 |
Eric Samelson <[email protected]> |
[android][ios] add full infrastructure and implementation for UpdatesBinding (#9694)
# Why
This PR adds the complete infrastructure for allowing the new expo-updates exported JS module to work as
[android][ios] add full infrastructure and implementation for UpdatesBinding (#9694)
# Why
This PR adds the complete infrastructure for allowing the new expo-updates exported JS module to work as a scoped module in the managed workflow codebase and communicate with the `Kernel` classes.
# How
For iOS, I followed the pattern that was used in other scoped modules like Sensors. EXUpdatesBinding is a scoped module that is given access to a pair of kernel services, each of which have access to the AppLoader (and therefore expo-updates state) through the EXKernelAppRecord. All of the properties are just threaded through.
For Android, there were fewer steps to thread through but we weren't keeping a reference to the AppLoader anywhere. I added a simple map in the Kernel for this, which the scoped UpdatesBinding has access to through the KernelProvider.
Finally, since the `Updates.expo.ts` polyfill is no longer needed for the unversioned managed workflow, I removed this code from expo-updates.
# Test Plan
Backport these changes to SDK 38 and add a versioned SDK 38 copy of the expo-updates module, and switch EXKernelAppRecord/Kernel to use the new ExpoUpdatesAppLoader so expo-updates is used.
I launched a test published app created by installing expo-updates and then manually deleting the `build/Updates.expo.*` files from node_modules. All the exported functions from expo-updates worked and assets were resolved to the copies on disk downloaded by expo-updates
show more ...
|
| #
837ddf90 |
| 12-Aug-2020 |
Stanisław Chmiela <[email protected]> |
[ios] Include EXUpdatesBinding implementation conditionally (#9686)
# Why
When adding a new SDK, the code fails to compile due to missing classes.
# How
Noticed the header is properly `#if-
[ios] Include EXUpdatesBinding implementation conditionally (#9686)
# Why
When adding a new SDK, the code fails to compile due to missing classes.
# How
Noticed the header is properly `#if-has-included`, figured the same is missing from the `.m` file.
# Test Plan
After adding this code, the codebase compiled again.
show more ...
|
| #
92e817a0 |
| 01-Aug-2020 |
Eric Samelson <[email protected]> |
[ios] add EXAppLoaderExpoUpdates and stub EXUpdatesBinding
|