History log of /expo/ios/Exponent/Versioned/Core/UniversalModules/EXUpdatesBinding.m (Results 1 – 13 of 13)
Revision Date Author Comments
# 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