Platform Specific Runtime Clarification

Hello, I’m looking to clarify how the native-specific runtimeVersion keys work in app.config.

I’m using the managed workflow that is currently updating a lot of native code on both ios and android, and so I’m frequently building more builds on one platform than the other to address issues with modules only affecting one platform.

This leads to scenarios like:
Expo Publish version: 0.7.3
Latest compatible ios binary: 0.7.0
Latest compatible android binary: 0.7.1

This seems exactly like the scenario for runtimeVersion, where I would use the 0.7.0 and 0.7.1 as ios.runtimeVersion / android.runtimeVersion, respectively.

The documentation seems to have conflicting information regarding this though:

The docs here (Runtime versions and updates - Expo Documentation) seem to indicate this is the right approach:

Platform specific "runtimeVersion"
You can also set a runtime version for a specific platform:

  "expo": {
    "android": {
        "runtimeVersion": "1.0.0"

When both a top level runtime and a platform specific runtime are set, the platform specific one takes precedence.

However, the docs here (Runtime Versions - Expo Documentation) seem to say otherwise:

Can I have a different runtime version on iOS and Android?
However, you cannot set a platform specific configuration field such as ios.runtimeVersion or android.runtimeVersion

I’m confused by this – what does "you cannot set a platform specific configuration field such as ios.runtimeVersion or android.runtimeVersion" mean?

Further, when testing this, I’ve tried using just the ios.runtimeVersion + android.runtimeVersion, but they aren’t updating already released binaries. Do the binaries need to be built with the ios.runtimeVersion rather than the runtimeVersion? When I look at expo publish:history, runtimeVersion is blank.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.