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.72k stars 2.22k forks source link

RNFBCrashlytics depends on a library with deprecated UIWebView #3012

Closed aliustaoglu closed 4 years ago

aliustaoglu commented 4 years ago

Issue

Apple sends those ugly ITMS-90809: Deprecated API Usage emails whenever we release a new build to TestFlight.

And when I use grep to find out which library is using this, I see that Crashlytics is the reason:

image

I have upgraded all node libraries but still no luck. Is there a fix planned for this?


Project Files

Javascript

Click To Expand

#### `package.json`: ```json { "dependencies": { "@react-native-community/datetimepicker": "^2.1.0", "@react-native-community/geolocation": "^2.0.2", "@react-native-community/netinfo": "^5.0.0", "@react-native-community/slider": "^2.0.8", "@react-native-firebase/analytics": "^6.2.0", "@react-native-firebase/app": "^6.2.0", "@react-native-firebase/auth": "^6.2.0", "@react-native-firebase/crashlytics": "^6.2.0", "@react-native-firebase/database": "^6.2.0", "@react-native-firebase/perf": "^6.2.0", "axios": "^0.19.0", "date-fns": "^2.8.1", "dayjs": "^1.8.17", "formik": "^2.0.8", "prop-types": "^15.7.2", "ramda": "^0.26.1", "react": "^16.12.0", "react-native": "^0.61.5", "react-native-dark-mode": "^0.2.1", "react-native-date-picker": "^2.7.0", "react-native-device-info": "^5.4.0", "react-native-dotenv": "^0.2.0", "react-native-exception-handler": "^2.10.8", "react-native-gesture-handler": "^1.5.2", "react-native-localize": "^1.3.1", "react-native-navigation": "4.0.6", "react-native-reanimated": "^1.4.0", "react-native-sqlite-storage": "^4.1.0", "react-native-svg": "^9.13.6", "react-native-svg-uri": "^1.2.3", "react-redux": "^7.1.3", "redux": "^4.0.4", "redux-actions": "^2.6.5", "redux-thunk": "^2.3.0", "rn-sliding-up-panel": "^2.4.0", "squel": "^5.13.0", "styled-components": "^4.4.1" }, "devDependencies": { "@babel/core": "^7.7.5", "@babel/runtime": "^7.7.6", "@emotion/core": "^10.0.22", "@react-native-community/eslint-config": "^0.0.5", "@testing-library/react-native": "^5.0.3", "@types/jest": "^24.0.23", "@types/react": "^16.9.16", "@types/react-dom": "^16.9.4", "babel-jest": "^24.9.0", "babel-loader": "^8.0.6", "babel-plugin-inline-import": "^3.0.0", "babel-plugin-jsx-control-statements": "^4.0.0", "emotion-theming": "^10.0.19", "eslint": "^6.7.2", "eslint-config-airbnb": "18.0.1", "eslint-plugin-import": "^2.19.1", "eslint-plugin-jsx-a11y": "^6.2.3", "eslint-plugin-jsx-control-statements": "^2.2.1", "eslint-plugin-react": "^7.17.0", "eslint-plugin-react-hooks": "^2.3.0", "husky": "^3.1.0", "jest": "^24.9.0", "jest-html-reporters": "^1.2.0", "metro-react-native-babel-preset": "^0.57.0", "react-dom": "16.12.0", "react-native-debugger-open": "^0.3.23", "react-test-renderer": "16.12.0", "redux-mock-store": "^1.5.4" }, } ``` #### `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 platform :ios, '10.0' require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' use_frameworks! target 'Whatever' do 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' # Custom Pods pod 'SwiftyJSON', '~> 4.0' pod 'Mapbox-iOS-SDK' pod 'react-native-sqlite-storage', :path => '../node_modules/react-native-sqlite-storage' target 'WhateverTests' do inherit! :search_paths # Pods for testing end use_native_modules! end ``` #### `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:** ``` $ react-native info info Fetching system and libraries information... System: OS: macOS 10.15.1 CPU: (12) x64 Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz Memory: 409.64 MB / 16.00 GB Shell: 3.2.57 - /bin/bash Binaries: Node: 8.16.0 - ~/.nvm/versions/node/v8.16.0/bin/node Yarn: 1.17.3 - /usr/local/bin/yarn npm: 6.4.1 - ~/.nvm/versions/node/v8.16.0/bin/npm Watchman: 4.9.0 - /usr/local/bin/watchman SDKs: iOS SDK: Platforms: iOS 13.2, DriverKit 19.0, macOS 10.15, tvOS 13.2, watchOS 6.1 Android SDK: API Levels: 23, 24, 25, 26, 27, 28 Build Tools: 27.0.3, 28.0.2, 28.0.3 System Images: android-27 | Google APIs Intel x86 Atom, android-28 | Google Play Intel x86 Atom IDEs: Android Studio: 3.5 AI-191.8026.42.35.5900203 Xcode: 11.3/11C29 - /usr/bin/xcodebuild npmPackages: react: ^16.12.0 => 16.12.0 react-native: ^0.61.5 => 0.61.5 npmGlobalPackages: ``` - **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:** - 6.2.0 - **`Firebase` module(s) you're using that has the issue:** - @react-native-firebase/crashlytics - **Are you using `TypeScript`?** - N

---
mikehardy commented 4 years ago

You probably need to update pods, I specify them like so: https://github.com/mikehardy/rnfbdemo/blob/master/make-demo-v6.sh#L30

mikehardy commented 4 years ago

(I am still on v5 but with up to date pods I do not get these warnings)

aliustaoglu commented 4 years ago

I have updated all the pods. But if you refer to this file you'll see that repo is using 3.12.0 which should be 3.14.0

https://github.com/invertase/react-native-firebase/blob/3cc22c8936f62166f1b971542748318bbe00fc69/packages/crashlytics/RNFBCrashlytics.podspec#L21

mikehardy commented 4 years ago

For that reason I specify my own versions - they will likely move just a bit faster than the react-native-firebase release tempo, and either way I prefer the individual control.

You can always propose a PR to bump that one up though, seems valid

aliustaoglu commented 4 years ago

Hey thanks. I've created PR https://github.com/invertase/react-native-firebase/pull/3013 and tested in my local. With crashlytics: 3.14.0 and its dependency fabric:1.10.2, grep no longer returns UIWebView result which I'm sure will stop the Apple email.

stale[bot] commented 4 years ago

Hello 👋, to help manage issues we automatically close stale issues. This issue has been automatically marked as stale because it has not had activity for quite some time. Has this issue been fixed, or does it still require the community's attention?

This issue will be closed in 15 days if no further activity occurs. Thank you for your contributions.