-
Notifications
You must be signed in to change notification settings - Fork 24.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ITMS-90809: Deprecated API Usage UIWebView #26255
Comments
If you're using |
We've received the same warning and are not using any webview |
I've made the same mistake. Is there a solution? I didn't use react-native-webview |
Just got the same email, I'm guessing it might be expo related? Because I'm otherwise doing pretty vanilla stuff on top of expo |
more information here: react-native-webview/react-native-webview#819 |
@Maxwell2022 @Yathousen no I'm not using react-native-webview |
In the referenced issue they are also talking about other possible sources for this warning.
|
To fix this you need to update to RN0.60+,this is when WebView was extracted and use react-native-webview (if you need it) 7.0.1+ |
(OR dirty fix but if you really can't upgrade remove the RTCUIWebView.* from react-native deps files with a postinstall/patch) |
How to check libary using Webview Deprecated API, My package.json: |
@AtranDev Maybe try |
Do you have any sample for patch ? I am very new to react native and facing this issue and at this stage i can't take a risk to upgrade react native ? |
@HiralBarot1512
We also removed or upgraded all packages that were using this deprecated Webview (like for example react-native-device-info. |
In my case. |
…ted UIWebView error from app store - Problem - Email after upload: `ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of apps that use UIWebView APIs` - Our react-native is really old and still has RCTWebView - Solution - Rip out RCTWebView - `find node_modules/react-native/ | grep RCTWebView | xargs trash` - From facebook/react-native#26255 (comment) - Future react-native versions move WebView out to https://github.com/react-native-community/react-native-webview - facebook/react-native#16792 (comment)
@mptorz I love you man! Those lines were a life saver 😄
|
We tried @mptorz's post_install script, but we're still receiving the same warning, any updates on this? |
hi try grepping pods folder |
@BBTurtle, @mikehardy I'm getting the similar one as @BBTurtle. Here people have had UIwebview issues in a different forms and came up with a solution. Gr8 to c that. But from my side, I thought of upgrading the following libraries with the version mentioned below would fix the issue as one of the members suggested. But it still didn't fix it. react-native-web-view: 7.0.1
|
Images are hard to decipher, text is preferred. |
@mikehardy My actions after your response
|
Hi @Brad19 . I can answer some of your questions:
|
Thanks @lgenzelis . I'll try including the scripts in podfile and build it again to create a TestFlight build. Hope it works!!! |
i am not able to find React.xcodeproj, may be because of higher react-native version(0.61). Any solution that might help? |
@fahadhaquni react_project = Xcodeproj::Project.open("../node_modules/react-native/React/React.xcodeproj") |
I'm unfortunately seeing this on 0.61.5, I'm not using WebView at all, and I've grepped both ios/Pods and node_modules for UIWebView and RCTWebView (as well as searching for files named after that) to no success. I have no idea where this warning is coming from. |
Following instructions above, I looked into adding a Next I tried searching my node_modules for the string
I expanded my search to the entire project, and came up with some hits in my Pods directory: [redacted]$ grep -r UIWebView ./*
# (comments/changelogs/android code removed)...
Binary file ./ios/Pods/FirebaseMLCommon/Frameworks/FirebaseMLCommon.framework/FirebaseMLCommon matches
Binary file ./ios/Pods/Crashlytics/iOS/Crashlytics.framework/Crashlytics matches
Binary file ./ios/Pods/Fabric/upload-symbols matches
# ... This pointed strongly towards our firebase dependencies being the culprit (Fabric is used by firebase). I googled for firebase+UIWebView and found a GH Issue suggesting it was a known/fixed issue. I upgraded the three firebase dependencies we have using: yarn upgrade @react-native-firebase/app @react-native-firebase/analytics @react-native-firebase/crashlytics
cd ios
rm -rf Pods # probably not needed
pod install Built my project, tested everything was still working and submitted to Apple. This time there was no message about using a depreciated API. |
For those who can't update above RN 0.60 i run this command and it's solve the problem in react native package:
|
@barak109 that's a good catch. This is a dirty way but it works 👍
|
Does anybody has resolved this issue? specially @fahadhaquni |
Try this where exactly? |
my app not accepting by testflight. |
@Biplovkumar
|
same problem.react native 0.62 |
I solved my problem, after upgrading from 0.59.10 to 0.61.3.. which even after upgrading react-native-fbsdk i was not able to publish the app. The steps i have followed in order to solve it: 1) Upgrade the package to react-native-fbsdk": "^2.0.0",
3) Removed from framework folder the old facebook frameworks:
4) Removed also from Xcode in frameworks folder 5) cd ios - pod install 6) Archive and uploaded to apple. |
I am facing the same issue, while using react-native-fbsdk: 2.0.0, |
@rcchen This reply is a bit late, but ExpoSDK > 36.0.0 uses UIWebView which will cause the bug. Upgrading to 36.0.0 or higher should fix it. |
I was also facing the same issue, the trick was to upgrade react-native-gesture-handler and removing the Facebook SDK and bolts framework references from ios/Frameworks as Pod installs them in the Pods anyway. |
killed my hours , |
@rakeshostwal I'm having the same issue, I have updated the react-native-gesture-handler, can you explain more to delete the fbsdk and bolts framework ? |
@kemalony did you just comment the line? and how did you find the |
same issue but i'm using both WebView from react-native and from react-native-webview. |
Using CocoaPods (in 0.59.10), as well as running the above I also had to:
|
In my particular case on an application that is using Steps to fix the issue on React-Native 0.59.XUpgrade dependenciesMake sure all the dependencies are not using To check this you'll have to look on $ grep -r UIWebView node_modules/* $ cd ios/ && grep -r UIWebView . Ignore the UIWebView references from
You should use jettifier on reverse mode to patch the dependency and convert it to Android Support Library on install time. After that you'll be able to upgrade this dependency and make it work on Android build. Remove UIWebView references from react-native coreEnsure that all the Once you don't have any dependency that is using
require 'xcodeproj'
# This script removes UIWebView from React project.
# We should remove this script once we upgrade react-native to 0.60.x
react_project = Xcodeproj::Project.open("./node_modules/react-native/React/React.xcodeproj")
react_project.main_group["React/Views"].files.each do |file|
if file.path.match(/^RCTWebView/)
file.remove_from_project
end
end
react_project.save
puts '> ✅ UIWebView removed successfully from React.xcodeproj'
"scripts": {
"postinstall": "npx jetifier -r && ruby ios/removeUIWebView.rb
} This step is not required once you upgrade to react-native > 0.60. Because this is already done on the native iOS library. Upgrading to
|
It worked fine. When I execute command "grep -r UIWebView ." inside node module path nothing exists, but inside the project I found too many binary files inside ./ios/Build matches . Finally got the same mail from app store " UIWebView are no longer accepted". |
Hello everyone, I looked at this issue but I couldn't solve my problem. My problem is the same as reported above -> Package.json from my current project {
"name": "app1",
"version": "0.0.1",
"dependencies": {
"axios": "^0.18.0",
"axios-extensions": "^3.0.5",
"babel-eslint": "^10.0.1",
"boleto-validator": "^1.0.2",
"color": "^3.1.2",
"graceful-fs": "^4.2.4",
"lodash": "^4.17.11",
"moment": "^2.24.0",
"react": "16.8.3",
"react-native": "0.59.10",
"react-native-android-open-settings": "^1.2.0",
"react-native-animatable": "^1.3.0",
"react-native-camera": "^1.6.4",
"react-native-carousel-control": "^2.0.1",
"react-native-circular-progress": "^1.1.0",
"react-native-contacts": "^3.1.4",
"react-native-custom-qr-codes": "^2.0.0",
"react-native-datepicker": "^1.7.2",
"react-native-device-info": "^7.1.0",
"react-native-elements": "^0.19.1",
"react-native-elevated-view": "0.0.6",
"react-native-fast-image": "^5.1.2",
"react-native-fingerprint-scanner": "^2.5.0",
"react-native-firebase": "^5.2.3",
"react-native-flexi-radio-button": "^0.2.2",
"react-native-gesture-handler": "^1.2.1",
"react-native-image-resizer": "^1.0.0",
"react-native-keychain": "^3.0.0",
"react-native-masked-text": "^1.9.2",
"react-native-modal": "^7.0.2",
"react-native-modal-datetime-picker": "^6.0.0",
"react-native-motion": "^0.2.0",
"react-native-navbar": "^2.1.0",
"react-native-orientation": "^3.1.3",
"react-native-orientation-locker": "^1.1.1",
"react-native-pdf": "^5.0.11",
"react-native-permissions": "^1.1.1",
"react-native-picker-select": "^5.2.4",
"react-native-progress": "^3.5.0",
"react-native-public-ip": "^1.0.1",
"react-native-push-notification": "^3.1.2",
"react-native-qrcode-scanner": "^1.1.2",
"react-native-qrcode-svg": "^5.1.1",
"react-native-responsive-screen": "^1.2.0",
"react-native-router-flux": "^4.0.6",
"react-native-search-filter": "^0.1.4",
"react-native-shadow": "^1.2.2",
"react-native-share": "^1.1.3",
"react-native-snap-carousel": "^3.7.5",
"react-native-svg": "^9.3.3",
"react-native-svg-uri": "^1.2.3",
"react-native-swipe-gestures": "^1.0.3",
"react-native-transition": "^1.1.8",
"react-native-ui-xg": "0.0.6",
"react-native-vector-icons": "^6.1.0",
"react-native-voice": "^0.2.6",
"react-native-webview": "^10.10.2",
"react-number-format": "^4.0.6",
"react-redux": "^6.0.0",
"redux": "^4.0.1",
"redux-thunk": "^2.3.0",
"reselect": "^4.0.0",
"rn-fetch-blob": "0.10.15",
"rn-viewpager": "^1.2.9",
"standard": "^12.0.1"
},
"devDependencies": {
"@babel/core": "^7.4.5",
"@babel/runtime": "^7.4.5",
"babel-jest": "^24.8.0",
"jest": "^24.8.0",
"metro-react-native-babel-preset": "^0.54.1",
"react-test-renderer": "16.8.3",
"reactotron-react-native": "^3.2.1",
"reactotron-redux": "^3.1.0"
},
"jest": {
"preset": "react-native"
},
"private": true,
"rnpm": {
"assets": [
"./src/assets/fonts/"
]
},
"scripts": {
"android": "react-native run-android",
"port:kill": "kill -9 $(lsof -t -i:8081)",
"android:apk": "cd android && ./gradlew assembleRelease && cd .. && yarn copy:apk",
"copy:apk": "cp android/app/build/outputs/apk/release/app-x86-release.apk se-wallet.apk",
"clean-cache": "react-native start --reset-cache",
"emulate": "cd %USERPROFILE%/AppData/Local/Android/Sdk/emulator && emulator @Nexus",
"maxUserWatches": "echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p",
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "standard"
},
"standard": {
"parser": "babel-eslint",
"globals": [
"describe",
"test",
"jest",
"expect",
"fetch",
"navigator",
"__DEV__",
"XMLHttpRequest",
"FormData",
"React$Element"
]
}
}
I did the process of running the script below #!/bin/bash
BASE_DIR=`pwd`;
function remove_rctwebview(){
local dir="${BASE_DIR}/node_modules/react-native/React";
sed -i'.bak' '/RCTWebView/d' "${dir}/React.xcodeproj/project.pbxproj"
rm -f "${dir}/React.xcodeproj/project.pbxproj.bak"
rm -f "${dir}/Views/RCTWebView.m"
rm -f "${dir}/Views/RCTWebView.h"
rm -f "${dir}/Views/RCTWebViewManager.m"
rm -f "${dir}/Views/RCTWebViewManager.h"
}
remove_rctwebview; I also run the following command on the terminal
But even after doing all the processes I still can't publish in the store. Has anyone managed to solve or have a tip? Remembering that I have already placed all WebViews in react-native-webview and also with useWebKit = {true} |
Updates: Aside from doing the post install script, what we did is to upgrade Crashlytics from 3.13.4 to 3.14.0 and FBAudienceNetwork to 5.5.0 to 5.6.0. I did fork Expo repository and upgraded the versions for Crashlytics and FBAudienceNetwork. Check it here. Solution for my case:
To
I hope this will help someone. |
ITMS-90809: Deprecated API Usage** - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability. Learn more (Apple Developer Documentation). Package.json “dependencies”: { Config.xml We use your location for full functionality of certain app features. Thanks. |
React Native version: 0.60.5
Issue Description
ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of apps that use UIWebView APIs . See https://developer.apple.com/documentation/uikit/uiwebview for more information.
The text was updated successfully, but these errors were encountered: