Apple does not accept apps that use UIWebView - ios

I have a game created in Unity which Apple does not accept because of the following:
It seems that the problem is in Google Mobile ADS
We identified one or more issues with a recent delivery for your app, "My Game" 10.0 (10). 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).
I have followed several answer that I found on stackoverflow:
UIWebView still exist in Google Mobile Ads
I have also followed other Unity forums and I can't find a solution
https://forum.unity.com/threads/itms-90809-deprecated-api-usage-new-apps-that-use-uiwebview-are-no-longer-accepted.883510/
My game is created with Unity, and at no time have I used Pod
I have run grep -r "UIWebView". , but this shows files that I can't see, not in xCode, and not in Visual Studio either
I don't know exactly in which folder I should run this command. When I do it in the Pod folder, it shows me files that I cannot open in the editorHow can I find where the files containing UIWebView are located?
I don't know how to find those files in xCode to modify them and try to get Apple to accept my game
Can you help me find those files in xCode?
What should i do to correct this problem?
Thanks
EDIT:
I need answers that solve my problem. The only answer there is, except for mine, offers data that I have tried and showed in my question. I do not see logical that the reward is given to someone who has not read my question, Thank you

I have to say you can add WebKit.framework at UnityFramework > Build Phases > Link Binary With Libraries. Then After Update pods from terminal and upload project and apple approved game.
It worked for me.

Finally and seeing that I do not receive a response, I have solved the problem by starting the project again in the Unity 2020.1.17f1 version.
This is not really a solution to the problem that I raised, but since it has solved my problem, I put it as an answer.
Thanks to those who have tried to help me. #AlexB

open terminal on macos and try :
grep -Ril "UIWebView" "/Users/yourUserName/yourProjectFolder"

Related

How to fix if App rejected for using UIWebView in code?

I have been trying to upload an iOS app to Appstore but its only appearing on "Activity" tab for 3-5 minutes and then disappears.
Then I got an email from Apple saying that my app is rejected because it is using UIWebView in one of the view controller. I deleted that particular screen and reuploaded the app and had the same error email.
Then I checked my third-party sdks like FacebookLoginSDK and GoogleSignInSDK and updated those and then checked that if the app has no UIWebView which it did not. Then i reuploaded the app but this time again I had the same error email. I have searched the whole storyboard source code and the whole app code to look that if there is any sign for UIWebView but there is nothing, but still I am getting this email.
I also tried deleting 'Derived Data' folder several times and cleaning the build folder also but nothing helps.
On the other hand I have uploaded a different app today which had UIWebView and it got approved but I also got the same email for not using UIWebView.
Does anybody had this kind of experience or can anybody tell me whats going on ?
I got the same issue before.
If you have uploaded the build and showing it in activity tab for few minutes then its not mean that issue is only about UIWebview but there can be some other issue as well.
I have uploaded my app n got the mail related to UIWebview, so I coverted the UIWebview to WKWebView and again I uploaded but that time same thing happend.
I failed to tackle the problem.
Then I mailed to Apple Developer Support and they replied like
Any of the third party library internally using some privacy data you should ask permission for the same.
Then I checked Info.plist, I have given each permission in list still how it comes that we don't understand.
Finally then after whole search the one third party library internally using motion related data without permission so this happened.
Then I have added that in plist and then again uploaded and its approved.
So please you can check your info.plist and also check whether your third party library using any privacy sensitive data without permission or not.
May it help you at some point.
Make sure you update all your plugins to the latest version!
Check this: https://ionicframework.com/blog/understanding-itms-90809-uiwebview-api-deprecation where you can find the plugins that have known issues concerning the old WebView usage.
But be aware that uninstalling and re-installing some plugins will NOT will not install the latest available version of the plugin!
So to be sure that you are re-installing the latest version of a plugin, go to the github repository of the cordova plugin and search for the plugin.xml file and open it. Then, copy the version string found in the root xml element.
Finally, install the plugin like that: ionic cordova plugin add plugin_name#copied_version
<?xml version='1.0' encoding='utf-8'?>
<plugin id="cordova-plugin-firebase" version="2.0.5"
xmlns="http://apache.org/cordova/ns/plugins/1.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<name>Google Firebase Plugin</name>
...
...
...
</plugin>
Are you using the AdMob plugin?
It is not enough to check for the absence of "UIWebView" strings!
You have to make sure that all third party plugins are up to date.
One of the trickiest situations I had went to is when I had tried to update an app (using AdMob) on the AppStore after Apple started rejecting apps using the UIWebView.
The generated iOS source code has no UIWebView references, but still rejected!
After a long headache, I realized that the Google AdMob SDK version I'm using is out of date, knowing that I had updated the AdMob plugin from the CLI, but it seems that the SDK is not updated when updating from the npm.
Finally, I had downloaded the latest AdMob SDK from this link https://developers.google.com/admob/ios/download and replaced it in the source code of the AdMob SDK plugin. Then I had followed the instructions found in this link https://developers.google.com/admob/ios/quick-start to update the code in the xCode.

Custom Siri Intent Generation broken in Xcode Version 11.4 (11E146)

I updated Xcode yesterday only to discover that my custom siri intents no longer seem to generate. I started seeing others with this issue on the Apple dev forum this morning https://forums.developer.apple.com/thread/130691 and thought I would ask here if anyone found a solution for this. When I visit build settings, there no longer seems to be a setting to select the intent generation language with the "intent class generation language". Target membership on the intent is good and again, this built yesterday before updating and has not been altered for months. Does anyone know if rewriting all the custom intents will fix this (that's what I am going to try next) or if there is some new setting / plist entry that needs to be updated to get this working again. I will update here if I find the solution. Also to note, I was generating my intent files in Objective C.
I have dug around, and also talked to Apple Support. Turns out, it has to do with the "legacy build system".
Once i switched to the new build system in xcode project settings, i could build the project again.
You could argue that it should work if they still support the legacy system (which they do), but oh well.
Read how to switch here:
https://help.apple.com/xcode/mac/current/#/dev396bc94c7

Unity iOS support, installation failed

I am trying to use Unity to create an iOS app. I used Unity Hub to install Unity. I then opened Unity, went to File-Build Settings. I click on iOS, and it says "No iOS module loaded", so I clicked on the "Open Download page". I downloaded UnitySetup-iOS-Support-for-Editor-2018.4.7f1 and ran it. It looks like everything is going smoothly, and right at the end I get the message in the attached screen shot.
I have tried closing Xcode and Unity. I have tried restarting my computer. I have done several Google searches, but I haven't found anything that helps. Does anyone have any ideas?
I suspect the installation path got messed up.
You have to use the Unity Hub to install additional packages.
Go to Installs, click the 3 vertical dots and select Add Modules.
I had a similar problem with tvOS support and it seems that if you don’t have Unity installed to /Applications/Unity, installing addons will fail. (I had it in /Applications/Unity-2019.4.7f1.)
I moved my Unity to /Applications/Unity, installed the addon, and then moved Unity back.
The accepted answer did not work for me.
However, what did the job (Unity 2018, Unityhub 3.4.1) was copying the installed /Applications/Unity/PlaybackEngines to the current /Applications/Unity-[2018....]/PlaybackEngines

iTunes Connect Errors occurred in the app thinning process, and your app couldn’t be thinned?

I Uploaded the build via Xcode Yesterday it worked fine but while uploading today the build is uploading perfectly but after 10 minutes i got a email form apple stating that.
While processing your iOS app, ---------------Build(1.0.22), errors
occurred in the app thinning process, and your app couldn’t be
thinned. If your app contains bitcode, bitcode processing may have
failed. Because of these errors, this build of your app will not be
able to be submitted for review or placed on the App Store. For
information that may help resolve this issue, see Tech Note 2432.
I only changed the one line of code and changed the Build Number. And, I uploaded 4 build got the same Error.
I met with this issue today, I used google-api-objectivec-client-for-rest (as framework).
I tried all the solutions above, but failed.
Now I fixed it by copying all the source of google-api-objectivec-client-for-rest to my own project. Hope it helpful to you.
MY SOLUTION THAT DID NOT WORKED BUT MAYBE CAN GIVE U A WAY OUT
In My own case, i developed my IOS APP with PhoneGap
After so much research, was told to disable bitcode from my ItuneConenct App Account https://developer.apple.com/library/mac/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Chapters/ChangingAppStatus.html
And was introduced to a new phonegap plugin to disable bitcode in my IOS APP https://www.npmjs.com/package/cordova-plugin-cs-disable-bitcode
which i added to my Phonegap app config.xml file
Yet after rebuilding my phonegap IOS app and uploading to ItunesConenct using Application Builder (Got a successful message from the upload). Few mins' after the upload, I got same message from Apple with the same error.
This can give you a hint
Finally got it to work. In our case, the error was in one of the embedded frameworks. Generating a Production Ad-hoc build and then trying to export it generated an error message that pointed us to an error in a setting within one of the framework files. The framework has been there for a while and we never had any issues with it until this release.
I had the same problem and I found the solution. In my app, I had the Google Plus framework: GoogleOpenSource.framework. This framework was the problem. I searched about the latest update in Google Plus: https://developers.google.com/+/mobile/ios/upgrading-sdk.
The latest version was 1.7.1. This version has the same problem. In my app, I removed the login with Google Plus (deprecated https://gyazo.com/685a58f98ee0b0fca16a6bd83636aad8) and I added Google: https://developers.google.com/identity/sign-in/ios/sdk/
This works for me.
A greeting.
Hey guyz My App has been approved by Apple Store.
The trick i used was this
Deleted the plugin folder on my App root directory before building
Because most plugins were not compatible with Apple has to use just few of them on my manifest file
<plugin name="org.apache.cordova.inappbrowser" />
<plugin name="org.apache.cordova.network-information" />
<plugin name="org.apache.cordova.splashscreen" />
<plugin name="cordova-plugin-whitelist" />
i was surprised when Apple sent me a message that my App has been Approved just now.
I Home this trick work for someone
If you are having this problem recently, i.e. since September 2016, it may be due to having a 'special character' in the title of your app.
I had several targets for the same code, some of which would process OK and some of which would fail. The ones that were failing all had Apple symbols in the title, for example one app was called '🇨🇲 Flags'.
Credit to Krati Rastogi: https://forums.adobe.com/thread/2205923
I had this happen a couple days ago and the temporary solution for me was to not include bitcode for iOS content, which is an uploading option (see image). Apple suggests to do an ad hoc export with an ad hoc provisioning profile to receive the errors and logs of the failure, but I'm unable to reproduce the error(s) and the ad hoc export is successful each time. Will update this post when I find out how to re-enable bitcode, but for now this seems like a good temporary fix. -Update: there was an error in the name of one of my project folders, mixup with symbolic folder name, when I corrected the name to match what was actually in the folder structure I was able to upload properly-
I've experienced the same symptoms and have found a solution.
The root cause of the issue is invalid/incorrect keys in a given bundle's embedded Info.plist.
This is typically the .bundle contained within a third party library e.g. GoogleMaps SDK.
The steps for remediation are:
For each .bundle containing only resources:
Remove the key/value CFBundleExecutable
Change the value for key
CFBundleSupportedPlatforms to iPhoneOS (Item 0, first element in the array. The previous value was iPhoneSimulator in my case)
The technical reason is that CFBundleExecutable should not be present in a bundle's plist if there is no executable. The value for CFBundleSupportedPlatforms is self explanatory, it should be iPhoneOS.
Tech Note 2432 mentions the above two keys but does not elaborate how to resolve the issue.
I hope this solution works for you.
As another user above stated... Remove the Plug In Directory and it solves the problem!
I just uploaded a fully functional version of my App with all of my Plug Ins. When I use build.phonegap.com to compile my IPA file, I have no Plugin folder in the ZIP file. The plugins are correctly referenced in my config.xml file.
It works!
I have no clue why this was ever an issue, but that is the ticket to move forward!
Finally, I made this work!!!
Just like #applejack42 said, you must remove CFBundleExecutable key of all 3rd party library info.plist file.
In my case, I just remove this key from JSONModel info.plist, and submit.
Success!
I really hope it works for you, because that issue make me crazy.
update xcode to 8.0 which published at 0914 from apple store , rebuild project and submit to iturns , the issue was not found , instead any detail info for anouther issue which use ios 10 sdk required . i have submited success, and waiting for approval .
Ive attempted various build and submitted to Itunes with Xcode 8 and 7, with no success.
Deleting my plugins folder was not the solution, neither was greping through all my .plist's to find the CFBundleExecutable. At this moment its just waiting on further discovery from the community and or returning to our 3rd party resources and asking them to update their libs which may not be as easy as apple is suggesting us to do.
To identify the affected libraries I built to an iPhone with Bitcode enabled and in my case their are three libs that need updating. This may not be the best solution but if you need an explanation for your superiors this may save you some time in identifying what needs updating.
I will update my thread as I continue along this road.
Apple recommends to test by archiving the app first and then exporting the app for ad hoc distribution. If there are errors, you can then see this in the logs, you can access them from the export dialog.
My favorite solution, if there is no error during export:
update cocoapods
run pod install
clean the project and resubmit
It just worked for me, no clue why, but it might be worth a try instead of wasting hours on finding a solution for a non existant problem ;)
For me the Issue was that one of my frameworks wasn't embedded and signed . hope that might help someone
I have met with this situation with Xamarin IOS Project in Visual Studio
I have solved in
Clean All
Rebuild All
then archive your project

GoogleService-Info.plist not created

I'm upgrading from an earlier version of Google Analytics for my iOS app and when I follow the instructions here, I click the button to create a configuration file and nothing happens. Anyone else experience this? Is there a default GoogleService-Info.plist that I can use and customize?
Thanks!
Seems to be a bug on their site. It worked for me 2 weeks ago. However you have already found Googles Guide - the config file does not contain any complicated settings, however you can download the Sample Apps and get your initial GoogleService-Info.plist file from there:
pod try Google
from
https://developers.google.com/maps/documentation/ios-sdk/code-samples#try-the-sdk-demos-using-cocoapods
Steps for getting configuration if your first time login to google developer account.
1. open google developer console.
2. login to developer console.
3. create project with valid name.
4. then goto the API section & enable GCM API.
5. Then get the configuration file.
Thanks for the suggestions, looks like they would work for others. Unfortunately, I just couldn't get Cocoa Pods to upgrade the analytics, so I switched tactics and used the sdk directly. This worked fine, hopefully others have better luck!

Resources