Build failing in Testflight (sdk 24.0.0) - "This experience uses an unsupported version....."

Have a detached, live app.

Updated to Expo 24.0.0. This the the 2nd or 3rd SDK update I’ve done for this app.

All works great in simulator, and when testing on my device via Xcode.

Archived and uploaded to app store. Made available for Testflight.

This happens:

Even while it fails on Testflight, still works when running from Xcode, and my current live app works (SDK 23).

Can’t figure out what could be causing this…

Was hoping someone would see this and recognize the error or bug.

Maybe sharing app.json and related files will help.

Right now I can’t find error, looks like a significant bug. Probably going to miss being able to submit before app store closure. Not great. Unless I am making a mistake (likely - although I don’t see where and have done this several time before), upgrading detached apps to SDK 24 has some issues in iOS that are likely to impact others attempting to do the same.

App.json (with some IDs X’ed out)

{
  "expo": {
    "name": "celebrity-look-alike",
    "description": "An empty new project",
    "slug": "celebrity-look-alike",
    "privacy": "unlisted",
    "sdkVersion": "24.0.0",
    "version": "5.3.24.1",
    "orientation": "portrait",
    "primaryColor": "#cccccc",
    "icon": "./assets/celebrityIcon.png",
    "splash": {
      "image": "./assets/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "facebookAppId": "xxx",
    "facebookDisplayName": "F.ace Compare",
    "facebookScheme": "xxx",
    "packagerOpts": {
      "assetExts": ["ttf", "mp4"]
    },
    "hooks": {
      "postPublish": [
        {
          "file": "sentry-expo/upload-sourcemaps",
          "config": {
            "organization": "contenta",
            "project": "facecompare",
            "authToken": "xxxxx" 
          }
        }
      ]
    },
    "ios": {
      "supportsTablet": true,
      "bundleIdentifier": "com.bgb.facecompare",
      "publishBundlePath": "ios/celebrity-look-alike/Supporting/shell-app.bundle",
      "publishManifestPath": "ios/celebrity-look-alike/Supporting/shell-app-manifest.json"
    },
    "android": {
      "package": "com.bgb.facecompare"
    },
    "isDetached": true,
    "detach": {
      "scheme": "exp584db009a2f1425cb4c6898eb5a68edc",
      "iosExpoViewUrl":
        "https://s3.amazonaws.com/exp-exponent-view-code/ios-v2.0.4-sdk22.0.0-10110e7c-e9b1-43e6-b7e0-8a0e971480e8.tar.gz",
      "androidExpoViewUrl":
        "https://s3.amazonaws.com/exp-exponent-view-code/android-v2.0.0-exp.0-sdk22.0.0-bcb62dac-b993-47ff-951b-e8ecf086f9e0.tar.gz"
    },
    "assetBundlePatterns": ["assets/**"]
  }
}

package.json

{
  "name": "celebrity-look-alike",
  "version": "0.0.0",
  "description": "The best celebrity look alike app",
  "author": null,
  "private": true,
  "main": "node_modules/expo/AppEntry.js",
  "dependencies": {
    "aws-sdk": "^2.141.0",
    "axios": "^0.17.0",
    "babel-plugin-transform-remove-console": "^6.8.5",
    "eslint-config-rallycoding": "^3.2.0",
    "expo": "^24.0.0",
    "lodash": "^4.17.4",
    "react": "16.0.0",
    "react-native": "https://github.com/expo/react-native/archive/sdk-24.0.0.tar.gz",
    "react-native-animatable": "^1.2.4",
    "react-native-aws3": "^0.0.8",
    "react-native-elements": "^0.17.0",
    "react-native-google-analytics": "^1.3.2",
    "react-native-instagram-login": "^1.0.4",
    "react-native-share": "^1.0.23",
    "react-native-store-review": "^0.1.3",
    "react-navigation": "^1.0.0-beta.21",
    "react-redux": "^5.0.6",
    "redux": "^3.7.2",
    "redux-persist": "4.10.2",
    "redux-thunk": "^2.2.0",
    "sentry-expo": "^1.7.0"
  }
}

podfile

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

target 'celebrity-look-alike' do
  pod 'ExpoKit',
    :git => "http://github.com/expo/expo.git",
    :tag => "ios/2.2.1",
    :subspecs => [
      "Core",
      "CPP"
    ]

  pod 'React',
    :path => "../node_modules/react-native",
    :subspecs => [
      "Core",
      "ART",
      "RCTActionSheet",
      "RCTAnimation",
      "RCTCameraRoll",
      "RCTGeolocation",
      "RCTImage",
      "RCTNetwork",
      "RCTText",
      "RCTVibration",
      "RCTWebSocket",
      "DevSupport",
      "BatchedBridge"
    ]
  pod 'yoga',
    :path => "../node_modules/react-native/ReactCommon/yoga"

  pod 'react-native-in-app-utils',
    :git => "https://github.com/chirag04/react-native-in-app-utils"

  pod 'RNShare',
    :git => "https://github.com/EstebanFuentealba/react-native-share.git"

  pod 'RNStoreReview',
    :path => '../node_modules/react-native-store-review/ios'


  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


    # 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

EXSDKversions.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>detachedNativeVersions</key>
	<dict>
		<key>kernel</key>
		<string>24.0.0</string>
		<key>shell</key>
		<string>24.0.0</string>
	</dict>
	<key>sdkVersions</key>
	<array>
		<string>24.0.0</string>
	</array>
</dict>
</plist>

I did a search for any instance of “23.0.0” in my code and it appears it only exists in the shell-app-manifest.json file. The entire files does not appear to be updated, showing previous app version # (as set in app.json) as well.

I think there were some changes to how this file is supposed to work for 24.0.0, maybe related.

Not sure if this is what is causing the issues with my detached, upgraded app failing in Testflight for SDK 24, but wanted to share as I am officially out of ideas.

Would be interested to know if anyone has successfully upgraded to 24 on a detached app, and got it to work in Testflight or live/published.

Hi! Can you share the URL of your published app?

App store: ‎Look Alike Who Do I Look Like on the App Store

New build - SDK 24:

Expo url: http://jq-b89.chidgeychris.celebrity-look-alike.exp.direct/

Expo: exp584db009a2f1425cb4c6898eb5a68edc://jq-b89.chidgeychris.celebrity-look-alike.exp.direct:80

What’s your published URL? It looks like that’s the development URL from XDE/exp.

How do I find the url that the live app was published with?

You can find it on your Expo profile, I think. Mine is https://expo.io/@dikaiosune, for example.

Do you mean this: https://expo.io/@chidgeychris/celebrity-look-alike

Aha! OK, cool, thanks. It looks like your SDK 24 JS hasn’t been published yet:

https://expo.io/@chidgeychris/celebrity-look-alike/index.exp?sdkVersion=24.0.0

whereas SDK 23 is available:

https://expo.io/@chidgeychris/celebrity-look-alike/index.exp?sdkVersion=24.0.0,23.0.0

Are you sure that you published the JS for the SDK 24 version of your app?

Oh man - I am not sure, but am publishing now and … it works. Embarrassing.

Thank you so much for helping me troubleshoot and finding the answer!

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