EddyVerbruggen / cordova-plugin-googleplus

:heavy_plus_sign: Cordova plugin to login with Google Sign-In on iOS and Android
567 stars 630 forks source link

Depreciated UIWebView APIs error from Apple #649

Open ngocnguyenvan26 opened 4 years ago

ngocnguyenvan26 commented 4 years ago

It looks like the plugin is causing a warning from Apple about the UIWebView API usage:

ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of apps that use UIWebView APIs .

issue is just for cordova-ios, I used version https://github.com/apache/cordova-ios/pull/663 to remove UIWebView. When pushing an app without the googleplus plugin, there is no warning. Warning when adding plugin. So this plugin will also need an update to remove UIWebView code.

Will this be removed from future versions of the plugin?

Any quick way to remove it when building the binary?

bhatiaravi commented 4 years ago

I could not see any code involving UIWebView with this plugin (refer the source code at src/ios). Should be some other plugin that is causing this issue, like inappbrowser

doginthehat commented 4 years ago

@bhatiaravi I can confirm I'm seeing the same issue as @ngocnguyenvan26 If I remove cordova-plugin-googleplus from the build, it passes the test. If I put it back in it fails ITMS-90809.

nino-magazinovic commented 4 years ago

@EddyVerbruggen Seems that ios pod dependencies needs to be updated. Similar issue is in https://github.com/firebase/FirebaseUI-iOS/issues/771

EddyVerbruggen commented 4 years ago

@megaza That probably means this bit needs to be updated and tested:

https://github.com/EddyVerbruggen/cordova-plugin-googleplus/blob/f02d3f7b3bed753b62bf5c73479e8c6712ed799b/plugin.xml#L109-L112

Does anyone perhaps feel like taking a stab at it? :)

nino-magazinovic commented 4 years ago

@EddyVerbruggen Google introduced API changes in GoogleSignIn, requires code changes (someone of your side should do that).

In addition there is a popup message on login "App Wants to Use google.com to Sign In - This allows the app and website to share information about you."

Is there any additional validation or configuration needed to remove the popup message?

EddyVerbruggen commented 4 years ago

This project is open source, so anyone can change the could. Doesn't have to be anyone from "my side" (aka me).

I don't think you can get rid of that popup btw, but you might want to Google it, because it's not specific to this plugin: any native app that wants to open a browser will prompt the user AFAIK.

nino-magazinovic commented 4 years ago

@EddyVerbruggen Yes, but I think that it is not something that community should wait for, as Apple is rejecting builds and hot fix is quickly needed.

Attached you can find the patch file (Apple approved the release): Update-GoogleSignIn-to-v5.txt

Everything seems to work fine, but please double check and apply the patch (without my PR).

EddyVerbruggen commented 4 years ago

I'd be happy to help (and appreciate the patch!), but as I'm currently in the middle of moving to a new house I have 0 time.

leogoesger commented 4 years ago

https://github.com/EddyVerbruggen/cordova-plugin-googleplus/pull/671, thanks, @megaza

doginthehat commented 4 years ago

Thanks for doing this @leogoesger .

Is this likely to be merged soon?

Pretty please šŸ™šŸ»

leogoesger commented 4 years ago

@doginthehat no problem, I have been using my fork. It works pretty well.

doginthehat commented 4 years ago

@leogoesger I've tried your fork and there's a compilation error in the google plus update branch [13:22:38]: ā–ø Compiling GooglePlus.m [13:22:38]: ā–ø āŒ /Users/ionic/builds/project-0/platforms/ios/InstantScripts/Plugins/cordova-plugin-googleplus/GooglePlus.m:89:58: expected ';' after expression [13:22:38]: ā–ø signIn.presentingViewController = self.viewController

doginthehat commented 4 years ago

@leogoesger I've added a fix suggestion in your PR code

sebastian-zarzycki-apzumi commented 4 years ago

I'm using 8.4.0 and Apple still complains about UIWebView.

Pods in this version:

        <pod name="GoogleSignIn" spec="~> 5.0.2"/>
        <pod name="GoogleUtilities" spec="~> 6.5.1"/>
vicatcu commented 4 years ago

@EddyVerbruggen are you still moving or can we get this patch put in place? We are fast approaching the moment of crisis in April when Apple starts rejecting apps because of this. Actually it appears as though the patch above has been applied in 8.4.0 of this plugin... I was running 8.2.0

I updated the cordova-plugin-googleplus from 8.2.0 to 8.4.0, removed plugins and ios platform, and reinstalled ios platform ā€¦ now Iā€™m getting the following three build failures:

  1. Property 'presentingViewController' not found on object of type GIDSignin *'
  2. No visible @interface for 'GIDSignIn' declares the selector 'handleURL:' GooglePlus.m
  3. No visible @interface for 'GIDSignIn' declares the selector 'restorePreviousSignin' GooglePlus.m

Clearly the problem is, even after I pod repo update && rm -rf platforms/ios && rm -rf plugins && ionic cordova platform add ios && ionic cordova platform prepare ios ... if I then cd platforms/ios && pod dependencies I get GoogleSignIn (4.4.0) listed... which should be 5.0.2 according to what I see in node_modules/cordova-plugin-googleplus/plugin.xml ... so why does pod dependencies not realize that?

Found it, config.xml also needed a line updated <pod name="GoogleSignIn" version="5.0.2"/>...

iamtarun1993 commented 4 years ago

iOS build is failed, when I'm using 8.4.0. issue is The following build commands failed: CompileC /Users/mymac/Library/Developer/Xcode/DerivedData/****/x86_64/GooglePlus.o /User/mymac/***/cordova-plugin-googleplus/GooglePlus.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler

tomavic commented 3 years ago

@EddyVerbruggen HELP

I still have this issue Nov 2020, UIWebView Deprecations. Using latest version 8.5.1

I am not able to upload my app to Store

nino-magazinovic commented 3 years ago

@tomavic It is probably related to some other plugin where it is using UIWebView API. Search for "UIWebView" or "UIDelegate" with Xcode thru the project and upgrade the matching plugin to a newer version where it is not using deprecated API.

tomavic commented 3 years ago

@megaza Hey

I run grep -r "UIWebView" . and it's showing googleplus and facebook4, I removed facebook4 plugin for now. And remaining is this plugin.

I am using cordova 9, cordova-ios 5.1.1, I tried to build with cordova-ios@6 as well

sebastian-zarzycki-apzumi commented 3 years ago

I am using both this and facebook4 plugin and no complaints from Apple. cordova-ios 6.1.1. Relevant part from config.xml:

    <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
    <preference name="WKWebViewOnly" value="true" />
    <feature name="CDVWKWebViewEngine">
        <param name="ios-package" value="CDVWKWebViewEngine" />
    </feature>
tomavic commented 3 years ago

This really driving me crazy for over a week.

Here is what I found when I search for UIWebView in the whole project. I don't believe I should edit CordovaLib code!!

image

here is my environment

onic:

   Ionic CLI          : 6.11.11 (/usr/local/lib/node_modules/@ionic/cli)
   Ionic Framework    : ionic-angular 3.9.5
   @ionic/app-scripts : 3.2.2

Cordova:

   Cordova CLI       : 9.0.0 (cordova-lib@9.0.1)
   Cordova Platforms : ios 5.1.1
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 5.0.0, (and 20 other plugins)

Utility:

   cordova-res (update available: 0.15.2) : 0.15.1
   native-run                             : 1.2.2

System:

   Android SDK Tools : 26.1.1 (/Users/tooma/Library/Android/sdk)
   ios-deploy        : 1.11.3
   ios-sim           : 8.0.2
   NodeJS            : v10.22.1 (/usr/local/Cellar/node@10/10.22.1/bin/node)
   npm               : 6.14.6
   OS                : macOS Catalina
   Xcode             : Xcode 12.0.1 Build version 12A7300
sebastian-zarzycki-apzumi commented 3 years ago

Search for a string isn't a good method (and never was), because of conditional compilation (as you can see on your own screen)

tomavic commented 3 years ago

Guess what

I am using latest version of this plugin including cordova 9 and cordova-ios 6.

But my App is keep getting rejected for the same reason.

tomavic commented 3 years ago

The real problem is, I have to submit the APP to the store and increasing the build number so that I can wait to see if Apple is going to send a rejection email or not! It's disappointing and I don't know what to try else!

faugusztin commented 3 years ago

@tomavic as mentioned above, do you have this in your config.xml ? <preference name="WKWebViewOnly" value="true" />

The code in your own screenshot has a conditional code which depends on this preference.

tomavic commented 3 years ago

@faugusztin Hey buddy,

Yes I have added the following inside config.xml the ios part.

<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
    <preference name="WKWebViewOnly" value="true" />
    <feature name="CDVWKWebViewEngine">
        <param name="ios-package" value="CDVWKWebViewEngine" />
    </feature>
tomavic commented 3 years ago

After many searches, and checking here I found the following plugins which have the UIWebView references. I created an issue here

sebastian-zarzycki-apzumi commented 3 years ago

It's working fine. That config is enough. Update to newest version of cordova-ios and just wipe and recreate your platforms and plugins folders.

tomavic commented 3 years ago

@sebastian-zarzycki-es I've updated my environment to latest and it failed because of : this issue

Ionic:

   Ionic CLI          : 6.11.11 (/usr/local/lib/node_modules/@ionic/cli)
   Ionic Framework    : ionic-angular 3.9.5
   @ionic/app-scripts : 3.2.2

Cordova:

   Cordova CLI       : 10.0.0
   Cordova Platforms : ios 6.1.1
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 5.0.0, (and 19 other plugins)

Utility:

   cordova-res (update available: 0.15.2) : 0.15.1
   native-run                             : 1.2.2

System:

   Android SDK Tools : 26.1.1 (/Users/pekandesigns/Library/Android/sdk)
   ios-deploy        : 1.11.3
   ios-sim           : 8.0.2
   NodeJS            : v10.22.1 (/usr/local/Cellar/node@10/10.22.1/bin/node)
   npm               : 6.14.6
   OS                : macOS Catalina
   Xcode             : Xcode 12.0.1 Build version 12A7300
lifox89 commented 3 years ago

@sebastian-zarzycki-es I've updated my environment to latest and it failed because of : this issue

Ionic:

   Ionic CLI          : 6.11.11 (/usr/local/lib/node_modules/@ionic/cli)
   Ionic Framework    : ionic-angular 3.9.5
   @ionic/app-scripts : 3.2.2

Cordova:

   Cordova CLI       : 10.0.0
   Cordova Platforms : ios 6.1.1
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 5.0.0, (and 19 other plugins)

Utility:

   cordova-res (update available: 0.15.2) : 0.15.1
   native-run                             : 1.2.2

System:

   Android SDK Tools : 26.1.1 (/Users/pekandesigns/Library/Android/sdk)
   ios-deploy        : 1.11.3
   ios-sim           : 8.0.2
   NodeJS            : v10.22.1 (/usr/local/Cellar/node@10/10.22.1/bin/node)
   npm               : 6.14.6
   OS                : macOS Catalina
   Xcode             : Xcode 12.0.1 Build version 12A7300

I think this has to do in some of your dependencies using uiwebview still. Had a rough time finding which lib was it. In my case it was the old firebase push notif lib, i had to use the latest one which is firebaseX

sebastian-zarzycki-apzumi commented 3 years ago

Um, ok? Not sure how this is relevant :) Obviously, you need to be rather up to date with all your cordova plugins, to avoid all webview calls across the whole project. All I'm saying is that I've successfully pushed out an update a month ago, with this plugin. Plus firebaseX. Plus facebook. Plus Apple sign in plugins. Plus a bunch of other ones, having uiwebview calls in the past. No complaints from Apple - so it's definitely possible with current state of things.

tomavic commented 3 years ago

@sebastian-zarzycki-es Yes, "the current state of things" is that I am using Ionic 3 and I have to update to latest to take advantage of all new features and avoid plugins mismatch as much as possible. I've might try Capacitor with Ionic 3, to avoid rewrite of most parts of the code.

Thanks for your support.

sebastian-zarzycki-apzumi commented 3 years ago

I did it with Ionic 3.

tomavic commented 3 years ago

@sebastian-zarzycki-es Hello

Can you please contact me so that I can get use of your experiment at least with iOS part and how you bypassed it?

taisatk commented 3 years ago

@sebastian-zarzycki-es Yes, "the current state of things" is that I am using Ionic 3 and I have to update to latest to take advantage of all new features and avoid plugins mismatch as much as possible. I've might try Capacitor with Ionic 3, to avoid rewrite of most parts of the code.

Thanks for your support.

Hi @tomavic, I'm using Ionic v3 along with:

My config.xml for iOS is like this:

        <preference name="pods_use_frameworks" value="true" />
        <pod name="GoogleSignIn" version="5.0.2" />
        <pod name="GoogleUtilities" version="6.4.0" />
        <preference name="WKWebViewOnly" value="true" />
        <feature name="CDVWKWebViewEngine">
            <param name="ios-package" value="CDVWKWebViewEngine" />
        </feature>
        <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />

I hope it helps you.

tomavic commented 3 years ago

I will try it for the last time . Thanks for help @taisatk

fabripeco commented 3 years ago

I had the same issue with Apple UIWebView. I (finally) solved in a way similar to @taisatk .

Check the versions of the dependencies in your Podfile

pod 'GoogleSignIn', '~> 5.0.2'
pod 'GoogleUtilities', '~> 6.7'

then run cd platforms/ios && pod install

tomavic commented 3 years ago

image

image

I've tried both and got rejected from APp store AGAIN :(

fabripeco commented 3 years ago

I have the preferences for the WKWebView under the <platform name="ios"> tag in config.xml (probably it's not the problem). Check in the 'build rules' tab of the xcode project by searching wk -> you should find WK_WEB_VIEW_ONLY=1. By launching the app, there should be the log "Using WkWebView" or something similar.

I had to remove the old cordova-plugin-googleplus and then re-add to the project (v8.5.1 -> then $ pod install).

Maybe another plugin (or pod dependencies of your plugins)? Check the sources of the cordova plugins, then in their dependencies. I found the UIWebView by searching in the command line $ grep "UIWebView" platforms/ios/Pods/* The binary of the GoogleSignIn framework matched the word in my case (before the upgrade).

taisatk commented 3 years ago

In my case, I started removing suspect plugins (based on the search results for UIWebView like @fabripeco suggested) until I got the approval. I then realized that removing both cordova-plugin-facebook4 and cordova-plugin-googleplus, installing cordova-plugin-wkwebview-engine and properly configuring its preferences fixed the issue, and I was able to get the approval. I even tested adding those plugins back again singly to confirm they both had problems. So I started searching for solutions for them, and ended up in version 8.5.1 for Google Plus along with those Pod dependencies I mentioned before. It's important to look at the logs and see WKWebView entries to make sure the plugin is working fine. It doesn't support cordova-ios 6 or greater. My app presents these logs when starting:

2021-02-03 08:21:15.379599-0300 xxxxx[364:6195] Apache Cordova native platform version 5.1.1 is starting.
2021-02-03 08:21:15.550301-0300 xxxxx[364:6195] CDVWKWebViewEngine will reload WKWebView if required on resume
2021-02-03 08:21:15.550350-0300 xxxxx[364:6195] Using WKWebView
(...)
2021-02-03 08:21:15.558401-0300 xxxxx[364:6195] GooglePlus pluginInitizalize

I'm using cordova 8.1.2.

tomavic commented 3 years ago

@taisatk @fabripeco Hi guys

I have applied what you have suggested, Here is the current status

Now I am sure that Ionic runs app in WKWebView image

Also I got rid of facebook4 plugin and updated google-plus plugin to 8.5.1

$ ionic cordova plugin ls

call-number 0.0.2 "Cordova Call Number Plugin"
cordova-clipboard 1.3.0 "Clipboard"
cordova-plugin-android-permissions 1.1.0 "Permissions"
cordova-plugin-androidx 1.0.2 "cordova-plugin-androidx"
cordova-plugin-androidx-adapter 1.1.3 "cordova-plugin-androidx-adapter"
cordova-plugin-app-version 0.1.9 "AppVersion"
cordova-plugin-cocoapod-supportx 1.7.3 "Cordova CocoaPods Dependency Support"
cordova-plugin-device 2.0.3 "Device"
cordova-plugin-facebook4 4.2.1 "Facebook Connect"
cordova-plugin-firebasex 3.0.8 "Google Firebase Plugin"
cordova-plugin-geolocation 4.0.2 "Geolocation"
cordova-plugin-globalization 1.11.0 "Globalization"
cordova-plugin-googleplus 5.3.2 "Google SignIn"
cordova-plugin-ionic-keyboard 2.2.0 "cordova-plugin-ionic-keyboard"
cordova-plugin-ionic-webview 4.2.1 "cordova-plugin-ionic-webview"
cordova-plugin-market 1.2.0 "Market"
cordova-plugin-network-information 2.0.2 "Network Information"
cordova-plugin-request-location-accuracy 2.3.0 "Request Location Accuracy"
cordova-plugin-splashscreen 5.0.4 "Splashscreen"
cordova-plugin-statusbar 2.4.3 "StatusBar"
cordova-plugin-stripe 1.5.3 "cordova-plugin-stripe"
cordova-plugin-whitelist 1.3.4 "Whitelist"
cordova-plugin-x-socialsharing 5.6.8 "SocialSharing"
cordova-sqlite-storage 3.4.1 "Cordova sqlite storage plugin - cordova-sqlite-storage plugin version"
cordova.plugins.diagnostic 4.0.12 "Diagnostic"
es6-promise-plugin 4.2.2 "Promise"
onesignal-cordova-plugin 2.11.1 "OneSignal Push Notifications"

and here is my ionc platform from config.xml

    <platform name="ios">
        <pod name="GoogleSignIn" version="5.0.2" />
        <pod name="GoogleUtilities" version="6.4.0" />
        <preference name="WKWebViewOnly" value="true" />
        <feature name="CDVWKWebViewEngine">
            <param name="ios-package" value="CDVWKWebViewEngine" />
        </feature>
        <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
        <allow-intent href="itms:*" />
        <allow-intent href="itms-apps:*" />
        <edit-config file="*-Info.plist" mode="merge" target="NSLocationWhenInUseUsageDescription">
            <string>need location access to find things nearby</string>
        </edit-config>
        <edit-config file="*-Info.plist" mode="merge" target="NSLocationAlwaysAndWhenInUseUsageDescription">
            <string>need location access to find things nearby</string>
        </edit-config>
        <edit-config file="*-Info.plist" mode="merge" target="NSLocationAlwaysUsageDescription">
            <string>need location access to find things nearby</string>
        </edit-config>
        <edit-config file="*-Info.plist" mode="merge" target="NSBluetoothPeripheralUsageDescription">
            <string>need bluetooth access to get connected</string>
        </edit-config>
        <edit-config file="*-Info.plist" mode="merge" target="NSCameraUsageDescription">
            <string>need camera acess to take photoes</string>
        </edit-config>
        <edit-config file="*-Info.plist" mode="merge" target="NSPhotoLibraryUsageDescription">
            <string>need photo access library to take photoes</string>
        </edit-config>
        <edit-config file="*-Info.plist" mode="merge" target="NSPhotoLibraryAddUsageDescription">
            <string>need photo access library to take photoes</string>
        </edit-config>
        <edit-config file="*-Info.plist" mode="merge" target="NSBluetoothAlwaysUsageDescription">
            <string>need location access to find things nearby</string>
        </edit-config>
        <icon height="57" src="resources/ios/icon/icon.png" width="57" />
        <icon height="114" src="resources/ios/icon/icon@2x.png" width="114" />
        <icon height="29" src="resources/ios/icon/icon-small.png" width="29" />
        <icon height="58" src="resources/ios/icon/icon-small@2x.png" width="58" />
        <icon height="87" src="resources/ios/icon/icon-small@3x.png" width="87" />
        <icon height="20" src="resources/ios/icon/icon-20.png" width="20" />
        <icon height="40" src="resources/ios/icon/icon-20@2x.png" width="40" />
        <icon height="60" src="resources/ios/icon/icon-20@3x.png" width="60" />
        <icon height="48" src="resources/ios/icon/icon-24@2x.png" width="48" />
        <icon height="55" src="resources/ios/icon/icon-27.5@2x.png" width="55" />
        <icon height="29" src="resources/ios/icon/icon-29.png" width="29" />
        <icon height="58" src="resources/ios/icon/icon-29@2x.png" width="58" />
        <icon height="87" src="resources/ios/icon/icon-29@3x.png" width="87" />
        <icon height="40" src="resources/ios/icon/icon-40.png" width="40" />
        <icon height="80" src="resources/ios/icon/icon-40@2x.png" width="80" />
        <icon height="120" src="resources/ios/icon/icon-40@3x.png" width="120" />
        <icon height="88" src="resources/ios/icon/icon-44@2x.png" width="88" />
        <icon height="50" src="resources/ios/icon/icon-50.png" width="50" />
        <icon height="100" src="resources/ios/icon/icon-50@2x.png" width="100" />
        <icon height="60" src="resources/ios/icon/icon-60.png" width="60" />
        <icon height="120" src="resources/ios/icon/icon-60@2x.png" width="120" />
        <icon height="180" src="resources/ios/icon/icon-60@3x.png" width="180" />
        <icon height="72" src="resources/ios/icon/icon-72.png" width="72" />
        <icon height="144" src="resources/ios/icon/icon-72@2x.png" width="144" />
        <icon height="76" src="resources/ios/icon/icon-76.png" width="76" />
        <icon height="152" src="resources/ios/icon/icon-76@2x.png" width="152" />
        <icon height="167" src="resources/ios/icon/icon-83.5@2x.png" width="167" />
        <icon height="172" src="resources/ios/icon/icon-86@2x.png" width="172" />
        <icon height="196" src="resources/ios/icon/icon-98@2x.png" width="196" />
        <icon height="1024" src="resources/ios/icon/icon-1024.png" width="1024" />
        <splash height="480" src="resources/ios/splash/Default~iphone.png" width="320" />
        <splash height="960" src="resources/ios/splash/Default@2x~iphone.png" width="640" />
        <splash height="1024" src="resources/ios/splash/Default-Portrait~ipad.png" width="768" />
        <splash height="768" src="resources/ios/splash/Default-Landscape~ipad.png" width="1024" />
        <splash height="1125" src="resources/ios/splash/Default-Landscape-2436h.png" width="2436" />
        <splash height="1242" src="resources/ios/splash/Default-Landscape-736h.png" width="2208" />
        <splash height="2048" src="resources/ios/splash/Default-Portrait@2x~ipad.png" width="1536" />
        <splash height="1536" src="resources/ios/splash/Default-Landscape@2x~ipad.png" width="2048" />
        <splash height="2732" src="resources/ios/splash/Default-Portrait@~ipadpro.png" width="2048" />
        <splash height="2048" src="resources/ios/splash/Default-Landscape@~ipadpro.png" width="2732" />
        <splash height="1136" src="resources/ios/splash/Default-568h@2x~iphone.png" width="640" />
        <splash height="1334" src="resources/ios/splash/Default-667h.png" width="750" />
        <splash height="2208" src="resources/ios/splash/Default-736h.png" width="1242" />
        <splash height="2436" src="resources/ios/splash/Default-2436h.png" width="1125" />
        <splash height="2732" src="resources/ios/splash/Default@2x~universal~anyany.png" width="2732" />
        <icon height="216" src="resources/ios/icon/icon-108@2x.png" width="216" />
        <splash height="2688" src="resources/ios/splash/Default-2688h~iphone.png" width="1242" />
        <splash height="1242" src="resources/ios/splash/Default-Landscape-2688h~iphone.png" width="2688" />
        <splash height="1792" src="resources/ios/splash/Default-1792h~iphone.png" width="828" />
        <splash height="828" src="resources/ios/splash/Default-Landscape-1792h~iphone.png" width="1792" />
    </platform>

and my cordova-ios 5.1.1 and Cordova 9

THE BUILT is SUCCESSFULL !!

image

and Here is the previous builds too image

and yet nothing is uploaded as I got a rejection email image

I desperately don't know what to do

fabripeco commented 3 years ago

Something strange in the plugin versions you've listed.

cordova-plugin-googleplus 5.3.2 "Google SignIn"
cordova-plugin-ionic-webview 4.2.1 "cordova-plugin-ionic-webview"

You have to remove the plugins from the project, then re-add it with the right version. Check the versions in package.json (and config.xml if you have the plugins listed also there), then double-check the versions in the node_modules/ and in the plugins/ folder . Use 5.0.0 for cordova-plugin-ionic-webview.

ionic cordova plugin rm cordova-plugin-googleplus
ionic cordova plugin add cordova-plugin-googleplus@8.5.1
cd platforms/ios && pod install
cd ../../ && ionic build ios
taisatk commented 3 years ago

Hi @tomavic. Have your app been approved after the removal of both Facebook and Google Plus plugins? If you don't try it, you'll never know whether other plugins are problematic or not. Looking at your plugins list, I also suspect on both FirebaseX and X-SocialSharing. I believe you should find newer versions for them based on this comment for Firebase and on this merge for SocialSharing. But, first of all, try removing all these four plugins, building and uploading your app to App Store. If you don't get the rejection message, try adding them back one-by-one to be sure which of them are problematic. That's a boring process, but may shed light on your problem.

tomavic commented 3 years ago

@taisatk Hello

For firebase, I am using firebaseX but with 3.0.8 which is compatible with Ionic 3 as well. If I tried higher versions, I am not able to build the app because of some issues referenced too in the firebasex plugin issues page and there is no way around it unless I start use latest version of Ionic 4 or 5.

For Social Sharing, Facebook I have removed them totally from code. I kept google-plus@8.5.1

Please note that this process is really boring because I am using One Signal :( Which requires me every time to setup the plugin in a native way as their documentations describes and it's a hecking long process. That's why I've been trying without it.

I am afraid if I uploaded the app and got accepted initially, then get rejected because its functionality is not complete yet :D

I started a side project using Capacitor and Ionic latest, and the process seems not fine too. It's my first time and my app need a large effort to convert it. I don't feel that Capacitor is good choice too. I don't know what to do.

tomavic commented 3 years ago

@fabripeco Here is my updated plugin list

call-number 0.0.2 "Cordova Call Number Plugin"
cordova-clipboard 1.3.0 "Clipboard"
cordova-plugin-android-permissions 1.1.0 "Permissions"
cordova-plugin-androidx 1.0.2 "cordova-plugin-androidx"
cordova-plugin-androidx-adapter 1.1.1 "cordova-plugin-androidx-adapter"
cordova-plugin-app-version 0.1.9 "AppVersion"
cordova-plugin-cocoapod-supportx 1.7.3 "Cordova CocoaPods Dependency Support"
cordova-plugin-device 2.0.3 "Device"
cordova-plugin-firebasex 3.0.8 "Google Firebase Plugin"
cordova-plugin-geolocation 4.0.2 "Geolocation"
cordova-plugin-globalization 1.11.0 "Globalization"
cordova-plugin-googleplus 8.5. "Google SignIn"
cordova-plugin-ionic-keyboard 2.2.0 "cordova-plugin-ionic-keyboard"
cordova-plugin-ionic-webview 5.0.0 "cordova-plugin-ionic-webview"
cordova-plugin-market 1.2.0 "Market"
cordova-plugin-network-information 2.0.2 "Network Information"
cordova-plugin-request-location-accuracy 2.3.0 "Request Location Accuracy"
cordova-plugin-splashscreen 5.0.4 "Splashscreen"
cordova-plugin-statusbar 2.4.3 "StatusBar"
cordova-plugin-stripe 1.5.3 "cordova-plugin-stripe"
cordova-plugin-whitelist 1.3.4 "Whitelist"
cordova-sqlite-storage 3.4.1 "Cordova sqlite storage plugin - cordova-sqlite-storage plugin version"
cordova.plugins.diagnostic 4.0.12 "Diagnostic"
onesignal-cordova-plugin 2.11.1 "OneSignal Push Notifications"
taisatk commented 3 years ago

@tomavic I've just added cordova-plugin-firebasex@3.0.8 into my project and got the rejection message from Apple after uploading the package to App Store Connect. So, your problem regards FirebaseX plugin version. I suggest you to try a newer version of it and make the required code changes according to this information about Ionic v3 support, including accessing the plugin directly, as the Ionic Native wrapper doesn't support it. Here is an example app in Ionic v3 using FirebaseX that could be used as a reference. Otherwise you won't solve the UIWebView deprecation issue. I hope you get it working soon šŸ¤ž

tomavic commented 3 years ago

@taisatk Yes exactly that's what I've reached to two months ago. I've tried the example and applied exactly what is mentioned HERE But the plugin didn't start correctly.

I will try again, nothing else to do.

Thanks for the support šŸ¤žšŸ¤ž

DuaneQ commented 3 years ago

I had the exact same issue and I've upgraded all of my plugins but now the ios build is failing with the following:

** BUILD FAILED ** The following build commands failed: CompileC /var/root/Library/Developer/Xcode/DerivedData/app_name-fzuncmihunbgyyfsixovlktiuyaf/Build/Intermediates.noindex/app\ name.build/Debug-iphonesimulator/app\ name.build/Objects-normal/x86_64/GooglePlus.o /Users/anonymous/project/app-name-v5/platforms/ios/app\ name/Plugins/cordova-plugin-googleplus/GooglePlus.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (1 failure) xcodebuild: Command failed with exit code 65

"private": true, "dependencies": { "@angular/common": "~8.2.14", "@angular/core": "~8.2.14", "@angular/fire": "^5.4.2", "@angular/forms": "~8.2.14", "@angular/platform-browser": "~8.2.14", "@angular/platform-browser-dynamic": "~8.2.14", "@angular/router": "~8.2.14", "@ionic-native/core": "^5.0.0", "@ionic-native/diagnostic": "^5.26.0", "@ionic-native/firebase-messaging": "^5.32.1", "@ionic-native/geolocation": "^5.23.0", "@ionic-native/google-plus": "^5.32.1", "@ionic-native/image-picker": "^5.32.0", "@ionic-native/in-app-browser": "^5.32.1", "@ionic-native/in-app-purchase-2": "^5.32.1", "@ionic-native/ionic-webview": "^5.22.0-beta-1", "@ionic-native/splash-screen": "^5.32.0", "@ionic-native/status-bar": "^5.32.0", "@ionic/angular": "^5.0.0", "@ionic/storage": "2.2.0", "cc.fovea.cordova.purchase": "^10.1.1", "cordova-android": "^9.0.0", "cordova-android-support-gradle-release": "^3.0.1", "cordova-ios": "^6.0.0", "cordova-plugin-androidx": "^3.0.0", "cordova-plugin-androidx-adapter": "^1.1.3", "cordova-plugin-device": "^2.0.3", "cordova-plugin-firebase-analytics": "^5.0.0", "cordova-plugin-firebase-messaging": "^5.0.1", "cordova-plugin-geolocation": "^4.1.0", "cordova-plugin-googleplus": "^8.5.2", "cordova-plugin-inappbrowser": "^5.0.0", "cordova-plugin-ionic-keyboard": "^2.2.0", "cordova-plugin-ionic-webview": "^5.0.0", "cordova-plugin-splashscreen": "^6.0.0", "cordova-plugin-statusbar": "^2.4.3", "cordova-plugin-telerik-imagepicker": "^2.3.6", "cordova-plugin-whitelist": "^1.3.4", "cordova-sqlite-storage": "^6.0.0", "cordova-support-android-plugin": "^1.0.2", "cordova-support-google-services": "^1.4.1", "cordova.plugins.diagnostic": "^5.0.2", "core-js": "^2.5.4", "firebase": "^7.9.1", "geofire": "^5.0.1", "geofirex": "^0.1.0", "ionicons": "^4.5.10-0", "moment": "^2.24.0", "rxjs": "~6.5.1", "rxjs-compat": "^6.5.5", "tslib": "^1.9.0", "zone.js": "~0.9.1" }, "devDependencies": { "@angular-devkit/build-angular": "~0.803.20", "@angular/cli": "~8.3.23", "@angular/compiler": "~8.2.14", "@angular/compiler-cli": "~8.2.14", "@angular/language-service": "~8.2.14", "@ionic/angular-toolkit": "^2.1.1", "@types/jasmine": "~3.3.8", "@types/jasminewd2": "~2.0.3", "@types/node": "~8.9.4", "codelyzer": "^5.0.0", "cordova-plugin-device": "^2.0.2", "cordova-plugin-ionic-keyboard": "^2.2.0", "cordova-plugin-splashscreen": "^6.0.0", "cordova-plugin-statusbar": "^2.4.2", "cordova-plugin-whitelist": "^1.3.3", "jasmine-core": "~3.4.0", "jasmine-spec-reporter": "~4.2.1", "karma": "~4.1.0", "karma-chrome-launcher": "~2.2.0", "karma-coverage-istanbul-reporter": "~2.0.1", "karma-jasmine": "~2.0.1", "karma-jasmine-html-reporter": "^1.4.0", "protractor": "~5.4.0", "ts-node": "~7.0.0", "tslint": "~5.15.0", "typescript": "~3.4.3" },

I've uninstalled and re-installed ios several times to no avail. Any help would greatly be appreciated.

tomavic commented 3 years ago

@DuaneQ hi

I ended up refactoring my code, upgrading to ionic 5 and angular 11.

No issues at all, build for ios 5.1.1 and for android 9

Using cordova 9

DuaneQ commented 3 years ago

@DuaneQ hi

I ended up refactoring my code, upgrading to ionic 5 and angular 11.

No issues at all, build for ios 5.1.1 and for android 9

Using cordova 9

@tomavic were you able to get accepted by Apple using 5.1.1?