Releases: ReactVision/virocore
v2.54.0
React Viro β v2.54.0 Release Notes
Release date: March 31, 2026
What's New
Semantic Masking
Virtual objects can now react to what the camera sees in the real world. A material can be configured to appear only on specific surfaces β for example, render a cloud effect exclusively on pixels classified as sky, or hide a character wherever a person is detected. Eleven real-world categories are supported: sky, building, tree, road, sidewalk, terrain, structure, object, vehicle, person, and water. Available on both Android and iOS.
iOS setup: Semantic masking on iOS requires the ARCore Semantics pod. Add includeSemantics: true to your Expo plugin config in app.json to have it included automatically. If you are already using provider: "arcore" or includeARCore: true, the pod is already included and no extra config is needed.
["@reactvision/react-viro", {
"ios": {
"includeSemantics": true
}
}]Animated GLB Models
3D models in GLB/glTF format with embedded animations now play correctly. This covers the three main animation systems used by artists β skeletal rigs (character movement), morph targets (facial expressions, blend shapes), and skinning (soft-body deformation). No extra configuration is needed; animations embedded in the file are automatically available.
Permission Helpers
Two new utility functions make it easier to handle camera and location permissions:
requestRequiredPermissions(permissions?)β prompts the user for the specified permissions. Pass a list to request only what your feature needs ("camera","microphone","storage","location"), or call with no arguments to request all four at once.checkPermissions(permissions?)β reads the current permission status without prompting the user. Useful for checking what has already been granted before deciding whether to ask.
Expo 54 & 55 Support
The package is now compatible with both Expo SDK 54 and Expo SDK 55.
Bug Fixes
Android β App crash on launch (Android 15 / 16)
Apps were crashing immediately on launch on devices running Android 15 or 16 due to a new 16 KB memory page-size requirement introduced by Google. All native libraries have been rebuilt to comply with the new standard.
Android β App crash after returning from background
A combination of three separate issues caused a guaranteed crash whenever the operating system suspended the app and reclaimed GPU memory. On resume, the app attempted to use GPU resources that no longer existed. All three root causes have been fixed; the app now recovers cleanly from background suspension.
Android β ViroARImageMarker detection callback not firing
The onAnchorFound callback on ViroARImageMarker was never called on Android, making it impossible to respond to image detection events in JavaScript. The native event bridge has been corrected.
Android β Model texture overlaying the screen during video recording
When recording AR scenes, the 3D model's texture was incorrectly rendered over the entire screen instead of just the model. This was caused by a stale GPU state cache when switching between the display and recording graphics contexts. The cache is now correctly reset on each context switch.
iOS β Portal scene interior not rendering (#452)
On iOS, looking through a ViroPortalScene showed only the camera feed β none of the 3D content inside the portal was visible. This was caused by leftover GPU stencil state from the previous frame that prevented interior content from passing the render test. The stencil state is now correctly reset each frame.
iOS β EAS cloud build failure (Podfile syntax error) (#441)
iOS builds through Expo Application Services (EAS) were failing with a CocoaPods syntax error in the generated Podfile. The Expo plugin now generates a valid Podfile in all build environments.
Summary
| Area | Change |
|---|---|
| New feature | Semantic masking for materials (Android + iOS) |
| New feature | Animated GLB β skeletal, morph targets, skinning |
| New feature | requestRequiredPermissions utility |
| New feature | checkPermissions utility |
| Platform | Expo 54 & 55 support |
| Fix β Android | Crash on launch on Android 15 / 16 (16 KB page size) |
| Fix β Android | Crash after returning from background |
| Fix β Android | ViroARImageMarker onAnchorFound never fired |
| Fix β Android | Model texture overlay during video recording |
| Fix β iOS | Portal scene interior content not rendering (#452) |
| Fix β iOS | EAS cloud build Podfile syntax error (#441) |
v2.53.1
Hotfix: In MALI GPU devices, the camera texture may get frozen while switching AR scenes.
v2.53.0
ViroCore v2.53.0 β Release Notes
ReactVision Cloud Anchors (ReactVisionCCA)
Two new providers are available as part of the ReactVisionCCA (RVCA) SDK integration. ReactVisionCCA is a proprietary closed-source library β its implementation is not part of the open-source ViroCore distribution.
Visual Cloud Anchors (RVCCACloudAnchorProvider)
Routes hostCloudAnchor / resolveCloudAnchor through the ReactVision platform instead of Google Cloud Anchors. Set cloudAnchorProvider to reactvision on VROARSession.
- Hosting: scan your environment briefly, then call
hostCloudAnchor. The SDK processes recent camera frames and uploads anchor data to the ReactVision backend. Returns an error immediately if the environment has not been sufficiently observed β no silent fallback. - Resolving: call
resolveCloudAnchorwith the anchor ID. The SDK matches the live camera feed against stored anchor data and returns a pose once a confident localisation is established. Cross-platform (iOS host β Android resolve and vice versa) is fully supported. - TTL:
hostCloudAnchoraccepts attlDaysparameter (1β365) to control anchor expiry on the backend. - GPS tagging: call
setLastKnownLocation(lat, lng, alt)before hosting to embed GPS coordinates as anchor metadata. - Operation tracking:
hostCloudAnchor/resolveCloudAnchorreturn an operation ID; query progress viagetOperationStatus()or cancel viacancelOperation()/cancelAllOperations().
Cloud Anchor management API (no active AR frame required):
| Method | Description |
|---|---|
getCloudAnchor(id) |
Fetch full anchor record including attached assets and resolve stats |
listCloudAnchors(limit, offset) |
Paginated list of anchors for the project |
updateCloudAnchor(id, name, description, isPublic) |
Update anchor metadata |
deleteCloudAnchor(id) |
Permanently delete an anchor |
findNearbyCloudAnchors(lat, lng, radius, limit) |
Proximity search by GPS coordinate |
attachAssetToCloudAnchor(anchorId, ...) |
Attach an uploaded asset (3D model, image, video, etc.) to an anchor |
removeAssetFromCloudAnchor(anchorId, assetId) |
Detach an asset |
trackResolution(anchorId, ...) |
Record a resolve attempt for analytics |
Geospatial Anchors (RVCCAGeospatialProvider)
GPS-based anchors that persist at real-world coordinates. Independent of any AR session β can be used from any C++ context.
CRUD:
| Method | Description |
|---|---|
createAnchor(request) |
Create an anchor at a GPS coordinate with optional scene/asset link |
getAnchor(id) |
Retrieve anchor with full linked content expanded |
listAnchors(limit, offset) |
Paginated list for the configured project |
findNearby(lat, lng, radius, limit) |
Proximity search (radius in metres, default 500 m) |
updateAnchor(id, request) |
Update position, altitude mode, name, description, or linked content |
deleteAnchor(id) |
Permanently delete an anchor |
Content linking:
| Method | Description |
|---|---|
linkSceneAsset(anchorId, sceneAssetId) |
Attach a scene asset to an anchor |
linkScene(anchorId, sceneId) |
Attach a full scene to an anchor |
unlinkContent(anchorId) |
Remove all linked content |
Asset upload:
uploadAsset(assetType, filename, data, appUserId) β uploads a file to ReactVision storage and returns a URL + asset ID. Supported assetType values: "3d-model", "image", "video", "audio". The returned asset ID can be linked to a geospatial anchor via updateAnchor.
Shader modifier system β major expansion
The renderer now supports the full range of custom GPU effects from modifier code:
- Custom
sampler2Duniforms βparseCustomUniforms()no longer skips sampler declarations. Each named sampler in modifier code is assigned its own texture unit and bound at draw time viaVROMaterialSubstrateOpenGL. - Custom varyings β a
varyingslist on a modifier injectsoutdeclarations in the vertex shader and matchingindeclarations in the fragment shader, allowing vertex-stage modifiers (Geometry) to pass typed data to fragment-stage modifiers (Surface / Fragment). - Scene depth buffer access β when a modifier sets
requiresSceneDepth, the choreographer retains the depth render target as a readable texture andVROMaterialSubstrateOpenGLbinds it asscene_depth_texture(+scene_viewport_size) before the draw call. On Adreno/Mali GPUs that cannot sample depth in-pass, an automatic blit toGL_R32Fis inserted. - Live AR camera texture access β when a modifier sets
requiresCameraTexture, the session's camera texture and UV transform matrix are bound asar_camera_texture+ar_camera_transform. On Android,samplerExternalOESand#extension GL_OES_EGL_image_externalare injected automatically; iOS uses a standardsampler2D. Developer GLSL is platform-agnostic. - Deterministic priority ordering β
VROShaderModifierhas apriorityfield. Modifiers are sorted by priority before injection (stable_sort). Engine internals (AR shadow, occlusion) use priority β100; user modifiers default to 0; debug overlays use 100.
AR plane detection improvements
VROARPlaneAnchor::hasSignificantChangesβ threshold logic changed from AND to OR. Previously both the absolute (>1 cm) and relative (>5%) extent thresholds had to pass simultaneously; large mature planes almost never triggered updates. Either threshold now fires an update independently.- Update throttle β the fixed 100 ms minimum interval between plane anchor updates is replaced with an adaptive throttle: 33 ms for the first 20 updates, 66 ms thereafter. Captures ARKit's rapid initial detection burst without flooding the update path at steady state.
- Default detection orientation β horizontal + vertical plane detection now enabled by default at the C++ layer (
VROARScene), iOS native layer (VRTARScene), and JS fallback.
Bug fixes
-
GLB / 3D model colours washed out (
VROMaterialShaderBinding.cpp,standard_fsh.glsl) βmaterial_emissive_colorwas being added to the fragment output for every material. GLB PBR data often carries a non-zero emission value that pushed diffuse+specular results toward white. Removedmaterial_emissive_colorandmaterial_alpha_cutofffrom the standard shader binding; these were incorrectly applied to all materials instead of only emissive/masked ones. -
Android β physics body null-pointer crash on scene close (
ViroRenderer/capi/Node_JNI.cpp) β GL-thread lambdas queued bynativeSetTransformDelegate/nativeRemoveTransformDelegatecallednode->setTransformDelegate()without checkingweak_ptrexpiry. Added expiry guard; expired nodes are now silently skipped. -
iOS β
startVideoRecording/stopVideoRecordingbroken on iOS 17+ (VROViewRecorder.mm,VROViewAR.mm) β multiple independent failures combined:AVAssetWriter startWritingreturn value unchecked, pixel buffer pool not validated, writer created before view was laid out,AVAudioSessionmissingAVAudioSessionModeVideoRecordingandsetActive:YES(ARKit takes over the audio session on iOS 17+). All fixed;generateFinalVideoFilenow falls back to video-only output when audio is unavailable.
v2.52.0
Summary
This release adds shader customization support for iOS and Android, fixes critical memory leaks, and improves AR depth functionality.
Key Features
Shader System (New)
- Cross-platform shader support
- Real-time shader customization for iOS and Android
- Shader propagation down node trees
- Standardized fragment output
- Texture and animation support in shaders
- Optimized material sharing for better performance
AR & Depth Improvements
- Depth-based AR hit testing
- Monocular depth fallback for non-LiDAR devices
- Fixed depth frame alignment issues
Critical Bug Fixes
- iOS Memory Leaks (Critical): Fixed all memory leaks on iOS platform
- Material Overflow: Fixed cloned materials array overflow crashes
- Portal Crashes: Fixed crashes when unmounting portals on iOS
- Gravity Type Crash: Fixed Android crash (gravity now uses 3D vector
[x, y, z]instead of number) - VRX Asset Loading: Fixed VRX asset loading issues on iOS
- hitResultId: Fixed availability in AR hit tests
Other Improvements
- Performance throttle to prevent system overload
- Refactored thread lock implementation
- Removed debug logs from production code
- Improved TypeScript type definitions
What's Changed
Other Changes
- v2.52.0 - Shader System & Memory Improvements by @doranteseduardo in #295
Full Changelog: v2.51.0...v2.52.0
v2.51.0
What's Changed
- Merge develop β main (AR stability + depth estimation for non-LiDAR) by @doranteseduardo in #289
Full Changelog: v2.50.0...v2.51.0
What's Changed
Other Changes
- Weak Linking for Arcore Pods by @doranteseduardo in #282
- Merge develop β main (AR stability + depth estimation for non-LiDAR) by @doranteseduardo in #289
Full Changelog: v2.50.0...v2.51.0
v2.50.0
ViroCore 2.50.0 Release Notes
New Features
Cloud Anchors
Share AR experiences across multiple devices and platforms. Cloud Anchors enable cross-platform anchor sharing between iOS and Android devices with sub-centimeter accuracy.
- Cross-Platform: Share anchors between iOS and Android devices
- Persistent: Anchors can be stored for 1-365 days
- Accurate: Sub-centimeter accuracy in good conditions
- Scalable: Supports multiple concurrent users
API Highlights:
hostCloudAnchor(anchorId, ttlDays)- Upload anchor to Google's serversresolveCloudAnchor(cloudAnchorId)- Retrieve anchor on another devicecancelCloudAnchorOperations()- Cancel pending operations
Geospatial API
Enable location-based AR experiences using Google's ARCore Geospatial API. Place virtual content at real-world geographic coordinates that persists across sessions.
- Earth Tracking: Track device position using GPS and Visual Positioning System (VPS)
- Three Anchor Types: WGS84 (absolute altitude), Terrain (relative to ground), and Rooftop (relative to buildings)
- VPS Availability Check: Verify if enhanced positioning is available at a location
- Cross-Platform: Works on both iOS and Android
API Highlights:
createGeospatialAnchor(lat, lng, altitude, quaternion)- WGS84 anchorcreateTerrainAnchor(lat, lng, altitudeAboveTerrain, quaternion)- Ground-relative anchorcreateRooftopAnchor(lat, lng, altitudeAboveRooftop, quaternion)- Building-relative anchorgetCameraGeospatialPose()- Get current location with accuracy metricscheckVPSAvailability(lat, lng)- Check VPS support at location
Scene Semantics
ML-powered real-time semantic segmentation of the camera feed. Classify pixels into 12 categories for environment-aware AR experiences.
- 12 Semantic Labels: sky, building, tree, road, sidewalk, terrain, structure, object, vehicle, person, water, unlabeled
- Real-time Processing: Per-frame label fractions
- Use Cases: Outdoor detection, environment-aware content, safety warnings
API Highlights:
isSemanticModeSupported()- Check device supportsetSemanticModeEnabled(enabled)- Enable/disable processinggetSemanticLabelFractions()- Get all label percentagesgetSemanticLabelFraction(label)- Get specific label percentage
Depth Occlusion
Proper visual occlusion of virtual content behind real-world objects.
- Three Modes: Disabled, DepthBased, PeopleOnly
- Realistic Blending: Virtual objects hidden behind real surfaces
- People Segmentation: Option to only occlude behind detected people
- Debug Visualization: Color-coded depth overlay
Requirements:
- iOS: LiDAR devices (iPhone 12 Pro+, iPad Pro 2020+)
- Android: ARCore Depth API compatible devices
Extended glTF Support
Expanded glTF 2.0 support with 17 additional features for improved 3D model compatibility.
Core Geometry & Materials
- Non-indexed geometry support - Primitives without index buffers
- LINE_LOOP primitive type - Converted to line strip with closing segment
- TRIANGLE_FAN primitive type - Converted to individual triangles
- Mipmap filter modes - Proper separation of min/mip filtering
- Alpha masking (MASK mode) - With alphaCutoff support
- Emissive materials - emissiveFactor and emissiveTexture
- STEP animation interpolation - Discrete keyframe transitions
- Sparse accessor support - Override specific buffer values
Camera & Scene
- Perspective cameras - FOV, near/far planes, aspect ratio
- Orthographic cameras - xmag, ymag, clipping planes
- Default scene selection - Respects model.defaultScene
Lighting (KHR_lights_punctual)
- Directional lights - Color, intensity
- Point lights - Color, intensity, range/attenuation
- Spot lights - Color, intensity, range, inner/outer cone angles
Material Extensions
- KHR_materials_unlit - Constant/unlit lighting model
- Normal texture scale - Controls bump intensity
- Occlusion texture strength - Controls AO influence
Requirements
- iOS: iOS 12.0+, ARKit-capable device
- Android: Android 7.0+ (API 24), ARCore-supported device
- Google Cloud: Valid API key with ARCore API enabled (for Cloud Anchors, Geospatial, and Scene Semantics)
- Depth Features: LiDAR (iOS) or ToF sensor/ARCore Depth API (Android)
What's Changed
Other Changes
- fix video crashing on Android because of unresolved ExoPlayer breaking changes by @Buthrakaur in #154
- ARCore 1.43, Fix Broken Builds by @doranteseduardo in #168
- Bump actions/checkout from 3.3.0 to 4.1.6 by @dependabot[bot] in #166
- Bump actions/upload-artifact from 3.1.2 to 4.3.3 by @dependabot[bot] in #162
- Bump actions/setup-java from 3 to 4 by @dependabot[bot] in #147
- Bump maxim-lobanov/setup-xcode from 1.5.1 to 1.6.0 by @dependabot[bot] in #146
- Bump androidx.test:rules from 1.4.0 to 1.5.0 in /android by @dependabot[bot] in #139
- Bump gradle/wrapper-validation-action from 1 to 3 by @dependabot[bot] in #157
- Bump org.jetbrains.kotlin:kotlin-stdlib from 1.8.21 to 2.0.0 in /android by @dependabot[bot] in #169
- Bump actions/checkout from 4.1.6 to 4.1.7 by @dependabot[bot] in #178
- Bump softprops/action-gh-release from 1 to 2 by @dependabot[bot] in #179
- Bump com.google.android.material:material from 1.6.1 to 1.12.0 in /android by @dependabot[bot] in #176
- Bump org.jetbrains.kotlin:kotlin-gradle-plugin from 1.8.21 to 2.0.0 in /android by @dependabot[bot] in #177
- Bump org.awaitility:awaitility from 4.1.1 to 4.2.1 in /android by @dependabot[bot] in #181
- Bump actions/upload-artifact from 4.3.3 to 4.3.6 by @dependabot[bot] in #188
- Bump com.google.ar:core from 1.41.0 to 1.45.0 in /android by @dependabot[bot] in #189
- Bump androidx.recyclerview:recyclerview from 1.2.1 to 1.3.2 in /android by @dependabot[bot] in #193
- Bump org.awaitility:awaitility from 4.2.1 to 4.2.2 in /android by @dependabot[bot] in #194
- Bump androidx.preference:preference-ktx from 1.1.1 to 1.2.1 in /android by @dependabot[bot] in #138
- Fixed permission related issues for the SDK by @darshanio in #183
- Bump actions/upload-artifact from 4.3.6 to 4.4.0 by @dependabot[bot] in #195
- Bump androidx.test.espresso:espresso-core from 3.1.0 to 3.6.1 in /android by @dependabot[bot] in #196
- Bump androidx.test.ext:truth from 1.4.0 to 1.6.0 in /android by @dependabot[bot] in #197
- Bump org.jetbrains.kotlin:kotlin-stdlib-jdk7 from 1.8.21 to 2.0.20 in /android by @dependabot[bot] in #198
- Bump actions/checkout from 4.1.7 to 4.2.0 by @dependabot[bot] in #203
- Bump actions/checkout from 4.2.0 to 4.2.1 by @dependabot[bot] in #212
- Bump actions/upload-artifact from 4.4.0 to 4.4.3 by @dependabot[bot] in #213
- Bump actions/checkout from 4.2.1 to 4.2.2 by @dependabot[bot] in #216
- Bump actions/upload-artifact from 4.4.3 to 4.6.0 by @dependabot[bot] in #228
- update: add safety checks to prevent crashes on iOS by @tadjik1 in #257
- Improved Plane Detection by @doranteseduardo in #260
- Bunch of features by @doranteseduardo in #272
- v2.45.0 by @doranteseduardo in #273
New Contributors
- @Buthrakaur made their first contribution in #154
- @darshanio made their first contribution in #183
- @tadjik1 made their first contribution in #257
Full Changelog: v1.21.0...v2.50.0
1.22.0-alpha1
What's Changed
Other Changes
- fix video crashing on Android because of unresolved ExoPlayer breaking changes by @Buthrakaur in #154
- ARCore 1.43, Fix Broken Builds by @doranteseduardo in #168
- Bump actions/checkout from 3.3.0 to 4.1.6 by @dependabot in #166
- Bump actions/upload-artifact from 3.1.2 to 4.3.3 by @dependabot in #162
- Bump actions/setup-java from 3 to 4 by @dependabot in #147
- Bump maxim-lobanov/setup-xcode from 1.5.1 to 1.6.0 by @dependabot in #146
- Bump androidx.test:rules from 1.4.0 to 1.5.0 in /android by @dependabot in #139
- Bump gradle/wrapper-validation-action from 1 to 3 by @dependabot in #157
- Bump org.jetbrains.kotlin:kotlin-stdlib from 1.8.21 to 2.0.0 in /android by @dependabot in #169
- Bump actions/checkout from 4.1.6 to 4.1.7 by @dependabot in #178
- Bump softprops/action-gh-release from 1 to 2 by @dependabot in #179
- Bump com.google.android.material:material from 1.6.1 to 1.12.0 in /android by @dependabot in #176
- Bump org.jetbrains.kotlin:kotlin-gradle-plugin from 1.8.21 to 2.0.0 in /android by @dependabot in #177
- Bump org.awaitility:awaitility from 4.1.1 to 4.2.1 in /android by @dependabot in #181
- Bump actions/upload-artifact from 4.3.3 to 4.3.6 by @dependabot in #188
- Bump com.google.ar:core from 1.41.0 to 1.45.0 in /android by @dependabot in #189
- Bump androidx.recyclerview:recyclerview from 1.2.1 to 1.3.2 in /android by @dependabot in #193
- Bump org.awaitility:awaitility from 4.2.1 to 4.2.2 in /android by @dependabot in #194
- Bump androidx.preference:preference-ktx from 1.1.1 to 1.2.1 in /android by @dependabot in #138
- Fixed permission related issues for the SDK by @darshanio in #183
- Bump actions/upload-artifact from 4.3.6 to 4.4.0 by @dependabot in #195
- Bump androidx.test.espresso:espresso-core from 3.1.0 to 3.6.1 in /android by @dependabot in #196
- Bump androidx.test.ext:truth from 1.4.0 to 1.6.0 in /android by @dependabot in #197
- Bump org.jetbrains.kotlin:kotlin-stdlib-jdk7 from 1.8.21 to 2.0.20 in /android by @dependabot in #198
- Bump actions/checkout from 4.1.7 to 4.2.0 by @dependabot in #203
New Contributors
- @Buthrakaur made their first contribution in #154
- @darshanio made their first contribution in #183
Full Changelog: v1.21.0...1.22.0-alpha1
v1.21.0
What's Changed
Exciting New Features π
Other Changes
- Cleanup code in preprocessor by @hannesa2 in #27
- Remove unused exoplayer usage in samples by @hannesa2 in #26
- Use artifacts from jitpack.io in samples by @hannesa2 in #25
- Introduce dependabot by @hannesa2 in #28
- Cleanup from old maven publish by @hannesa2 in #29
- Cleanup from obsolete gradle by @hannesa2 in #30
- Rename missleading name by @hannesa2 in #31
- Introduce a Viro version variable in library by @hannesa2 in #32
- Move samples by @hannesa2 in #36
- Fix Lint issues by @hannesa2 in #38
- Make Espresso test at least to be able to compile by @hannesa2 in #39
- Prepare for Espresso tests by @hannesa2 in #40
- Bump gradle from 7.0.2 to 7.0.3 in /android by @dependabot in #43
- Bump awaitility from 4.1.0 to 4.1.1 in /android by @dependabot in #45
- Bump actions/checkout from 2.3.4 to 2.4.0 by @dependabot in #48
- Fix For presses not working in iOS by @Vednus in #42
- Bump exoplayer by @hannesa2 in #41
- Bump kotlin_version from 1.5.31 to 1.6.0 in /android by @dependabot in #49
- Bump constraintlayout from 2.1.1 to 2.1.2 in /android by @dependabot in #52
- Bump gradle from 7.0.3 to 7.0.4 in /android by @dependabot in #53
- Fix broken iOS build by @hannesa2 in #58
- api 31 by @hannesa2 in #54
- Gradle log4j by @hannesa2 in #59
- Minor version upgrade + bitcode (different from the one on NPM) by @ramicaza in #60
- Revert "Minor version upgrade + bitcode (different from the one on NPM)" by @doranteseduardo in #62
- Fix spelling error by @nachtien in #69
- Enable bitcode + chroma threshold by @ramicaza in #63
- Add Kotlin to SharedCode by @nachtien in #67
- Bump maxim-lobanov/setup-xcode from 1.4.0 to 1.4.1 by @dependabot in #61
- Bump actions/checkout from 2.4.0 to 3.1.0 by @dependabot in #104
- Bump actions/setup-java from 2 to 3 by @dependabot in #80
- Bump constraintlayout from 2.1.2 to 2.1.4 in /android by @dependabot in #87
- Bump material from 1.4.0 to 1.6.1 in /android by @dependabot in #90
- Bump maxim-lobanov/setup-xcode from 1.4.1 to 1.5.1 by @dependabot in #113
- Bump com.google.android.exoplayer:exoplayer from 2.15.1 to 2.18.4 in /android by @dependabot in #125
- Bump com.android.tools.build:gradle from 7.0.4 to 7.4.2 in /android by @dependabot in #124
- Bump actions/upload-artifact from 3.1.0 to 3.1.2 by @dependabot in #116
- Bump actions/checkout from 3.1.0 to 3.3.0 by @dependabot in #117
- fix: update ios and android builds by @Avtrkrb in #137
New Contributors
- @dependabot made their first contribution in #43
- @Vednus made their first contribution in #42
- @ramicaza made their first contribution in #60
- @nachtien made their first contribution in #69
- @Avtrkrb made their first contribution in #137
Full Changelog: rc-1.20.2...v1.21.0
rc-1.20.2
- no changes
rc-1.20.1
- no changes