Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[sdk 33] SDK 33 candidate #4030

merged 28 commits into from Apr 24, 2019


Copy link

commented Apr 19, 2019


This is the candidate branch for SDK with Android and iOS updated. It uses RN 0.59.6 and React 16.8.6. There is still work to do and SDK 33 is not complete but this will let us bring master up to speed.

Test Plan

  • Loaded Home on Android and iOS
  • Ran Jest tests in the expo package -> all passed
  • Verifying that CI passes

@ide ide requested a review from brentvatne as a code owner Apr 19, 2019

@ide ide added the in progress label Apr 19, 2019

@ide ide removed the request for review from brentvatne Apr 20, 2019

@ide ide force-pushed the sdk-33-candidate branch from 9ddc4ab to d0b4f12 Apr 20, 2019

@ide ide requested a review from tsapeta as a code owner Apr 20, 2019

@ide ide force-pushed the sdk-33-candidate branch from d0b4f12 to 585a936 Apr 21, 2019

@ide ide requested a review from sjchmiela as a code owner Apr 22, 2019

@ide ide force-pushed the sdk-33-candidate branch from f4e509b to 10a82ce Apr 23, 2019


This comment has been minimized.

Copy link

commented Apr 23, 2019

Good luck guys and thanks for doing this. I am really excited about this update :)

@ide ide force-pushed the sdk-33-candidate branch 3 times, most recently from 56d6781 to 796a1c0 Apr 23, 2019

ide and others added some commits Apr 19, 2019

[sdk33] Update Android Gradle plugin, Kotlin, and Butter Knife
The new ReactAndroid Gradle file uses a newer `variant.javaCompileProvider` API, so I updated the Android Gradle plugin. In turn, I needed to upgrade Kotlin and Butter Knife to newer versions that support the newer Android Gradle plugin.
[sdk33] Replace Android network config with `android:usesCleartextTra…
…ffic` for dev

Android 9.0 blocks all cleartext (HTTP) traffic by default, which breaks the connection with local development servers. We had a network security config before for FBAds, but it is too fine-grained and allows whitelisting only specific domains rather than ranges of IP addresses. I verified by reading the Android 9 source code that there is no way to specify an IP range:

Tested by building the Expo client for an Android 9 simulator and successfully loading test-suite. Without this change, the client fails to connect tot the dev server and the error log says `Uncaught Error: CLEARTEXT communication to <ip> not permitted by network security policy`.
[sdk33] Update React Navigation, remove unused Detox resolution, remo…
…ve unused side effects

- Updated React Navigation to the latest in Home
- Removed Detox from "resolutions" in the workspace root, since we now just have one copy of Detox. This is because we remove devDependencies from RN in our fork.
- Removed unused side effects files under `expo/src/environment` (these files were renamed but the old copies weren't removed)

Tested by loading Home on iOS.
[sdk33] Update to Jest 24 and a compatible version of ts-jest
- Upgraded to the new version of Jest that RN uses
- Upgraded to a compatible version of ts-jest
- Memoized UIManager in jest-expo's setup.js so that calling jest.resetModules() doesn't break things. The correct fix later is to make RN's UIManager.js idempotent.

Test plan: Ran yarn test in the expo package.
[sdk33][jest] Update jest-expo's jest-preset to handle RN's new JS pr…

RN moved from JSON to JS for its Jest preset, so we need to change ours now. We previously generated our Jest preset ahead of time based on RN's JSON, but now our preset is JS as well and reads in and transforms RN's preset at runtime.

Tested by running the Jest tests in the expo package.

The path to the assetFileTransformer wasn't right, causing Home tests to fail. Now Home tests pass.

Fail fast and often

tsapeta and others added some commits Mar 21, 2019

Update packages/expo-gl-cpp/android/src/main/jni/EXGL.cpp
Co-Authored-By: wkozyra95 <>
[sdk33] Upgrade all SoLoader references to 0.6.0
SoLoader was upgraded to 0.6.0 in RN 0.59. It is backwards-compatible with SoLoader 0.5.1, which was not backwards-compatible with SoLoader 0.1.0.

This is OK, since RN 0.57 upgraded to SoLoader 0.5.1 and that is the oldest RN version we are including in the next Expo Client with SDK 31 & 32. We are dropping SDK 30 and older, which used RN 0.55.

So, we don't need to patch SoLoader 0.6.1 with hand-written JVM bytecode (see 7b5d52e for the patch) and include it in our local Maven repository and can just use the regular copy from Maven Central. Also, this means we can use a newer javac, which disallows .class files with two methods that differ only by return type -- the technique we were relying on to simultaneously support SoLoader 0.1.0 and 0.5.1 previously.

@ide ide force-pushed the sdk-33-candidate branch from 796a1c0 to 1d22d5b Apr 24, 2019

@ide ide merged commit 66d2c30 into master Apr 24, 2019

3 of 4 checks passed

client_shell_app Workflow: client_shell_app
client Workflow: client
docs Workflow: docs
sdk Workflow: sdk

This comment has been minimized.

Copy link

commented Apr 25, 2019

Can we use this already? I mean, does expo init use this version right away?


This comment has been minimized.

Copy link

commented Apr 25, 2019

No, this PR only updates react-native to v0.59 for the future releases. There is still some work ahead of us before we roll out SDK33. We will announce that soon.

I'm locking this conversation, if you have more questions please ask us on forums.

@expo expo locked and limited conversation to collaborators Apr 25, 2019

@ide ide deleted the sdk-33-candidate branch May 17, 2019

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
None yet
5 participants
You can’t perform that action at this time.