I built my app with expo SDK 44 but when I tried pushing the app to Play Store, Google blocked it saying that I should have an API Level of 31 while I only have 30, after some research I found out that I should upgrade my expo SDK to 46. I did that but since then I’m running into some weird Errors, I’ve spent 3 days looking for a solution but still nothing is working.
Here’s my package.json
:
{
"main": "node_modules/expo/AppEntry.js",
"scripts": {
"setup": "./scripts/setup.sh",
"start": "expo start",
"android": "expo start --android",
"ios": "expo start --ios",
"eject": "expo eject"
},
"dependencies": {
"@astrocoders/react-native-selectable-text": "^1.5.1",
"@babel/preset-typescript": "^7.16.7",
"@react-native-community/blur": "^3.6.0",
"@react-native-community/masked-view": "0.1.10",
"@react-native-community/netinfo": "9.3.0",
"@react-native-community/slider": "4.2.3",
"@react-native-firebase/app": "~15.4.0",
"api-ecommerce": "^1.0.3",
"babel-preset-env": "^1.7.0",
"base-64": "1.0.0",
"body-parser": "^1.20.0",
"consolidate": "^0.16.0",
"crypto-js": "4.1",
"currency-formatter": "1.5.9",
"ejs": "^3.1.7",
"expo": "^46.0.0",
"expo-ads-admob": "~12.0.1",
"expo-ads-facebook": "~11.1.1",
"expo-app-loading": "~2.1.0",
"expo-apple-authentication": "~4.3.0",
"expo-asset": "~8.6.1",
"expo-av": "~12.0.4",
"expo-constants": "~13.2.4",
"expo-facebook": "~12.1.1",
"expo-file-system": "~14.1.0",
"expo-font": "~10.2.0",
"expo-linear-gradient": "~11.4.0",
"expo-notifications": "~0.16.1",
"expo-permissions": "~13.2.0",
"expo-status-bar": "~1.4.0",
"expo-updates": "~0.14.6",
"expo-web-browser": "~11.0.0",
"express": "^4.18.1",
"firebase": "9.7.0",
"html-entities": "2.3.3",
"htmlparser2": "^8.0.1",
"jetifier": "^2.0.0",
"lodash": "^4.17.21",
"moment": "^2.29.3",
"native-base": "^3.4.4",
"node": "^17.7.2",
"oauth-1.0a": "^2.2.6",
"path": "0.12.7",
"paypal-rest-sdk": "^1.8.1",
"prop-types": "^15.8.1",
"radio-buttons-react-native": "^1.0.4",
"react": "18.0.0",
"react-instantsearch": "6.24.1",
"react-native": "0.69.5",
"react-native-animatable": "1.3.3",
"react-native-app-intro-slider": "4.0.4",
"react-native-clean-form": "0.5.0",
"react-native-code-push": "^7.0.4",
"react-native-collapsible": "1.6.0",
"react-native-country-picker-modal": "2.0.0",
"react-native-drawer": "git+https://github.com/luyx2412/react-native-drawer.git",
"react-native-fluid-slider": "1.0.2",
"react-native-image-zoom-viewer": "3.0.1",
"react-native-iphone-x-helper": "^1.3.1",
"react-native-keyboard-aware-scroll-view": "0.9.5",
"react-native-loading-spinner-overlay": "^2.0.0",
"react-native-masked-text": "1.13.0",
"react-native-measure-text": "^1.0.0-alpha.2",
"react-native-modal": "^13.0.1",
"react-native-modal-with-blur-support-background": "^1.0.0",
"react-native-modalbox": "^2.0.2",
"react-native-modals": "^0.22.3",
"react-native-multi-select-picker": "^1.0.11",
"react-native-multi-selectbox": "^1.5.0",
"react-native-paper": "4.12.1",
"react-native-parallax": "0.3.0",
"react-native-paypal-gateway": "^1.0.0",
"react-native-paypal-lib": "^1.0.9",
"react-native-progress": "^5.0.0",
"react-native-progress-circle": "^2.1.0",
"react-native-progress-wheel": "^1.0.5",
"react-native-radio-buttons": "1.0.0",
"react-native-rate": "^1.2.9",
"react-native-really-awesome-button": "^1.6.0",
"react-native-reanimated": "~2.9.1",
"react-native-render-html": "^6.3.4",
"react-native-restart": "^0.0.24",
"react-native-safe-area-context": "4.3.1",
"react-native-screens": "~3.15.0",
"react-native-scrollable-tab-view": "1.0.0",
"react-native-side-menu": "1.1.3",
"react-native-sliding-modal": "^2.1.0",
"react-native-snap-carousel": "3.9.1",
"react-native-spacer": "^1.7.0",
"react-native-star-rating": "1.1.0",
"react-native-svg": "12.3.0",
"react-native-swipe-list-view": "3.2.9",
"react-native-swiper": "^1.6.0",
"react-native-tag-select": "^2.0.0",
"react-native-unordered-list": "^1.0.4",
"react-native-webview": "11.23.0",
"react-native-webview-messaging": "^2.0.0-alpha.4",
"react-navigation": "^4.4.4",
"react-navigation-header-buttons": "9.0.1",
"react-navigation-props-mapper": "3.1.0",
"react-navigation-stack": "^2.10.4",
"react-navigation-tabs": "^2.11.2",
"react-redux": "8.0.1",
"react-smart-payment-buttons": "^0.2.3",
"redux": "4.2.0",
"redux-actions": "2.6.5",
"redux-persist": "^5.10.0",
"redux-thunk": "2.4.1",
"reselect": "4.1.5",
"sweetalert2": "^11.4.10",
"tcomb-form-native": "0.6.20",
"urijs": "^1.19.11",
"url": "0.11.0",
"url-parse": "^1.5.10",
"util": "0.12.4",
"uuid": "8.3.2",
"validate.js": "0.13.1",
"wpapi": "^1.2.2"
},
"devDependencies": {
"@babel/preset-react": "^7.16.7",
"babel-jest": "28.0.3",
"babel-plugin-transform-remove-console": "6.9.4",
"babel-preset-expo": "~9.2.0",
"babel-preset-react-native": "4.0.1",
"eslint-config-airbnb": "^19.0.4",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-jsx-a11y": "^6.5.1",
"eslint-plugin-react-hooks": "^4.5.0",
"jest": "^26.6.3",
"reactotron-react-native": "^5.0.1",
"reactotron-redux": "3.1.3"
},
}
2
Answers
For the ViewProp error check this github
You’ll need to search through all your app for the ViewProp and import it from
deprecated-react-native-prop-types
now(including node modules).as a workaround u can keep Expo version 44. just upgrade
targetSdkVersion
andcompileSdkVersion
insideandroid/build.gradle
to 31 upload a new build then Google won’t complaint anymore.