question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Detached expo app stuck on iOS splash screen - ExponentGLObjectManager.createObjectAsync is not available.

See original GitHub issue

Detached expo app is stuck on iOS splash screen. The log is showing: webgltexture-loader-expo: ExponentGLObjectManager.createObjectAsync is not available. Make sure to use the correct version of Expo

Environment

Environment: OS: macOS Sierra 10.12.6 Node: 9.8.0 Yarn: 1.5.1 npm: 5.6.0 Watchman: 4.9.0 Xcode: Xcode 9.2 Build version 9C40b Android Studio: 2.2 AI-145.3276617

Packages: (wanted => installed) expo: ^27.0.0 => 27.0.1 react: 16.3.1 => 16.3.1 react-native: https://github.com/expo/react-native/archive/sdk-27.0.1.tar.gz => 0.55.2

Diagnostics report: https://exp-xde-diagnostics.s3.amazonaws.com/momoumar-a1457a4d-7977-4a4f-a49f-a6d0cdb3bf2d.tar.gz

iOS, Android, Client, Standalone, ExpoKit

Steps to Reproduce

1-Detach an expo app using npm run eject. 2- pod install in ios folder 3- react-native run-ios

###Expected Behavior

4-Expected the app to launch on the simulator

###Observed Behavior 4-App stuck on the splash screen. 5-The console shows: webgltexture-loader-expo: ExponentGLObjectManager.createObjectAsync is not available. Make sure to use the correct version of Expo

22:04:42 [exp] Finished building JavaScript bundle in 6257ms.
22:04:58 [exp] webgltexture-loader-expo: ExponentGLObjectManager.createObjectAsync is not available. Make sure to use the correct version of Expo
22:04:59 [exp] Running application "main" with appParams: {"rootTag":1,"initialProps":{"exp":{"manifest":{"description":"A Simple addressing system for the unaddressed bussinesses.","developer":{"projectRoot":"/Users/mos/Desktop/xyz-expo","tool":"exp"},"privacy":"public","detach":{"scheme":"exp06bd8b78e979493d97d76b540f17e00c","androidExpoViewUrl":"https://s3.amazonaws.com/exp-exponent-view-code/android-v2.4.0-sdk26.0.0-e63d9209-070c-4118-b06b-c60e82da0b66.tar.gz","iosExpoViewUrl":"https://s3.amazonaws.com/exp-exponent-view-code/ios-v2.5.4-sdk27.0.0-e68cfb94-9b7e-4510-aab9-8f375e187b0b.tar.gz"},"loadedFromCache":false,"env":{},"isDetached":true,"orientation":"portrait","xde":true,"id":"@momoumar/xyz-expo","iconUrl":"http://packager.8f-2ui.momoumar.xyz-expo.exp.direct:80/assets/./app.png","hostUri":"8f-2ui.momoumar.xyz-expo.exp.direct:80","mainModuleName":"index","sdkVersion":"27.0.0","primaryColor":"#00AAFF","debuggerHost":"packager.8f-2ui.momoumar.xyz-expo.exp.direct:80","androidStatusBar":{"barStyle":"dark-content","backgroundColor":"#ffffff"},"android":{"package":"codes.xyz"},"isVerified":true,"packagerOpts":{"lanType":"ip","dev":true,"minify":false,"urlRandomness":"8f-2ui","hostType":"tunnel"},"ios":{"publishBundlePath":"ios/xyz-expo/Supporting/shell-app.bundle","publishManifestPath":"ios/xyz-expo/Supporting/shell-app-manifest.json","bundleIdentifier":"xyz"},"bundleUrl":"http://packager.8f-2ui.momoumar.xyz-expo.exp.direct:80/index.bundle?platform=ios&dev=true&minify=false&hot=false&assetPlugin=%2FUsers%2Fmos%2FDesktop%2Fxyz-expo%2Fnode_modules%2Fexpo%2Ftools%2FhashAssetFiles","icon":"./app.png","slug":"xyz-expo","version":"1.0.0","name":"xyz-expo","logUrl":"http://8f-2ui.momoumar.xyz-expo.exp.direct:80/logs","splash":{"resizeMode":"cover","image":"./splash.png","backgroundColor":"#ffffff","imageUrl":"http://packager.8f-2ui.momoumar.xyz-expo.exp.direct:80/assets/./splash.png"}},"initialUri":"exp06bd8b78e979493d97d76b540f17e00c://8f-2ui.momoumar.xyz-expo.exp.direct:80","appOwnership":"standalone","shell":1}}}. __DEV__ === true, development-level warning are ON, performance optimizations are OFF

###Pod file:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'

target 'xyz-expo' do
  pod 'ExpoKit',
    :git => "http://github.com/expo/expo.git",
    :tag => "ios/2.5.4",
    :subspecs => [
      "Core",
      "CPP",
      "GL"
    ]

  pod 'React',
    :path => "../node_modules/react-native",
    :subspecs => [
      "Core",
      "ART",
      "RCTActionSheet",
      "RCTAnimation",
      "RCTCameraRoll",
      "RCTGeolocation",
      "RCTImage",
      "RCTNetwork",
      "RCTText",
      "RCTVibration",
      "RCTWebSocket",
      "DevSupport",
      "CxxBridge"
    ]
  pod 'yoga',
    :path => "../node_modules/react-native/ReactCommon/yoga"
  pod 'DoubleConversion',
    :podspec => "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec",
    :inhibit_warnings => true
  pod 'Folly',
    :podspec => "../node_modules/react-native/third-party-podspecs/Folly.podspec",
    :inhibit_warnings => true
  pod 'glog',
    :podspec => "../node_modules/react-native/third-party-podspecs/GLog.podspec",
    :inhibit_warnings => true


  post_install do |installer|
    installer.pods_project.main_group.tab_width = '2';
    installer.pods_project.main_group.indent_width = '2';

    installer.pod_targets.each do |target|

    if target.pod_name == 'ExpoKit'
      target.native_target.build_configurations.each do |config|
        config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)']
        config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'EX_DETACHED=1'
        # needed for GoogleMaps 2.x
        config.build_settings['FRAMEWORK_SEARCH_PATHS'] ||= []
        config.build_settings['FRAMEWORK_SEARCH_PATHS'] << '${PODS_ROOT}/GoogleMaps/Base/Frameworks'
        config.build_settings['FRAMEWORK_SEARCH_PATHS'] << '${PODS_ROOT}/GoogleMaps/Maps/Frameworks'
      end
    end


    if ['Amplitude-iOS','Analytics','AppAuth','Branch','CocoaLumberjack','FBSDKCoreKit','FBSDKLoginKit','FBSDKShareKit','GPUImage','JKBigInteger2'].include? target.pod_name
      target.native_target.build_configurations.each do |config|
        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
      end
    end
    # Build React Native with RCT_DEV enabled
    next unless target.pod_name == 'React'
    target.native_target.build_configurations.each do |config|
      config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)']
      config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'RCT_DEV=1'
    end

    end
  end
end
###package.json

{
  "name": "xyz-expo",
  "version": "1.0.0",
  "private": true,
  "devDependencies": {
    "exp": "49.2.2",
    "jest-expo": "^27.0.0"
  },
  "scripts": {
    "test": "node node_modules/jest/bin/jest.js",
    "test:watch": "node node_modules/jest/bin/jest.js --watch",
    "flow": "flow check --show-all-errors | flow-result-checker",
    "lint": "eslint App.js src/",
    "deploy:expo": "exp publish",
    "deploy": "yarn deploy:expo",
    "start": "node node_modules/react-native/local-cli/cli.js start"
  },
  "jest": {
    "preset": "jest-expo",
    "transformIgnorePatterns": [
      "node_modules/(?!react-native|react-navigation|expo|native-base-shoutem-theme|@shoutem|react-clone-referenced-element|native-base|@expo|mobx-react)"
    ],
    "testResultsProcessor": "./node_modules/jest-junit-reporter"
  },
  "dependencies": {
    "expo": "^27.0.0",
    "react": "16.3.1",
    "react-native": "https://github.com/expo/react-native/archive/sdk-27.0.1.tar.gz",
    "react-native-keyboard-spacer": "^0.4.1",
    "react-native-loading-spinner-overlay": "^0.5.2",
    "react-navigation": "1.5.11"
  }
}

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Comments:6 (3 by maintainers)

github_iconTop GitHub Comments

2reactions
grecommented, May 8, 2018

yeah I agree, textures should be created with gl.createTexture() if possible. but for advanced usecases where texture come from native side, like Camera case, it make sense. I kinda liked the createObjectAsync idea because it was allowing extensible format for textures, but anyway, for current Expo implementation it’s ok (only thing is it’s a breaking change and i don’t think it was mentioned, or maybe i missed it?).

I released a new version of gl-react-expo (& the webgltexture-loader library) so this now works again! Cheers 😃

https://expo.io/@gre/gl-react-camera-effects

camera

BTW some thoughts for future: in react-native-webgl fork, we had a diverged idea that maybe we should eventually converge, https://github.com/react-community/react-native-webgl#rn-extension this loadTexture with a config object that can be extended by third party library, for instance, one library could add camera support, one could bring video support, one could add “view as a texture” support like it is already implemented by https://github.com/gre/react-native-webgl-view-shot

1reaction
tsapetacommented, May 9, 2018

@gre The change with camera texture was mentioned in the blog post, but to be honest I thought no one is using createObjectAsync for other cases since it was undocumented and a bit useless, my bad 😂 Sure, if it’s extensible then it makes more sense, so I agree we should converge it. 👍

Read more comments on GitHub >

github_iconTop Results From Across the Web

App is stuck on Splash screen - Expo Development Tools
From March 21 2022 onwards the builds pushed to TestFlight and Google Play are not working. The app is stuck on the splash...
Read more >
Expo app stuck on splash screen - No errors given
I recently got this error, Had uninstalled node_modules and run npm install but this didn't work. I don't know why this happens but...
Read more >
React native expo based app got st…
React native expo based app got stuck at splash screen, after installing from testflight ... The App is working fine, when i run...
Read more >
expo-splash-screen
Provides a module to allow keeping the native Splash Screen visible until you choose to hide it.. Latest version: 0.17.5, last published: a ......
Read more >
Building a splash screen in React Native
Learn how to build a splash screen in React Native for both iOS and Android apps, and edit its features, like background color....
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found