I’m trying to setup an external package that also has an example app that can be built/ reloaded while developing the package. I was trying to crib react-navigation’s setup for this as much as possible, where they have an examples folder under the top-level folder, and then each example can be run with CRNA, with a “link” in packages.json to supply the reference to the react-navigation library.
Everything mostly works, except, every time I change the code, I get a ABI27_0_0RCTPackagerConnection received message with not supported version (null)
error in the Expo app. When I refresh, then my code reloads just fine (until I change the code again).
I don’t have a great way to reproduce this error for someone else to run at this point (it’s a library for internal use). I’m basically just curious if anyone can offer any insight as to why this error might occur and what I can try to resolve. I’ve tried clearing the cache, rm -rf node_modules. I’ve also switched between Expo and CRNA (doesn’t make a difference, so I don’t think this is CRNA-specific). I tried following React Navigation’s (Redirecting to https://reactnavigation.org/docs/contributing) instructions for running their example apps, and I don’t get the error, so something must be different, but I can’t see a difference.
Here’s the full error:
ABI27_0_0RCTPackagerConnection received message with not supported version (null)
-[ABI27_0_0RCTPackagerConnection reconnectingWebSocket:didReceiveMessage:]
ABI27_0_0RCTPackagerConnection.mm:228
-[ABI27_0_0RCTReconnectingWebSocket webSocket:didReceiveMessage:]
__42-[ABI27_0_0RCTSRWebSocket _handleMessage:]_block_invoke
_dispatch_call_block_and_release
_dispatch_client_callout
_dispatch_queue_serial_drain
_dispatch_queue_invoke
_dispatch_root_queue_drain
_dispatch_worker_thread3
_pthread_wqthread
start_wqthread
Here’s my app.json
{
"expo": {
"name": "some-name-of-app",
"description": "This project is really great.",
"slug": "some-name-of-app",
"privacy": "unlisted",
"sdkVersion": "27.0.0",
"platforms": ["ios", "android"],
"version": "1.0.0",
"orientation": "portrait",
"icon": "./assets/icon.png",
"entryPoint": "./node_modules/react-native-scripts/build/bin/crna-entry.js",
"splash": {
"image": "./assets/splash.png",
"resizeMode": "contain",
"backgroundColor": "#ffffff"
},
"updates": {
"fallbackToCacheTimeout": 0
},
"assetBundlePatterns": [
"**/*"
],
"ios": {
"supportsTablet": true
}
}
}
and my package.json
{
"name": "some-name-of-app",
"version": "1.0.0",
"description": "",
"author": "",
"main": "./node_modules/react-native-scripts/build/bin/crna-entry.js",
"private": true,
"scripts": {
"start": "react-native-scripts start"
},
"dependencies": {
"react": "16.3.1",
"expo": "^27.0.0",
"react-native": "^0.55.0",
"my-package-under-development": "link:../.."
},
"devDependencies": {
"babel-plugin-module-resolver": "^3.1.0",
"jest": "^22.1.3",
"jest-expo": "^26.0.0",
"react-native-scripts": "^1.5.0"
},
"jest": {
"preset": "jest-expo",
"moduleFileExtensions": [
"web.js",
"js",
"json",
"jsx",
"node"
],
"modulePathIgnorePatterns": [
"/node_modules/.*/react-native/",
"/node_modules/.*/react/"
],
"transformIgnorePatterns": [
"/node_modules/(?!react-native|react-navigation)/"
]
}
}