invertase / react-native-firebase

🔥 A well-tested feature-rich modular Firebase implementation for React Native. Supports both iOS & Android platforms for all Firebase services.
https://rnfirebase.io
Other
11.63k stars 2.2k forks source link

(:fire:) UIWebView in PACView.h and PACView.m files (Ad Consent) - leading to reject with ITMS-90809 #3018

Closed tulpn closed 4 years ago

tulpn commented 4 years ago

Issue

App submissions with the Firebase package get rejected with "ITMS-90809: Deprecated API Usage" This is due to the use of UIWebView in the files: "PACView.h" and "PACView.m"

./Pods/PersonalizedAdConsent/PersonalizedAdConsent/PersonalizedAdConsent/PACView.h:@interface PACView : UIView<UIWebViewDelegate>
./Pods/PersonalizedAdConsent/PersonalizedAdConsent/PersonalizedAdConsent/PACView.m:@interface PACView () <UIWebViewDelegate>
./Pods/PersonalizedAdConsent/PersonalizedAdConsent/PersonalizedAdConsent/PACView.m:  UIWebView *_webView;
./Pods/PersonalizedAdConsent/PersonalizedAdConsent/PersonalizedAdConsent/PACView.m:    _webView = [[UIWebView alloc] initWithFrame:frame];
./Pods/PersonalizedAdConsent/PersonalizedAdConsent/PersonalizedAdConsent/PACView.m:#pragma mark UIWebViewDelegate
./Pods/PersonalizedAdConsent/PersonalizedAdConsent/PersonalizedAdConsent/PACView.m:- (void)webViewDidFinishLoad:(UIWebView *)webView {
./Pods/PersonalizedAdConsent/PersonalizedAdConsent/PersonalizedAdConsent/PACView.m:- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
./Pods/PersonalizedAdConsent/PersonalizedAdConsent/PersonalizedAdConsent/PACView.m:- (BOOL)webView:(nonnull UIWebView *)webView
./Pods/PersonalizedAdConsent/PersonalizedAdConsent/PersonalizedAdConsent/PACView.m:                navigationType:(UIWebViewNavigationType)navigationType {
Binary file ./Pods/Crashlytics/iOS/Crashlytics.framework/Crashlytics matches
Binary file ./Pods/Google-Mobile-Ads-SDK/Frameworks/GoogleMobileAdsFramework-Current/GoogleMobileAds.framework/GoogleMobileAds matches
./Pods/Headers/Private/PersonalizedAdConsent/PACView.h:@interface PACView : UIView<UIWebViewDelegate>
Binary file ./Pods/Fabric/upload-symbols matches

Project Files

Javascript

Click To Expand

#### `package.json`: ```json "dependencies": { "@react-native-community/async-storage": "^1.6.3", "@react-native-firebase/admob": "^6.0.4", "@react-native-firebase/analytics": "^6.1.0", "@react-native-firebase/app": "^6.0.4", "@react-native-firebase/crashlytics": "^6.0.4", "babel-plugin-transform-remove-console": "^6.9.4", "eslint-config-airbnb": "^18.0.1", "eslint-plugin-jsx-a11y": "^6.2.3", "expo-sqlite": "^7.0.0", "moment": "^2.24.0", "native-base": "^2.13.8", "react": "16.9.0", "react-native": "0.61.3", "react-native-bootsplash": "^1.0.3", "react-native-fs": "^2.16.2", "react-native-gesture-handler": "^1.5.1", "react-native-iap": "^4.3.0", "react-native-paper": "^3.2.1", "react-native-rate": "^1.1.10", "react-native-reanimated": "^1.4.0", "react-native-screens": "^1.0.0-alpha.23", "react-native-snap-carousel": "^3.8.4", "react-native-sound": "^0.11.0", "react-native-unimodules": "^0.7.0-rc.4", "react-native-vector-icons": "^6.6.0", "react-native-version-number": "^0.3.6", "react-native-web": "^0.11.7", "react-navigation": "^4.0.10", "react-navigation-drawer": "^2.3.3", "react-navigation-header-buttons": "^3.0.4", "react-navigation-material-bottom-tabs": "^2.1.5", "react-navigation-stack": "^1.10.3", "react-navigation-tabs": "^2.5.6", "react-redux": "^7.1.3", "redux": "^4.0.4", "redux-thunk": "^2.3.0", "yarn": "^1.19.1" }, "devDependencies": { "@babel/core": "^7.7.2", "@babel/runtime": "^7.7.2", "@react-native-community/eslint-config": "^0.0.5", "babel-jest": "^24.9.0", "eslint": "^6.6.0", "eslint-config-standard": "^14.1.0", "eslint-plugin-import": "^2.18.2", "eslint-plugin-node": "^10.0.0", "eslint-plugin-promise": "^4.2.1", "eslint-plugin-react": "^7.16.0", "eslint-plugin-react-native": "^3.8.1", "eslint-plugin-standard": "^4.0.1", "jest": "^24.9.0", "jetifier": "^1.6.4", "metro-react-native-babel-preset": "^0.57.0", "react-native-version": "^3.2.0", "react-test-renderer": "16.9.0", "remote-redux-devtools": "^0.5.16" }, ``` #### `firebase.json` for react-native-firebase v6: ```json # N/A ``` ### iOS

Click To Expand

#### `ios/Podfile`: - [ ] I'm not using Pods - [x] I'm using Pods and my Podfile looks like: ```ruby pod 'FBLazyVector', :path => "../node_modules/react-native/Libraries/FBLazyVector" pod 'FBReactNativeSpec', :path => "../node_modules/react-native/Libraries/FBReactNativeSpec" pod 'RCTRequired', :path => "../node_modules/react-native/Libraries/RCTRequired" pod 'RCTTypeSafety', :path => "../node_modules/react-native/Libraries/TypeSafety" pod 'React', :path => '../node_modules/react-native/' pod 'React-Core', :path => '../node_modules/react-native/' pod 'React-CoreModules', :path => '../node_modules/react-native/React/CoreModules' pod 'React-Core/DevSupport', :path => '../node_modules/react-native/' pod 'React-RCTActionSheet', :path => '../node_modules/react-native/Libraries/ActionSheetIOS' pod 'React-RCTAnimation', :path => '../node_modules/react-native/Libraries/NativeAnimation' pod 'React-RCTBlob', :path => '../node_modules/react-native/Libraries/Blob' pod 'React-RCTImage', :path => '../node_modules/react-native/Libraries/Image' pod 'React-RCTLinking', :path => '../node_modules/react-native/Libraries/LinkingIOS' pod 'React-RCTNetwork', :path => '../node_modules/react-native/Libraries/Network' pod 'React-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings' pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text' pod 'React-RCTVibration', :path => '../node_modules/react-native/Libraries/Vibration' pod 'React-Core/RCTWebSocket', :path => '../node_modules/react-native/' pod 'React-cxxreact', :path => '../node_modules/react-native/ReactCommon/cxxreact' pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi' pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor' pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector' pod 'ReactCommon/jscallinvoker', :path => "../node_modules/react-native/ReactCommon" pod 'ReactCommon/turbomodule/core', :path => "../node_modules/react-native/ReactCommon" pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga' pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec' pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec' pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec' pod 'RNSound', :path => '../node_modules/react-native-sound' ``` #### `AppDelegate.m`: ```objc // N/A ```

--- ### Android
Click To Expand

#### Have you converted to AndroidX? - [ ] my application is an AndroidX application? - [ ] I am using `android/gradle.settings` `jetifier=true` for Android compatibility? - [ ] I am using the NPM package `jetifier` for react-native compatibility? #### `android/build.gradle`: ```groovy // N/A ``` #### `android/app/build.gradle`: ```groovy // N/A ``` #### `android/settings.gradle`: ```groovy // N/A ``` #### `MainApplication.java`: ```java // N/A ``` #### `AndroidManifest.xml`: ```xml ```

--- ## Environment
Click To Expand

**`react-native info` output:** ``` OUTPUT GOES HERE ``` - **Platform that you're experiencing the issue on**: - [x] iOS - [ ] Android - [ ] **iOS** but have not tested behavior on Android - [ ] **Android** but have not tested behavior on iOS - [ ] Both - **`react-native-firebase` version you're using that has this issue:** - `e.g. 5.4.3` - **`Firebase` module(s) you're using that has the issue:** - `e.g. Instance ID` - **Are you using `TypeScript`?** - `N` & `VERSION`

mikehardy commented 4 years ago

2943 #2535 #2638 #3012

Upgrade your Firebase pods to one that has the required fixes. 6.13.0 is current, I'd try that

You can specify it like so https://github.com/mikehardy/rnfbdemo/blob/master/make-demo-v6.sh#L30