Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
292 lines (241 sloc) 38.8 KB

Changelog

This is the log of notable changes to the Expo client that are developer-facing.

master

📚 3rd party library updates

🛠 Breaking changes

  • Google.logInAsync() now accepts a redirectUrl value for apps running in the Expo Client. Previously, it would ignore this, so if you are passing a value, make sure to follow the guidelines (#4904 by @cruzach)

🎉 New features

  • added an option which allows displaying notifications in foreground on iOS by @hesyifei (#4802)
  • added rich content supports for push notifications by @hesyifei (#4787)
  • added lazyImports option in babel-preset-expo which allows lazy-initializing/inline-requiring packages by @hesyifei (#4685)
  • added the possibility to get MediaLibrary assets from specific time range. (#5166 by @tsapeta)
  • added Next.js supports with Expo for Web by @hesyifei (#5275)

🐛 Bug fixes

  • fixed MediaLibrary assets' width and height were sometimes equal to 0. (#4935 by @lukmccall)
  • fixed location background mode was required to use geofencing. (#5198 by @tsapeta)
  • fixed Calendar.createEventAsync crashing with relativeOffSet due to invalid type conversion from double to integer by @vivianzzhu91 (#5134)
  • fixed AppAuthModule.createOAuthServiceConfiguration typo resulting in crashes when registrationEndpoint is not specified in config.

34.0.0

📚 3rd party library updates

  • react-native-gesture-handler updated from 1.2.1 to 1.3.0
  • react-native-branch updated from 2.2.5 to 3.1.1
  • react-native-reanimated updated from 1.0.1 to 1.1.0
  • react-native-svg updated from 9.4.0 to 9.5.1
  • react-native-webview updated from 5.8.0 to 5.12.0
  • @react-native-community/netinfo updated from 2.0.10 to 3.2.1

🛠 Breaking changes

  • Removed promptMessageIOS string argument from LocalAuthentication.authenticateAsync in favor of options object. (#4631 by @tsapeta)
  • Removed Calendar.DEFAULT and replaced it with null. (#4836 by @lukmccall)

🎉 New features

  • Added fallbackLabel option to LocalAuthentication.authenticateAsync on iOS which allows to customize a title of the fallback button when the system doesn't recognize the user and asks to authenticate via device passcode. (#4612 by @changLiuUNSW)
  • added native mode for Android SplashScreen on standalone apps by @bbarthec (#4567)
  • added support for video recording in ImagePicker.launchCameraAsync. (#4903 by @lukmccall)
  • added support for ph:// URLs to expo-file-system (#5195 by @sjchmiela)

🐛 Bug fixes

  • fixed BarCodeScanner blocking UI when defining custom barCodeTypes on iOS by @sjchmiela
  • fixed picking images over 2000px on Android by @bbarthec (#4731)
  • fixed Calendar.getEventsAsync crashing if calendarId is SQL keyword by @lukmccall (#4836)
  • fixed BOOL interpretation on 32-bit iOS devices by @lukmccall (#4862)
  • fixed AV rejecting to further load an asset once any loading error occured (#5105) by @sjchmiela)
  • fixed AV resetting player whenever props changed (#5106) by @sjchmiela)
  • fixed bar code scanning crash if the result couldn't be converted to string (#5183) by @sjchmiela)
  • fixed camera crash in standalone apps (#5194) by @sjchmiela)

33.0.0

🛠 Breaking changes

  • updated react-native-gesture-handler to 1.2.1 by @mczernek (#4159)
  • updated react-native-svg to 9.4.0 by @Szymon20000 and @mczernek (#3860, #4159)
  • updated @react-native-community/netinfo to 2.0.10 by @sjchmiela (#4153)
  • updated react-native-reanimated to 1.0.1 by @dsokal (#4023)
  • removed deprecated MediaView and TriggerView from expo-ads-facebook by @EvanBacon (#3539). You should use AdMediaView & AdTriggerView instead.
  • deprecated Expo.Util by @EvanBacon (#3539). You should use Expo.Updates & Expo.Localization instead.
  • removed use of expolib_v1.okhttp in favor of regular okhttp dependency by @Szymon20000 (#3539) (an update to MainApplication.getOkHttpBuilder may be required when upgrading)
  • corrected behavior of splash screen image based on resizeMode in Android standalone apps (contain and cover were handled contrary to what docs state) by @bbarthec (#3029)
  • Speech.speak changed option name from voiceIOS to voice. @Szymon20000 (#3423)
  • renamed Haptic to Haptics and deprecated Haptics.{notification, impact, selection} in favour of Haptics.{notificationAsync, impactAsync, selectionAsync} @bbarthec (#3330)
  • ImageManipulator.manipulateAsync is now accepting ImageManipulator.FlipType.{Vertical, Horizontal} as flipping action parameter and ImageManipulator.SaveFormat.{JPEG, PNG} as saving option @bbarthec (#3245)
  • removed devKernel and prodKernel build flavors from Android ExpoKit projects (all Gradle commands become simply [verb](Debug|Release), e.g. installDebug or assembleRelease) by @esamelson (#3386)
  • renamed IntentLauncherAndroid to IntentLauncher and changed signature of startActivityAsync method by @tsapeta (#3427)
  • fixed crash in WebBrowser.openBrowserAsync when there is no browser supporting customtabs on Android by @mczernek (#3691)
  • WebBrowser.openBrowserAsync on Android resolves promise on opening Custom Tabs instead of on closing by @mczernek (#3691)
  • WebBrowser.dismissBrowser throws UnavailabilityError @mczernek (#3691)
  • added staysActiveInBackground audio mode option that selects whether audio playback or recording should continue when the app is in background by @sjchmiela and @redpandatronicsuk (#3498)
  • renamed the EncodingTypes attribute to EncodingType in the FileSystem module docs to match changes in the source code by @sergeichestakov (#3997)
  • added a warning printed when attempting to store a value longer than 2048 bytes in the SecureStore. (Since SDK35 it will throw an error.) @dsokal (#4084)
  • added UMAppDelegateWrapper which allows easy integration between unimodules and AppDelegate callbacks by @Szymon20000 (#3917)
  • changed Constants.platform.ios.buildNumber and Constants.platform.android.versionCode to null when running an app in Expo Client by @dsokal (#4203)
  • upgraded react-native-maps to 0.24.2 by @sjchmiela (#3389, #4158, ejected projects will need to add HAVE_GOOGLE_MAPS=1 preprocessor definition to Podfile)
  • removed option sortBy.id in expo-media-library by @jkhales (#4221)

🎉 New features

  • updated react-native-view-shot to 2.6.0 by @sjchmiela (#4175)
  • added VideoThumbnails API allowing you to thumbnail videos by @graszka22 (#3980)
  • upgraded react-native-lottie to 2.6.1 by @sjchmiela (#4147)
  • BarCodeScanner is now returning barcode's bounding box @Szymon20000 (#2904)
  • added method Speech.getAvailableVoicesAsync() @Szymon20000 (#3423)
  • added BackgroundFetch support for Android by @tsapeta (#3281)
  • incorporated react-native-webview@5.4.6 into Expo SDK by @sjchmiela (#3748)
  • added support for overriding MIME type in IntentLauncherAndroid.startActivityAsync for Android by @rhunt4675 (#3300)
  • added Location.enableNetworkProviderAsync method to ask the user to turn on high accuracy location services by @tsapeta (#3273)
  • upgraded Facebook Audience Network SDK dependency to 5.1.1 (iOS) by @sjchmiela (#3394)
  • upgraded Facebook Core- and LoginKit dependency to 4.40.0 by @sjchmiela (#3394)
  • upgraded Facebook SDK dependency to 5.0.1 (Android) by @sjchmiela
  • upgraded react-native-webview to 5.8.1 by @sjchmiela (#4146)
  • added Firebase integration to expo-analytics-segment by @sjchmiela (#3615)
  • added support for new arguments in WebBrowser.openBrowserAsync as described in the documentation by @mczernek (#3691)
  • added tags support in KeepAwake.activate and KeepAwake.deactivate by @mczernek #3747
  • added deferredUpdatesInterval and deferredUpdatesDistance options that defer background location updates by @tsapeta (#3548)
  • added foregroundService option to background location (Android Oreo and newer) by @tsapeta (#3837)
  • added support for picking animated GIFs with ImagePicker by @sjchmiela (#3844)
  • added support for headers in downloadAsync method in FileSystem by @mczernek (#3911)
  • added support for custom poster styles in Video by @sjchmiela (#4165)
  • added pausesUpdatesAutomatically option to automatically pause background location updates based on the activityType by @tsapeta (#4167)
  • added ability to load fonts by remote URI by @seekshiva (#2745)
  • added support for 64 bit platforms by @wkozyra95 (#4565)

🐛 Bug fixes

  • fixed several windows compatibility issues with expo-yarn-workspaces by @nattyrice
  • fixed several issues related to expo-av by @Szymon20000 (#3539)
  • Location.getCurrentPositionAsync and Location.watchPositionAsync are now automatically asking for high accuracy location services by @tsapeta (#3273)
  • fix Location.getCurrentPositionAsync hanging on simultaneous calls by @tsapeta (#3273)
  • fix ImagePicker.launchImageLibraryAsync and ImageManipulator.manipulateAsync in SDKs lower than 32 @bbarthec (#3159)
  • fix app crash when attempting to console.log(Object.create(null)) by @juangl (#3143)
  • GoogleSignInOptions.offlineAccess is now corrected GoogleSignInOptions.isOfflineEnabled
  • fix SMS.sendSMSAsync crash on android for empty addresses list. Promise won't be rejected when there is no TELEPHONY feature on Android device, only when there is no SMS app by @mczernek (#3656)
  • fix MediaPlayer not working on Android. by @mczernek (#3768)
  • fix big OkHttpClient memory usage on Android (reuse instances) by @sjchmiela (#4264)
  • fixed Localization.isRTL always being true on iOS by @sjchmiela (#3792)
  • fixed adding/removing react children to Camera preview on Android by @bbarthec (#3904)
  • changed FileSystem requests timeout for downloading resumables from 10 seconds to 60 seconds on Android (now the timeout is 60s on both platforms) by @Szymon20000 (#3872)
  • removed unwanted downsampling of big images when using ImageManipulator on Android by @bbarthec (#3928)
  • fixed tablet splash always being shown in Expo Client if specified by @GfxKai (#3538)
  • the properties parameter of Segment.screenWithProperties is now a { [key: string]: any }, instead of a string by @juampi92 (#4053)
  • allow manipulating http:// and https:// files using ImageManipulator on iOS by @bbarthec (#3982)
  • providing onPlaybackStatusUpdate property to Video doesn't show a warning anymore by @sjchmiela (#4130)
  • calling FileSystem.downloadAsync will now raise an error when a target local directory doesn't exist by @dsokal (#4142)
  • flush UI blocks when needed, which fixes eg. Camera.takePicture not resolving on iOS by @sjchmiela (#4125)
  • fixed MediaLibrary.createAssetAsync crashing when supplying local asset URIs without file:// protocol by @tsapeta (#4189)
  • fixed EXC_BAD_ACCESS crashes on startup on iOS below 12.0 by @tsapeta (#4227)
  • fix jest-expo Jest executable not starting Node on Windows by @Artorp (#3477)
  • fixed crashes in TaskManager due to jobs queue being full by @tsapeta (#4247)
  • allow console.log() function to log truncated large files instead of reporting a PayloadTooLargeError. @vivianzzhu91 (#4419)
  • fixed sorting in MediaLibrary.getAssetsAsync by @ninjaachibi (#4420)

32.0.0

🛠 Breaking changes

  • deprecated import { Font } from 'expo-font' in favor of individually named exports (import * as Font from expo-font) for better dead-export elimination potential. Upgrade @expo/vector-icons if you get a warning about this. By @ide (264c17cd)
  • removed deprecated internal Expo modules (Crypto, Fabric, and ImageCropper), which were never part of the Expo API by @ide (#2880)
  • removed deprecated Expo.Fingerprint API, which has been renamed to Expo.LocalAuthentication to reflect other forms of authentication (ex: FaceID) by @ide (24e94d5)
  • removed deprecated default export from the expo package. Instead of import Expo from 'expo', write import { A, B, C } from 'expo' or import * as Expo from 'expo'. By @ide (#2865)
  • removed deprecated support for passing an array into Font.loadAsync. This feature displayed a deprecation warning for several SDK versions so if you didn't see it, this change shouldn't affect you.
  • deprecated enableHighAccuracy option in Location module in favor of accuracy which gives much more options by @tsapeta (#2338)
  • removed support for deprecated onBarCodeRead prop on Camera component by @Szymon20000 (#2820) (use onBarCodeScanned property)
  • updated underlying Stripe dependency to 8.1.0 on Android and 13.2.0 on iOS and updated expo-payments-stripe with latest updates to tipsi-stripe (up to 6.1.2) by @sjchmiela (#2766). This change dropped support for Bitcoin payments in SDK31.
  • removed READ_SMS use of permission on Android, SMS.sendSMSAsync will now always resolve with { result: 'unknown' } by @esamelson (#2982)
  • upgraded Android build tools — Gradle to 4.10.2, Gradle plugin to 3.2.1 by @sjchmiela (7292c27, d0c8b8d)
  • removed run.sh script from android directory in favor of fastlane android start command by @nicknovitski (9301e95)
  • removed minSdk application flavor from Android project (all Gradle commands in format [verb][minSdkFlavor]minSdk[remoteKernelFlavor]Kernel[buildType], eg. assembleDevMinSdkDevKernelDebug become [verb][remoteKernelFlavor]Kernel[buildType], eg. assembleDevKernelDebug) by @sjchmiela (3b5e158)
  • calling Haptic methods on Android will now raise an error instead of a warning by @EvanBacon (#2787)

🎉 New features

  • added locales on Android ([ar, cs, de, es-rGT, fr, he, jt, ja, ko, nb, nl, pl, pt-rBR, ru-rRU, vi, zh, zh-rCN, zh-rTW]) in ImagePicker.{launchImageLibraryAsync, launchCameraAsync} when using { allowsEditing: true } option by @bbarthec (#2955)
  • added support for passing refs created by React.createRef to takeSnapshotAsync by @sjchmiela (#2771)
  • upgraded Gradle plugin (to 3.2.1) and its wrapper (to 4.10.2) by @sjchmiela (#2716)
  • added new TaskManager module that paves the way to background code execution by @tsapeta (#2338)
  • added API for background location updates by @tsapeta (#2338)
  • added geofencing to Location module by @tsapeta (#2338)
  • added new BackgroundFetch module (iOS only) by @tsapeta (#2338)
  • allowed Expo Jest preset to use TypeScript files by @dalcib (#2810)
  • allowed selecting voice used by Speech on iOS by @pyankoff (#2833)
  • removed obsolete assets from standalone apps by @sjchmiela (#2850)
  • added support for notifications categories by @Szymon20000 and @sjchmiela (#2316, #2557)
  • upgraded libraries: react-native-gesture-handler to 1.0.12, react-native-screens to 1.0.0-alpha.22, react-native-reanimated to 1.0.0-alpha.11 by @tsapeta and @sjchmiela (#2977, #3078, #3172, #3232)

🐛 Bug fixes

  • fixed problem with rerendering SVG (updated react-native-svg to 8.0.10) by @Szymon20000 (#3019)
  • fixed wrong type casting in SQLite result @Szymon20000 (#3005)
  • fixed sending multiple consecutive SMS messages on iOS @bbarthec (#2939)
  • fixed GLView initialization with texture of size 0 on Android by @bbarthec (#2907)
  • fixed app cache size blowing up when using ImagePicker by @sjchmiela (#2750)
  • fixed compression in ImagePicker by @Szymon20000 (#2746)
  • fixed FileSystem forbidding access to external directories by @Szymon20000 (#2748, #2808)
  • upgraded Facebook SDK dependency to 4.39 by @Szymon20000 and @sjchmiela (#2710, #3243)
  • fixed object not beign decycled when sending logs to remote console by @sjchmiela (#2598)
  • unified linear gradient behavior across platforms by @sjchmiela (#2624)
  • fixed device orientation not being used when recording videos by @flippinjoe (expo-camera#2)
  • fixed handling quality option passed to Camera.takePictureAsync on Android properly by @Szymon20000 (#2692)
  • fixed resumable downloads on iOS by base64-encoding resumeData by @Szymon20000 (#2698)
  • fixed Permissions.LOCATION issue that wouldn't allow asking for it in a multi-permission call by @sjchmiela (304fe560)
  • fixed onActivityResult not being called on listeners registered to ReactContext by @sjchmiela (#2768)
  • fixed fatal exception being thrown sometimes on Android when detecting barcodes by @sjchmiela (#2772)
  • fixed GLView.takeSnapshotAsync crashing on Android if framebuffer option is specified by @tsapeta (#2888)
  • fixed onPlaybackStatusUpdate not being called with didJustFinish: true when playing with looping enabled on Android by @sjchmiela (#2923)
  • fixed bundle building/downloading progress indicator not showing in ejected apps by @sjchmiela (#2951, #2954)
  • fixed subscription.remove() not calling native stopObserving() for universal modules by @ide (#2897)
  • fixed calendar ID being returned as integer instead of a string on Android (when calling eg. Calendar.createCalendarAsync) by @Szymon20000 (#3004)
  • fixed wrong fling direction for inverted ScrollViews on Android by @mandrigin (pulled in from React Native facebook/react-native@b971c5b)
  • fixed snapping Android ScrollViews with pagingEnabled by @olegbl (pulled in from React Native facebook/react-native@0869e54)
  • fixed Contacts failing to add and remove contacts on Android by @tsapeta (#3017)
  • fixed Permissions.CONTACTS not asking for Android's WRITE_CONTACTS permission by @tsapeta (#3017)

31.0.6

  • fixed expo-cli wrapper failing on Windows by @fson (#2853)

31.0.5

31.0.4

31.0.3

31.0.2

  • pass undefined through for startPoint and endPoint rather than null in LinearGradient by @brentvatne (643969)
  • remove require cycle in AV by @ide (18d54da)

31.0.1

  • filter out warnings about require cycles in node_modules by @ide (68d130d)

31.0.0 (Partial Changelog)

🛠 Breaking changes

  • The default export from the expo package is deprecated in favor of named exports to pave the way for static analysis tools by @ide (#2387)
  • remove default user_friends permission when authenticating with Facebook module by @EvanBacon (2ad86fad)
  • dropped iOS 9 support by @Szymon20000 (#2324)
  • upgrade react-native-svg to 8.0.8 by @sjchmiela and @esamelson (#2492)
  • upgrade React Native to v0.57.1 by @ide (series of commits, eg. 250589)
  • change translation field to adTranslation in an ad object returned by FacebookAds.NativeAdView by @ide (ece59aa)
  • refreshed, bug-free Localization API by @EvanBacon (#2327)
  • drop Android 4.4 support by @bbarthec (#2367)
  • upgrade underyling Facebook SDK native dependencies to 4.37.0 by @sjchmiela (#2508)
  • upgrade react-native-view-shot to 2.5.0 by @sjchmiela (#2518)
  • upgrade react-native-maps to 0.22.1 by @tsapeta and @sjchmiela (#2496, #2680)
  • FacebookAds.TriggerableView is now FacebookAds.AdTriggerView
  • FacebookAds.MediaView is now FacebookAds.AdMediaView
  • The Speech API’s "onError" function is passed an Error instead of a string
  • Flow types have been removed as we begin to migrate to TypeScript over the next few SDK releases
  • Several Haptic enum types have been renamed: NotificationTypes → NotificationFeedbackType, ImpactStyles → ImpactFeedbackStyle
  • Several AR enum types have been renamed: BlendShapes → BlendShape, FaceAnchorProps → FaceAnchorProp, PlaneDetectionTypes → PlaneDetection, WorldAlignmentTypes → WorldAlignment, EventTypes → EventType, AnchorTypes → AnchorType, AnchorEventTypes → AnchorEventType, FrameAttributes → FrameAttribute, TrackingStates → TrackingState, TrackingStateReasons → TrackingStateReason, TrackingConfigurations → TrackingConfiguration
  • Audio.Sound.create has been renamed to createAsync

🎉 New features

  • return permitted/declined permissions arrays when authenticating with Facebook module by @EvanBacon (2ad86fad)
  • Base64 encoding support for FileSystem by @EvanBacon (#2328)
  • video stabilization support in Camera by @n8 (#2241)
  • add support for asking for an authorization to always access location data by @sjchmiela (#2343)
  • upgrade react-native-gesture-handler to 1.0.8, react-native-reanimated to 1.0.0-alpha.10, react-native-screens to 1.0.0-alpha.15 by @brentvatne (eb2a463, 9bf1754)
  • add Segment.{get,set}EnabledAsync feature by @sjchmiela (#2412)
  • add an Android-only timeout option to Location.getCurrentPositionAsync by @bbarthec (#2369)
  • add support for providing custom headers to send when requesting media source by @sjchmiela (#2431)
  • add Segment.alias support by @sjchmiela (#2440)
  • upgrade Android JSC to r224109 by @esamelson and @Kmakinator (#2437)
  • add LocalAuthentication.supportedAuthenticationTypes method by @bbarthec (#2450)
  • add support for new Apple devices to Constants by @tsapeta (#2410)

🐛 Bug fixes

  • fix react-native-svg toDataURL() method throwing error (undefined is not an object (evaluating 'RNSVGSvgViewManager.toDataURL')) on Android by @sjchmiela (#2492)
  • fix nested traits and properties being stringified on Android in the Segment module, instead of being reported as objects by @sjchmiela (expo-analytics-segment#2, #2517)
  • handle specified behavior on Android when authenticating with Facebook by @EvanBacon (2ad86fad)
  • fix MediaLibrary returning stale assets from getAssetsAsync by @Aasfga (#2106, 09cba8d)
  • fix Pedometer.watchStepCount erroring on Android by @Szymon20000 (#2147, dea2967)
  • fix Branch links not working when first opened on iOS by @AdamPD (#2158)
  • asking for Permissions.BRIGHTNESS no longer throws AbstractMethodError exception on some Android devices by @bbarthec (#2342)
  • properly handle some screen orientation configurations (on iPhone X PortraitUpsideDown is not supported) by changing sync ScreenOrientation.allow method to async ScreenOrientation.allowAsync throwing an error when trying to set an unsupported screen orientation configuration by @bbarthec (af2d7e3)
  • fix Linking.getInitialURL returning a customschemed:// URL instead of the one that really redirected to the application by @schneidmaster (#2352)
  • fix FaceDetector settings not being applied on the first run by @sjchmiela (#2308)
  • update cameraview AAR for it to contain getCameraId() method by @sjchmiela (expo-camera#4, #2323)
  • fix rerendering of ads provided by FacebookAds module by @ide (85f2014)
  • fix a fatal exception being thrown when pausing a resumable download on iOS 12 by @sjchmiela (#2404)
  • fix universal modules being initialized twice by @sjchmiela (#2417)
  • fix media players refusing to redirect from a HTTPS URL to another HTTPS URL on Android by @sjchmiela (#2403)
  • fix SMS.sendSMSAsync not returning correct result on Android by @bbarthec (#2452)
  • fix barcode scanner not working on Pixel 2 by @alexshikov (#2081)
  • fix “Font doesn't support automatic scaling” errors on iOS < 12 by @sjchmiela (#2480)
  • fix missing “Orientation” tag in ImagePicker EXIF data by @bbarthec (#2432)
  • fix react-native-screens compatibility with Expo by @tsapeta (#2509)
You can’t perform that action at this time.