Can SDK33 be built with turtle-cli 0.5.15?

I’m trying to upgrade to SDK33 but I’ve been using the older version of turtle-cli in order to continue to user within Android builds as detailed in this blog post Changes to Expo Branch support. We noticed that Android apps made with… | by Jess Hui | Exposition by @jess

I’m getting the following error when I try to build:

WARN: There is a new version of turtle-cli available (0.8.8).
You are currently using turtle-cli 0.5.15
Run npm install -g turtle-cli to get the latest version
platform: “ios”
environment: null
Jul 11 13:34:44 turtle[14129] INFO: shell app for SDK 33.0.0 doesn’t exist, downloading…
platform: “ios”
environment: null
buildPhase: “setting up environment”
Jul 11 13:34:44 turtle[14129] ERROR: Failed to build standalone app
err: Error: ENOENT: no such file or directory, open ‘/usr/lib/node_modules/turtle-cli/shellTarballs/android/sdk33’
platform: “ios”
environment: null

Is it not possible to build sdk33 with the old verion of turtle-cli? How can I update to sdk33 and still use Branch on android without ejecting? Will I also have a problem producing the new required 64bit version for android?

here is my package.json:
“name”: “turtle-cli”,
“version”: “0.5.15”,
“description”: “The command-line tool for building standalone Expo apps”,
“preferGlobal”: true,
“scripts”: {
“start”: “EXPENV_OVERRIDES=local-common,local,local-queue expenv gulp”,
“start:ios”: “PLATFORM=ios yarn start”,
“start:android”: “PLATFORM=android yarn start”,
“watch”: “EXPENV_OVERRIDES=local-common,local,local-queue expenv gulp watch:source”,
“bin:turtle”: “./bin/turtle.js”,
“lint”: “tslint -c tslint.json 'src//*.ts’",
“lint:fix”: “yarn lint --fix”,
“prepare”: “yarn build”,
“build”: “gulp build:server”,
“build:production”: “./scripts/”,
“build:android-tarball:local”: “./scripts/android/”,
“secrets:init-private”: “./scripts/”,
“set-workingdir:remote”: “./scripts/ remote”,
“set-workingdir:local”: “./scripts/ local”,
“docker:pull”: “retry5 gcloud docker – pull Google Cloud console”,
“docker:pull:tag”: “retry5 gcloud docker – pull${TAG}”,
“docker:build”: “yarn build:production android && gcloud docker – build -t Google Cloud console -t${TAG} .”,
“docker:push”: “retry5 gcloud docker – push${TAG} && retry5 gcloud docker – push Google Cloud console”,
“deploy:android”: “./scripts/android/”,
“test”: “yarn jest”,
“test:integration”: “yarn test --config jest/integration-config.json”,
“test:unit”: “yarn test --config jest/unit-config.json”,
“test:smoke”: “yarn test --config jest/smoke-config.json --forceExit”,
“test:smoke:android”: “PLATFORM=android yarn test:smoke --testNamePattern=android”,
“test:smoke:ios”: “PLATFORM=ios yarn test:smoke --testNamePattern=iOS”,
“release”: “./scripts/”,
“release:beta”: “./scripts/”,
“ssh:android:pods-names”: “./scripts/ssh/”,
“ssh:android:connect”: “./scripts/ssh/”,
“ssh:ios:ips”: “./scripts/ssh/”,
“set-priorities”: “yarn set-priorities:local”,
“set-priorities:local”: “EXPENV_OVERRIDES=local-common,local,local-queue expenv babel-node scripts/setConfigurations.js”,
“set-priorities:staging”: “expenv babel-node scripts/setConfigurations.js”,
“set-priorities:production”: “EXPENV_OVERRIDES=prod expenv babel-node scripts/setConfigurations.js”
“husky”: {
“hooks”: {
“pre-commit”: “lint-staged”
“lint-staged”: {
/*.ts”: [
“yarn lint:fix”,
“git add”
“bin”: {
“turtle”: “./bin/turtle.js”
“files”: [
“keywords”: [
“engines”: {
“node”: “>=8”
“author”: “Expo”,
“license”: “MIT”,
“bugs”: {
“url”: “Issues · expo/turtle · GitHub
“homepage”: “GitHub - expo/turtle: Standalone app builder service”,
“publishConfig”: {
“registry”: “
“devDependencies”: {
@types/decompress”: “^4.2.3”,
@types/fs-extra”: “^5.0.4”,
@types/jest”: “^23.3.9”,
@types/joi”: “^13.4.3”,
@types/lodash”: “^4.14.109”,
@types/progress”: “^2.0.1”,
@types/raven”: “^2.5.1”,
@types/request”: “^2.47.1”,
@types/sharp”: “^0.17.8”,
@types/tar”: “^4.0.0”,
@types/uuid”: “^3.4.3”,
@types/which”: “^1.3.1”,
“babel-cli”: “^6.26.0”,
“babel-core”: “^6.26.3”,
“babel-jest”: “^23.6.0”,
“babel-plugin-module-resolver”: “^3.1.1”,
“babel-preset-env”: “^1.6.1”,
“gulp”: “github:gulpjs/gulp#4.0”,
“gulp-babel”: “^7.0.1”,
“gulp-changed”: “^3.2.0”,
“gulp-nodemon”: “^2.4.1”,
“gulp-plumber”: “^1.2.0”,
“gulp-sourcemaps”: “^2.6.4”,
“gulp-typescript”: “^4.0.2”,
“husky”: “^1.3.1”,
“jest”: “^23.6.0”,
“lint-staged”: “^8.1.5”,
“nock”: “^10.0.1”,
“nodemon”: “^1.18.7”,
“release-it”: “^10.0.0”,
“rimraf”: “^2.6.2”,
“source-map-loader”: “^0.2.3”,
“ts-jest”: “^23.10.4”,
“tslint”: “^5.10.0”,
“tslint-eslint-rules”: “^5.4.0”,
“typescript”: “^3.0.1”
“dependencies”: {
@expo/spawn-async”: “^1.4.0”,
@google-cloud/logging-bunyan”: “^0.9.5”,
“async-retry”: “^1.2.1”,
“aws-sdk”: “^2.226.1”,
“bunyan”: “^1.8.12”,
“bunyan-debug-stream”: “^1.0.8”,
“bunyan-sentry-stream”: “^1.2.1”,
“commander”: “^2.15.1”,
“copy”: “^0.3.1”,
“decompress”: “^4.2.0”,
“fs-extra”: “^6.0.0”,
“ioredis”: “^3.2.2”,
“is-semver”: “^1.0.8”,
“joi”: “^13.2.0”,
“lodash”: “^4.17.10”,
“progress”: “^2.0.0”,
“raven”: “^2.6.2”,
“request”: “^2.88.0”,
“request-progress”: “^3.0.0”,
“sharp”: “^0.21.0”,
“source-map-support”: “^0.5.6”,
“tar”: “^4.4.6”,
“uuid”: “^3.2.1”,
“which”: “^1.3.1”,
“xdl”: “53.1.6-alpha.2”
“optionalDependencies”: {
@expo/traveling-fastlane-darwin”: “^1.8.1”

I am also curious about this issue, we’re currently in a situation where we need branch but also need 64 bit builds for Play Store requirements. Is this viable or do we need to come up with another solution?


@jpramassiniac the response from the expo team that i got is that the only way to continue using branch on android is to use the bare workflow. Since this isnt feasible for me I’m in the process of migrating from branch over to Segment which is supported

@steven.shadman Thanks for sharing that info!

Yeah, I’m having the same problem. I’m using Branch for deeplining inside of my app so I don’t have an option to migrate to Segment. Any workarounds?

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