I’ve waded though a bit more of this now.
The JSON parse error is coming from here. That’s happening because
stderr is not JSON. I suspect it’s a Ruby stack trace.
Maybe try editing
utils.js to add a
console.error(stderr) call before the
Quick’n’dirty method: Find
utils.js in the file hierarchy created when you installed
expo-cli (e.g. on the machine I’m typing this on it’s at
/usr/local/node/lib/node_modules/expo-cli/build/commands/upload/utils.js) and edit it to call
console.error(stderr) just before the
JSON.parse(stderr) line. Then try to upload again and see if you get more details about where the
undefined method `split’ for nil:NilClass is happening. Make a backup of utils.js before editing it, of course, but at worst you can uninstall and reinstall expo-cli.
Cleaner method: Clone the expo-cli repository, then set the repository up for development. After
yarn start prints something like
expo-cli:  17:57:55 - Found 0 errors. Watching for file changes. you should find an
expo symlink at
If you now edit
packages/expo-cli/src/commands/upload/utils.js to add the
console.error(stderr) call you should see something like this in the terminal:
18:02:47 - File change detected. Starting incremental compilation...
expo-cli:  [18:02:47] Starting 'babel'...
expo-cli:  18:02:49 - Found 0 errors. Watching for file changes.
expo-cli:  [18:02:49] Finished 'babel' after 1.84 s
If you put the
node_modules/.bin directory first in your PATH then your modified
expo-cli will run instead of the globally installed one when you run
$ export PATH=$(pwd)/node_modules/.bin:$PATH
$ which expo
Try one of the two methods above and I hope you’ll get a stack trace that you can paste here.
Post it like this: