<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in EXKernel.h</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>489c2041 - [ios] Remove legacy notifications module code (#24325)</title>
        <link>http://172.16.0.5:8080/history/expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h#489c2041</link>
        <description>[ios] Remove legacy notifications module code (#24325)

            List of files:
            /expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h</description>
        <pubDate>Fri, 15 Sep 2023 23:18:39 +0000</pubDate>
        <dc:creator>Will Schurman &lt;wschurman@expo.io&gt;</dc:creator>
    </item>
<item>
        <title>0502d1f9 - Remove Amplitude from Expo Go (#22523)</title>
        <link>http://172.16.0.5:8080/history/expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h#0502d1f9</link>
        <description>Remove Amplitude from Expo Go (#22523)

            List of files:
            /expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h</description>
        <pubDate>Thu, 18 May 2023 16:03:56 +0000</pubDate>
        <dc:creator>Tomasz Sapeta &lt;tomasz.sapeta@swmansion.com&gt;</dc:creator>
    </item>
<item>
        <title>167fd314 - [ios] Use stable manifest ID where applicable (#13280)</title>
        <link>http://172.16.0.5:8080/history/expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h#167fd314</link>
        <description>[ios] Use stable manifest ID where applicable (#13280)

            List of files:
            /expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h</description>
        <pubDate>Wed, 30 Jun 2021 18:32:25 +0000</pubDate>
        <dc:creator>Will Schurman &lt;wschurman@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>42300cfb - [ios] Migrate installation identifier to non-backed-up storage (#11019)</title>
        <link>http://172.16.0.5:8080/history/expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h#42300cfb</link>
        <description>[ios] Migrate installation identifier to non-backed-up storage (#11019)# Why- iOS companion for https://github.com/expo/expo/pull/11005.- https://github.com/expo/expo/pull/11019/commits/1e22e08195b1b4c49650f8243eeb89b5f938b9a5 fixes https://github.com/expo/expo/issues/11008#issuecomment-726370187 ensuring future versioned `EXInstallationIdProvider`s use the common installation ID# HowImplemented https://github.com/expo/expo/pull/10261#issuecomment-725396140.- As in https://github.com/expo/expo/pull/11005, the migration code is present in ~3~2 places:  - ~in `ExpoKit` for managed apps relying on legacy notifications~  - in `expo-constants` for bare workflow apps and for managed workflow apps (`EXKernel` now uses `expo-constants` directly to fetch installation ID)  - in `expo-notifications` for bare workflow apps that for some reason do not get UUID migrated by `expo-constants` (eg. because they do not have `expo-constants` installed or have installed in older version).- To expose common, migrated `deviceInstallUUID` to versioned `expo-constants` code I&apos;ve added a simple kernel service plugged into already versioned `EXConstantsBinding`s.# Test PlanI have verified (previously) that:- `Constants.installationId` from running Expo client on `master` is the same as `.installationId` returned when running Expo client on this branch- `expo-notifications`&apos;s installation ID from running Expo client on `master` is the same as `installationId` returned when running Expo client on this branch- removing and reinstalling Expo client **does not** generate a different installationId (as we know keychain isn&apos;t removed!)- if we fetch an invalid UUID from the Keychain, new UUID is generated- I experienced an app freeze once on `__ulock_wait`, when waiting for return from `SecItemCopyMatching` which isn&apos;t a common issue and were only a few reports online of# Test approach #2Test scenarios for installation identifiers:- **on an experience running on SDK39 when Expo client upgrades**  - SDK39 `EXConstantsService` used `NSUserDefaults.EXDeviceInstallUUIDKey` which is now cleared by migration. Patched `EXConstantsService` uses `EXDeviceInstallUUIDManager` kernel service which provides it with the &quot;common&quot; ID, migrated from the `NSUserDefaults.EXDeviceInstallUUIDKey`, so the value doesn&apos;t change. &#9989;   - SDK39 `EXInstallationIdProvider` used `NSUserDefaults.ABI39_0_0EXDeviceInstallUUIDKey` which is not cleared by any migration. **Identifier keeps being backed-up** but it doesn&apos;t change. &#9888;&#65039; - **when an experience using SDK39 upgrades to SDK40 in Expo client**  - SDK39 `EXConstantsService` used `NSUserDefaults.EXDeviceInstallUUIDKey` which got migrated to keychain. SDK40 `EXConstantsService` uses the same keychain entry as the migrator, so they&apos;re using the same value. &#9989;   - SDK39 `EXInstallationIdProvider` used `NSUserDefaults.ABI39_0_0EXDeviceInstallUUIDKey` while SDK40 uses common device UUID the sources are obviously different. Token changes. &#10060;  This is a bug introduced with `expo-notifications` Expo client integration, we can&apos;t do anything about it apart from fixing it in SDK40, IDs for old SDKs are already created and will be used in corresponding SDKs and if we didn&apos;t do anything about it in SDK40, the ID per experience would change nonetheless, so let&apos;s change it this time for the last time.- when standalone app using SDK39 upgrades to SDK40  - Unversioned SDK39 `EXConstantsService` used `NSUserDefaults.EXDeviceInstallUUIDKey` which gets migrated to keychain, unversioned SDK40 `EXConstantsService` uses the same keychain entry as common UUID, no changes. &#9989;   - Unversioned SDK39 `EXInstallationIdProvider` used `NSUserDefaults.EXDeviceInstallUUIDKey` which gets migrated to keychain, unversioned SDK40 `EXInstallationIdProvider` uses the same keychain entry as common UUID, no changes. &#9989; - when an SDK39 project ejects to bare  - SDK39 `EXConstantsService` used `NSUserDefaults.EXDeviceInstallUUIDKey`, the same which is used in bare, &#9989;   - SDK39 `EXInstallationIdProvider` used `NSUserDefaults.EXDeviceInstallUUIDKey` in standalone apps, but `NSUserDefaults.ABI39_0_0EXDeviceInstallUUIDKey` in Expo client. Token changes on developers&apos; devices. &#9888;&#65039; - when an SDK40 project ejects to bare  - SDK40 `EXConstantsService` used `EXDeviceInstallUUIDKey` keychain entry, the same which is used in bare, &#9989;   - SDK40 `EXInstallationIdProvider` used `EXDeviceInstallUUIDKey` keychain entry, the same which is used in bare (`EXDeviceInstallUUIDKey`), &#9989; - when a bare project upgrades `expo-notifications` or `expo-constants`  - both projects have migrators that move `EXDeviceInstallUUIDKey` value from `NSUserDefaults` to keychain, token doesn&apos;t change. &#9989;

            List of files:
            /expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h</description>
        <pubDate>Thu, 19 Nov 2020 12:52:49 +0000</pubDate>
        <dc:creator>Stanis&#322;aw Chmiela &lt;sjchmiela@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>b8e86ac0 - [ios][et] Remove Fabric and Crashlytics on iOS (#8160)</title>
        <link>http://172.16.0.5:8080/history/expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h#b8e86ac0</link>
        <description>[ios][et] Remove Fabric and Crashlytics on iOS (#8160)# WhyPart of #8047 - not closing yet because I&apos;m gonna make separate PR for Android.# HowI removed:- Fabric and Crashlytics from `Podfile` and run `pod install`.- code calling Fabric &amp; Crashlytics libraries.- `et ios-run-fabric` command and its `run-fabric.sh` build phase in general.- modifying `Info.plist` while generating dynamic macros, it was used only to apply fabric&apos;s api key.- `et ios-cleanup-dynamic-macros` command - no longer needed if we don&apos;t modify `Info.plist`.- Fabric&apos;s key from `Info.plist`.## Side notesPreviously, once Crashlytics detects a crash, we set a flag in user defaults and then if that flag is set we invalidated cached kernel&apos;s bundle. After these changes, kernel&apos;s bundle won&apos;t be invalidated. I chatted with James and he agrees that we actually don&apos;t need this anymore.# Test PlanXcode project builds and works as expected.

            List of files:
            /expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h</description>
        <pubDate>Wed, 06 May 2020 21:45:25 +0000</pubDate>
        <dc:creator>Tomasz Sapeta &lt;1714764+tsapeta@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>05aa4e6c - [ios] Fix dev menu classes being used in detached mode</title>
        <link>http://172.16.0.5:8080/history/expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h#05aa4e6c</link>
        <description>[ios] Fix dev menu classes being used in detached mode

            List of files:
            /expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h</description>
        <pubDate>Mon, 04 May 2020 17:44:25 +0000</pubDate>
        <dc:creator>Tomasz Sapeta &lt;tsapeta@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>f67462bc - [ios][home] Add three finger gesture to open the dev menu + some refactoring (#7891)</title>
        <link>http://172.16.0.5:8080/history/expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h#f67462bc</link>
        <description>[ios][home] Add three finger gesture to open the dev menu + some refactoring (#7891)# WhyFixes #7644 and brings us closer to the separate `expo-dev-menu` package that can live without kernel.Also fixed https://twitter.com/bantingGamer/status/1251154340129062917# How- Added `EXDevMenuManager` singleton that manages the dev menu. Most parts of it were in kernel or some others classes strongly connected with kernel. Now, kernel is just its delegate.- Refactored `EXKernelDevMotionHandler` to `EXDevMenuMotionInterceptor` which is much clearer and makes it possible to uninstall the interceptor (these interceptors are kinda hacky, I tried not to do them this way but well, RN does the same &#55358;&#56631;).- Added `EXDevMenuGestureRecognizer` for long press gesture, with minimum press duration set to 0.5s and with light impact haptic feedback.- Added `EXDevMenuGestureInterceptor` that swaps the default implementation of `UIView#gestureRecognizers`, but only for `UIWindow`s. This is needed to make three-finger gesture work everywhere in the app.- Renamed `EXMenuViewController` to `EXDevMenuViewController` (all dev menu classes should be prefixed by `EXDevMenu`) and again, removed some connections to kernel.- Added UI in user settings to select dev menu gestures (can select them separately).- Fixed an issue with dev menu view being below modals in the view hierarchy.# Test PlanSo far I&apos;ve tested it only with published experience. I&apos;m gonna do smoke tests on dev apps later.I mostly focused on testing whether:- the dev menu works in general (after refactoring)- three-finger gesture works on the initial screen of the app, on the modals and on the dev menu itself- all combinations of selected gestures work as expected- selected gestures persist after killing and relaunching the client

            List of files:
            /expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h</description>
        <pubDate>Tue, 21 Apr 2020 20:23:05 +0000</pubDate>
        <dc:creator>Tomasz Sapeta &lt;1714764+tsapeta@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>b333b418 - [ios][android] Make redbox and rr (android) and cmd+r (ios) reload manifest and JS rather than just JS (#6134)</title>
        <link>http://172.16.0.5:8080/history/expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h#b333b418</link>
        <description>[ios][android] Make redbox and rr (android) and cmd+r (ios) reload manifest and JS rather than just JS (#6134)* [ios] Make cmd+r reload manifest and JS rather than just JS* [ios] Reload from dev menu grabs manifest too* [ios] Clean up reload code and ensure redbox injection code works outside of developer mode* [android] Reload on dev menu also reloads from manifest* [ios] Fix typo* [android] Reload from manifest from redbox and with rr shortcut* [android] Address feedback* [react-native-lab] Copy changes to ReactAndroid over* [android] Clean up extra newlines* [react-native-lab] Update on sdk-36 branch

            List of files:
            /expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h</description>
        <pubDate>Fri, 08 Nov 2019 02:41:05 +0000</pubDate>
        <dc:creator>Brent Vatne &lt;brentvatne@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>4d0e0805 - [ios][home] remove deprecated client-side authentication checks for opening projects</title>
        <link>http://172.16.0.5:8080/history/expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h#4d0e0805</link>
        <description>[ios][home] remove deprecated client-side authentication checks for opening projects

            List of files:
            /expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h</description>
        <pubDate>Fri, 01 Feb 2019 23:59:31 +0000</pubDate>
        <dc:creator>Eric Samelson &lt;samelson.e@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>7100de8c - [ios] Upgrade notifications framework to User Notifications Framework (#2316)</title>
        <link>http://172.16.0.5:8080/history/expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h#7100de8c</link>
        <description>[ios] Upgrade notifications framework to User Notifications Framework (#2316)* Updated notificationsMoved new permissions files to packagesfixupdated yarn.lockfixesRequested changesfix  after rabaseMade requested changesRenamed UserNotificationCenterProxy classesRun `pod install`* Post-review fixes* Minor JS fixes* Do not remember pending notifications in Expo Client (behavior matching previous one)* Prevent blocking main queue at all times by EXUserNotificationRequester* Do not scope categories identifiers in ejected applications* Apply review comments* Remove obsolete if condition* Do not store resolver and rejecter in EXUserNotificationRequester* Update Pods* Add support for deleting custom notification categories* Pass notification to a remembered experience when tapped a notification in backgrounded Expo Client* Update jest-expo mocks* Ensure permissions consuming happens on permissions queue in EXRemoteNotificationRequester* Do not scope notification identifiers* Change cancelScheduledNotification into cancelScheduledNotificationAsync returning native Promise* Deny scheduleNotificationAsync with both time and repeat set on iOS* Allow scheduleNotificationAsync with both time and repeat set on iOS using deprecated UILocalNotification* Add more notification testing buttons to NCL* Export EXUserNotificationManager service as kernel service* Add EXNotificationsIdentifiersManager protocol capable of scoping and unscoping identifiers* Require both RemoteNotificationManager and UserNotificationManager in EXNotifications module* Scope and unscope action identifiers by EXUserNotificationManager* Update pods

            List of files:
            /expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h</description>
        <pubDate>Mon, 03 Dec 2018 16:36:04 +0000</pubDate>
        <dc:creator>Szymon20000 &lt;szymon20000@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>d699b379 - Fix passing initial notif props to standalone/ExpoKit</title>
        <link>http://172.16.0.5:8080/history/expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h#d699b379</link>
        <description>Fix passing initial notif props to standalone/ExpoKitSee: https://github.com/expo/expo/issues/1691fbshipit-source-id: 5df7144

            List of files:
            /expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h</description>
        <pubDate>Tue, 01 May 2018 17:34:13 +0000</pubDate>
        <dc:creator>Ben Roth &lt;spongebucket@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>9777fddb - add `Updates.reloadFromCache` (#2315)</title>
        <link>http://172.16.0.5:8080/history/expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h#9777fddb</link>
        <description>add `Updates.reloadFromCache` (#2315)* [android][sdk][docs] added Updates.reloadFromCache() on android* [ios] some slight renaming and refactoring in AppLoader to make manifest usage somewhat clearer* [ios] add Updates.reloadFromCache to iosfbshipit-source-id: 0a0321e

            List of files:
            /expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h</description>
        <pubDate>Mon, 16 Apr 2018 20:57:03 +0000</pubDate>
        <dc:creator>Eric Samelson &lt;esamelson@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>2f2bf1c0 - Show clearer information on Expo Client error screen for trying to load an app belonging to a different account</title>
        <link>http://172.16.0.5:8080/history/expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h#2f2bf1c0</link>
        <description>Show clearer information on Expo Client error screen for trying to load an app belonging to a different accountsee: https://github.com/expo/universe/issues/2251fbshipit-source-id: 8e79e5b

            List of files:
            /expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h</description>
        <pubDate>Wed, 11 Apr 2018 21:51:25 +0000</pubDate>
        <dc:creator>Ben Roth &lt;spongebucket@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>00b26551 - Use the new push/getExpoPushToken endpoint with new www client</title>
        <link>http://172.16.0.5:8080/history/expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h#00b26551</link>
        <description>Use the new push/getExpoPushToken endpoint with new www clientThis is a rewrite of how device tokens are registered and sent to our server. There are several changes:- It uses the new `push/getExpoPushToken` endpoint that both saves the APNs device token and returns an Expo push token.- *Breaking change:* Notifications.getExpoPushToken will throw if the app doesn&apos;t have permission to show notifications, instead of returning an Expo push token (that would later fail when trying to send to it).- It saves the token in NSUserDefaults only when it has successfully been registered, allowing us to skip re-registering with our server if the token hasn&apos;t changed across app starts.- More detailed error info, should we need it- Looked over the thread-safety of EXRemoteNotificationManager -- all ivar access happens on the same queue now (which is the main queue, for now, until we leave the deprecated UIApplication API for UserNotifications instead).Fixes #764fbshipit-source-id: cb15b20

            List of files:
            /expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h</description>
        <pubDate>Wed, 07 Mar 2018 19:55:27 +0000</pubDate>
        <dc:creator>James Ide &lt;ide@expo.io&gt;</dc:creator>
    </item>
<item>
        <title>85f025b0 - Restore analytics behavior</title>
        <link>http://172.16.0.5:8080/history/expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h#85f025b0</link>
        <description>Restore analytics behaviorfbshipit-source-id: 51ce815

            List of files:
            /expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h</description>
        <pubDate>Thu, 08 Mar 2018 22:37:40 +0000</pubDate>
        <dc:creator>Ben Roth &lt;spongebucket@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>e7ac6e4f - Restore ErrorRecovery and clean up visible/invisible app interface</title>
        <link>http://172.16.0.5:8080/history/expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h#e7ac6e4f</link>
        <description>Restore ErrorRecovery and clean up visible/invisible app interfacefbshipit-source-id: 917ce6f

            List of files:
            /expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h</description>
        <pubDate>Thu, 08 Mar 2018 19:37:28 +0000</pubDate>
        <dc:creator>Ben Roth &lt;spongebucket@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>928bc3ba - Restore Util.reload in standalone and ExpoKit</title>
        <link>http://172.16.0.5:8080/history/expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h#928bc3ba</link>
        <description>Restore Util.reload in standalone and ExpoKitfbshipit-source-id: d2bd70c

            List of files:
            /expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h</description>
        <pubDate>Wed, 07 Mar 2018 22:15:20 +0000</pubDate>
        <dc:creator>Ben Roth &lt;spongebucket@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>89fd6b24 - restore ExpoKit project wiring</title>
        <link>http://172.16.0.5:8080/history/expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h#89fd6b24</link>
        <description>restore ExpoKit project wiringfbshipit-source-id: 14b07c5

            List of files:
            /expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h</description>
        <pubDate>Tue, 06 Mar 2018 18:58:11 +0000</pubDate>
        <dc:creator>Ben Roth &lt;spongebucket@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>66169681 - Support JS nux, clean up JS loaded notifs</title>
        <link>http://172.16.0.5:8080/history/expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h#66169681</link>
        <description>Support JS nux, clean up JS loaded notifsfbshipit-source-id: b3721f2

            List of files:
            /expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h</description>
        <pubDate>Mon, 05 Mar 2018 18:47:04 +0000</pubDate>
        <dc:creator>Ben Roth &lt;spongebucket@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>2fcba380 - support QR code reader from menu</title>
        <link>http://172.16.0.5:8080/history/expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h#2fcba380</link>
        <description>support QR code reader from menufbshipit-source-id: ebf9f40

            List of files:
            /expo/apps/eas-expo-go/ios/Exponent/Kernel/Core/EXKernel.h</description>
        <pubDate>Sat, 03 Mar 2018 22:57:03 +0000</pubDate>
        <dc:creator>Ben Roth &lt;spongebucket@gmail.com&gt;</dc:creator>
    </item>
</channel>
</rss>
