expo / expo-three

Utilities for using THREE.js on Expo
MIT License
738 stars 89 forks source link

TextureLoader silently fails to load bundled textures when Airplane Mode is enabled (iOS) #190

Open tlrobinson opened 3 years ago

tlrobinson commented 3 years ago

UPDATE: This appears to only happen in debug builds, but not release builds.

This is strange, but it seems like expo-three's TextureLoader() fails to load a texture if Airplane Mode is enabled on iOS, even though the texture is a bundled asset, loaded with require.

const texture = new TextureLoader().load(
  require("./texture.png"),
  () => console.log("TextureLoader onLoad"),
  () => console.log("TextureLoader onProgress"),
  () => console.log("TextureLoader onError")
)

onLoad, onProgress, and onError callbacks are not called at all.

Also, loadTextureAsync never resolves if Airplane Mode is active:

try {
  console.log("this is logged");
  await ExpoTHREE.loadTextureAsync({ asset: require("./texture.png") })
  console.log("this is never logged");
} catch (e) {
  console.log("this is never logged");
}