App Store will stop allowing use of UIWebView

Please provide the following:

  1. SDK Version: 35
  2. Platforms(Android/iOS/web/all): iOS

Received the following message after submitting an app for app store review:

Dear Developer,

We identified one or more issues with a recent delivery for your app, “[app name]” 1.0.0 (1). Your delivery was successful, but you may wish to correct the following issues in your next delivery:

ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of apps that use UIWebView APIs . See UIWebView | Apple Developer Documentation for more information.

After you’ve corrected the issues, you can use Xcode or Application Loader to upload a new binary to App Store Connect.

Best regards,

The App Store Team

Don’t know if this is the right place to report this but figured it would come up with others submitting to the app store.

Hi

In theory this should have been solved in SDK 35:

But there are other people saying that they’re also still getting the warning from Apple.

Is your app ejected?
What are the dependencies?

See also:

Thanks for the reply @wodin!

Our app is not ejected, we built with sdk 35, and our package.json is the following:

{
  "main": "node_modules/expo/AppEntry.js",
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "web": "expo start --web",
    "eject": "expo eject"
  },
  "dependencies": {
    "@react-native-community/datetimepicker": "^2.1.0",
    "expo": "^35.0.0",
    "expo-asset": "~7.0.0",
    "expo-asset-utils": "^1.2.0",
    "expo-cli": "^3.1.0",
    "expo-file-system": "~7.0.0",
    "expo-font": "~7.0.0",
    "expo-gl": "~7.0.0",
    "expo-graphics": "^1.1.0",
    "expo-haptics": "~7.0.0",
    "expo-linear-gradient": "~7.0.0",
    "expo-three": "^4.0.0",
    "global": "^4.4.0",
    "prop-types": "^15.7.2",
    "react": "16.8.3",
    "react-dom": "^16.8.6",
    "react-native": "https://github.com/expo/react-native/archive/sdk-35.0.0.tar.gz",
    "react-native-animatable": "^1.3.2",
    "react-native-gesture-handler": "~1.3.0",
    "react-native-phone-input": "^0.2.4",
    "react-native-reanimated": "~1.2.0",
    "react-native-web": "^0.11.4",
    "react-navigation": "^4.0.7",
    "react-navigation-stack": "^1.7.3",
    "react-redux": "^7.1.1",
    "redux": "^4.0.4",
    "redux-persist": "^6.0.0",
    "redux-persist-expo-filesystem": "^2.0.0",
    "sentry-expo": "~2.0.0",
    "socket.io": "^2.2.0",
    "socket.io-client": "^2.2.0",
    "three": "^0.108.0"
  },
  "devDependencies": {
    "babel-preset-expo": "^5.1.1",
    "jest-expo": "^35.0.0"
  },
  "private": true
}

I also still get the warning with SDK 35 and a not ejected project:

"dependencies": {
    "@expo/samples": "~3.0.0",
    "@expo/vector-icons": "^10.0.1",
    "@react-navigation/web": "^1.0.0-alpha.9",
    "axios": "^0.19.0",
    "expo": "^35.0.0",
    "expo-analytics": "^1.0.11",
    "expo-asset": "^7.0.0",
    "expo-barcode-scanner": "^7.0.0",
    "expo-blur": "^7.0.0",
    "expo-constants": "^7.0.0",
    "expo-font": "^7.0.0",
    "expo-local-authentication": "^7.0.0",
    "expo-localization": "^7.0.0",
    "expo-secure-store": "^7.0.0",
    "expo-web-browser": "^7.0.0",
    "i18next": "^17.0.6",
    "moment": "^2.24.0",
    "react": "16.8.3",
    "react-dom": "^16.8.6",
    "react-i18next": "^10.11.4",
    "react-native": "https://github.com/expo/react-native/archive/sdk-35.0.0.tar.gz",
    "react-native-animatable": "^1.3.2",
    "react-native-app-intro-slider": "^3.0.0",
    "react-native-collapsible": "^1.4.0",
    "react-native-gesture-handler": "^1.2.2",
    "react-native-reanimated": "^1.0.1",
    "react-native-root-toast": "^3.1.2",
    "react-native-segmented-control-tab": "^3.4.1",
    "react-native-svg-flagkit": "^0.9.5",
    "react-native-web": "^0.11.4",
    "react-navigation": "^4.0.6",
    "react-navigation-stack": "^1.9.1",
    "react-navigation-tabs": "^2.5.5",
    "react-redux": "^7.1.0",
    "redux": "^4.0.4",
    "redux-persist": "^5.10.0",
    "redux-persist-expo-securestore": "^2.0.0",
    "redux-thunk": "^2.3.0",
    "regression": "^2.0.1",
    "sentry-expo": "~2.0.0",
    "victory-native": "^32.0.2"
  }

I’m on SDK35 and there are a couple of references to UIWebView in node_modules

  • node_modules/fbjs/lib/UserAgent.js
  • node_modules/react-native/node_modules/fbjs/lib/UserAgent.js
  • node_modules/ua-parser-js/test/browser-test.json

There are some other references in react-native-maps, but in binary files, so not sure about that

  • Binary file node_modules/react-native-maps/ios/build/Index/DataStore/v5/records/2N/UIWebView.h-GRW3LKFDYW2N matches

Sure, but those are comments or strings. Not actual references to UIWebView.

Not sure what the react-native-maps ones are.

Same here, I’m also getting the warning from Apple using SDK 35. The app is not using web views at all, and I can only find references to UIWebView in the comments of UserAgent.js and WebView.ios.js in the node_modules folder : (

The same, I also receive this warning!

For what it’s worth, I’ve got those same references in node_modules. They all seem pretty innocuous, test code and comments and whatnot. When I unpack and expect that giant file in my IPA with a hex editor, there’s 22 references to UIWebView. Though it’s not at all obvious what they are.

2 Likes

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