Received mail from Apple about the Deprecated API: UIWebView

Hey @dr.joe.black, there are still modules that rely on the UIWebView component that come bundled with a Managed Expo project’s binary even if you don’t explicitly use them. That’s why you’re getting a message still.

1 Like

Hi adamjnav, I also got the same email from apple today. Based on your answer, does this mean all expo submissions will be subjected to rejections?.

Not for me. Never got the email and my app was accepted.

I generated the ios build on 1 September.

To be candid with you, we can’t be sure. What we’re doing on our end is actively removing all instances of UIWebView. So far it seems users are still getting their apps accepted though!

2 Likes

We just submitted a brand new app build yesterday to review, and the app was approved and published today, even though we did receive this exact e-mail with the message:

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

Just Received this from apple.

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

I got the same warning email. So, any updates on the plan and the progress?

I’m getting the same message - is there somewhere we can track progress on this?

As far as I can see this work has been done, and should be included in SDK 35.

As you can see here the only remaining references to UIWebView are in the URL for a stackoverflow question. On the sdk-34 branch there are over 100 references to UIWebView.

1 Like

Got the same mail for my app built with WebViewGold. Updated the app template to the later version using WKWebView technology and Apple is happy again :slight_smile: +1

FYI SDK 35 has now been released.

Just got same warning while submitting ipa based on SDK 35.

Upgraded to SDK 35 and got the same warning as well. Does anyone know when this will be resolved by EXPO, or what steps can be taken to avoid / workaround this issue in the mean time?

Hey @brightlink & @dlyt0911,

As far as we’re aware we’ve removed all direct dependencies but there’s still the possibility that some external dependencies are using it. We’ll be making absolute sure that the next version has no instances of UIWebView in it.

Cheers,
Adam

1 Like

Hi @adamjnav , thanks for the quick response. I took the following steps, to no avail:

  1. Update to SDK 35
  2. rm -rf node_modules
  3. npm install

Once i did npm install, UIWebView continued to appear in useragent.js & useragent.js.flow , but it appeared to be commented out in every occurence. Not sure if that’s helpful to you, or anyone else facing this issue.

Do you have a tentative timeline for when we can expect the next version? We are nearing the launch of our app, so a bit skeptical about launching with this error.

I don’t think it will cause any problems? I submitted my app using SDK 35. I received no warnings and it got approved a few hours ago.

Hi @dlyt0911.

Is your app ejected?
What are the dependencies?

By the way, this is not an error. It’s a nebulous warning from Apple that at some unspecified point in the future they will start rejecting submissions of apps using UIWebView.

I also still receive the warning when uploading a new build with SDK 35 and a not ejected project.

I searched for UIWebView in my project and that is the result:

grep -r UIWebView node_modules/*
node_modules/fbjs/lib/UserAgent.js.flow:   * - UIWebView
node_modules/fbjs/lib/UserAgent.js:   * - UIWebView
node_modules/metro/node_modules/fbjs/lib/UserAgent.js.flow:   * - UIWebView
node_modules/metro/node_modules/fbjs/lib/UserAgent.js:   * - UIWebView
node_modules/react-native/node_modules/fbjs/lib/UserAgent.js.flow:   * - UIWebView
node_modules/react-native/node_modules/fbjs/lib/UserAgent.js:   * - UIWebView
node_modules/react-native/Libraries/Components/WebView/WebView.android.js:     * If true, use WKWebView instead of UIWebView.
node_modules/react-native/Libraries/Components/WebView/WebView.ios.js:     * If true, use WKWebView instead of UIWebView.
node_modules/react-native-web/node_modules/fbjs/lib/UserAgent.js.flow:   * - UIWebView
node_modules/react-native-web/node_modules/fbjs/lib/UserAgent.js:   * - UIWebView
node_modules/ua-parser-js/test/browser-test.json:        "ua"      : "Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Mobile/14A456 QQ/6.5.3.410 V1_IPH_SQ_6.5.3_1_APP_A Pixel/1080 Core/UIWebView NetType/WIFI Mem/26",

So it seems that its just included in comments, so why do I still receive the warning?

I think it would be native code using UIWebView, so it might not appear in the JavaScript in node_modules at all. But it’s rather strange because there are no longer any references to UIWebView in the expo Objective-C code either as far as I can see (as of SDK 35).

It would be interesting to poke around with a decompiler (e.g. IDA Freeware or Hopper etc.) to see where it’s being referenced.

1 Like

Thanks for your response @wodin.

I always thought that my project will not have custom native code as long as I do not eject and run any react-native link. So in theory I should not have any native code others with SDK 35 do not have or can that still happen with a dependency?

I’m also not really sure what I need to do in order to decompile and check for usages in native code.