ITMS-90809: Deprecated API Usage (New vs. Updates)

Hi there,


Our dev team is continually getting these strong warning messages whenever we submit an app to the Appstore.


ITMS-90809: Deprecated API Usage - Apple will no longer accept submissions of new apps that use UIWebView as of April 30, 2020 and app updates that use UIWebView as of December 2020. Instead, use WKWebView for improved security and reliability. Learn more (https://developer.apple.com/documentation/uikit/uiwebview).


This concerns me as we are almost at the end of the April. I'd like to know the extent of this.


What is the difference between 'new apps' and 'app updates'. My understanding is that NEW APPS means new apps that are submitted to the ap store with a new bundle idm ew SKU, and new Apple ID. This flow will not accept submissions of new apps that use UIWebView as of April 30, 2020.


"App updates" assume that an app already exists in the app store (with a Bundle ID, SKU, Apple ID), and so updates (new builds to this app) wil be allowed up the December 2020.


Please clarify.

There is no difference in that example, as they both require running the store gauntlet, which as stated will include a UIWebView sniff-and-tell.


But to know for sure, you'll need to forego the opinions of other devs here and ping support directly via the contact us link below.

Hey derekfromcalgary,


My understanding is that NEW APPS means new apps that are submitted to the ap store with a new bundle idm ew SKU, and new Apple ID. This flow will not accept submissions of new apps that use UIWebView as of April 30, 2020.


"App updates" assume that an app already exists in the app store (with a Bundle ID, SKU, Apple ID), and so updates (new builds to this app) wil be allowed up the December 2020.


Your understandings and assumptions are correct!


-Mark

The local project uses wkwebview, the global search does not have uiwebview, the submitted build version is rejected, and the email prompts itms-90809: the deprecated API no longer accepts the new application using uiwebview. On the contrary, using wkwebview can improve security and reliability. Learn more (https://developer.apple.com/documentation/uikit/uiwebview). What should I do? Urgent!

I too have the same exact case , remove all uiwebview references and replaced them by wkwebviews which are working fine . The submitted build got rejected and the email stated : "itms-90809: the deprecated API no longer accepts the new application using uiwebview. On the contrary, using wkwebview can improve security and reliability. Learn more (https://developer.apple.com/documentation/uikit/uiwebview)." What should be done now? Its really urgent

Getting the same error, this helped for me:

https://cordova.apache.org/howto/2020/03/18/wkwebviewonly.html

I am gettings same issue, I can't upload to ituneconnect anymore although I am not using it anywhere

I am gettings same issue, I can't upload to apple connect anymore. I am not using UiWebView anywhere, only used WKWebView.

I am gettings same issue, I can't upload to apple connect anymore. I am not using UiWebView anywhere, only used WKWebView.

Please let me know on urgent basis.

I just got the following from Apple:


Dear Developer,

We identified one or more issues with a recent delivery for your app, Please correct the following issues, then upload again.

ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability. Learn more (https://developer.apple.com/documentation/uikit/uiwebview).

Best regards,

The App Store Team


I understand that this is deprecated for new apps in 4/2020 and for updated apps in 12/2020. This is NOT a new app.


We have got this message many times before. New apps have to have this completed by April 2020, Updated Apps by December 2020.

To us this is an updated App. It has been in Test Flight for over a year and we updated date it about every month. We use a different a unique app bundle for promotion to the App Store. I don't know why.


The only thing I can see that we did differently was we needed a new provisioning profile. But that shouldn't mean it is a "new" app.

What criteria does Apple use to indicate whether an app is "new" or "updated".


This was just updating an app in Test Flight for testing. I think this is a mistake.


We REALLY need to start testing the app. How can I ask Apple abou this?

>What criteria does Apple use to indicate whether an app is "new" or "updated".


Not sure how this is a question, frankly, but got to be if the bundleID has seen the store before, definitely.

Same for me

i also same issue..
Yes i have also removed all UIwebview from code also i have updated all pods. But after removing Firebase , Facebook login and google login and also google Map apple approved build but with them it is rejecting our uploaded build with UIWebView reasons.

I don't understand that how we suppose to make app live without such important Pods that all ready integrated in my applications. Client don't want to remove them and now i can't upload with them.
I am getting the same. It's Google Sign In I believe for me.
Nope, it is Box.com
I have the same issue, any solution?
I have uploaded my app to Appstore on 17th Aug and it is uploaded successfully .But Today i am getting the error for releasing an Update.
"New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability. Learn more"
I am using Nativescript to build apps & it uses WKWebview only
In all instances I’m aware of, apps that are getting the UIWebView usage warning are in fact linking to the UIWebView framework. It may be in third party libraries or frameworks. 

Please check again what your app and its libraries link against. You can do so by running the grep command in Terminal. For example,
Open Terminal. Type the following on the command line to change to the directory where your application binary is:

Code Block
cd ~/Library/Developer/Xcode/Archives/<date of your archive>/<your archive>

To search for UIWebView use the following command:

Code Block
grep -R UIWebView *


This should give you a list of files that contain a reference to UIWebView. From that list you should then be able to determine where the UIWebView reference is.

To make this a bit more concrete, the other day I created a test app named SingleViewApp and archived it, so this is what I did to check for the UIWebView:

Code Block
% cd ~/Library/Developer/Xcode/Archives/
% ls
2019-08-26 2020-03-09
% cd 2020-03-09 
% ls
SingleViewApp 3-9-20, 11.38 AM.xcarchive SingleViewApp 3-9-20, 11.41 AM.xcarchive
SingleViewApp 3-9-20, 11.39 AM.xcarchive SingleViewApp 3-9-20, 11.47 AM.xcarchive
% cd "SingleViewApp 3-9-20, 11.47 AM.xcarchive"
% grep -R UIWebView *
Binary file Products/Applications/SingleViewApp.app/Base.lproj/Main.storyboardc/BYZ-38-t0r-view-8bC-Xf-vdC.nib matches
Binary file dSYMs/SingleViewApp.app.dSYM/Contents/Resources/DWARF/SingleViewApp matches


So we now know that there are references to UIWebView in the dSYM file and the nib.

Next we need to search the project for where the occurrences of the UIWebView exist.

Go to the folder where your project lives. In my case it was here:

Code Block
cd ~/src/SingleViewApp


Now run the same grep command for UIWebView to determine if there are any occurrences in the project:

Code Block
grep -R UIWebView *


In my case there weren't which means it’s not referenced in code.

Now run a search for UIWebView that will show up in storyboards by running this search:

Code Block
grep -R webView *


In my case that returns the following results:

SingleViewApp/Base.lproj/Main.storyboard: <webView contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="xsA-nw-Njb">

SingleViewApp/Base.lproj/Main.storyboard: </webView>

This tells us that the Main storyboard has a UIWebView in it.

Copy the id of the storyboard object, in this case it’s: 

xsA-nw-Njb

And in Xcode perform a project-wide search for that value by going to Find > Find In Project… and searching for the storyboard ID.

In the returned results, click on the ID and it will take you to the specific scene in the storyboard that contains the UIWebView.

Hope this helps.
i have the same issue,
already updated the library and checked using
grep -R UIWebView *
but problem still persist
I have removed UIWebview but still facing the same issue is there any solution?

ITMS-90809: Deprecated API Usage (New vs. Updates)
 
 
Q