Skip to content
This repository has been archived by the owner on May 30, 2023. It is now read-only.
This repository has been archived by the owner on May 30, 2023. It is now read-only.

Depreciated UIWebView APIs error from Apple #649

Open
ngocnguyenvan26 opened this issue Oct 4, 2019 · 52 comments
Open

Depreciated UIWebView APIs error from Apple #649

ngocnguyenvan26 opened this issue Oct 4, 2019 · 52 comments

Comments

@ngocnguyenvan26
Copy link

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
Copy link

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
Copy link

@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
Copy link

@EddyVerbruggen Seems that ios pod dependencies needs to be updated. Similar issue is in firebase/FirebaseUI-iOS#771

@EddyVerbruggen
Copy link
Owner

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

<pods use-frameworks="true">
<pod name="GoogleSignIn" spec="~> 4.4.0"/>
<pod name="GoogleUtilities" spec="~> 6.3.0"/>
</pods>

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

@nino-magazinovic
Copy link

@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
Copy link
Owner

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
Copy link

@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
Copy link
Owner

EddyVerbruggen commented Dec 29, 2019

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
Copy link
Contributor

leogoesger commented Jan 14, 2020

#671, thanks, @megaza

@doginthehat
Copy link

Thanks for doing this @leogoesger .

Is this likely to be merged soon?

Pretty please 🙏🏻

@leogoesger
Copy link
Contributor

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

@doginthehat
Copy link

@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
Copy link

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

@sebastian-zarzycki-apzumi

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
Copy link

vicatcu commented Mar 11, 2020

@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
Copy link

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
Copy link

tomavic commented Nov 13, 2020

@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
Copy link

@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
Copy link

tomavic commented Nov 14, 2020

@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

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
Copy link

tomavic commented Nov 14, 2020

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

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
Copy link

tomavic commented Nov 14, 2020

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
Copy link

tomavic commented Nov 14, 2020

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
Copy link

@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
Copy link

tomavic commented Nov 15, 2020

@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
Copy link

tomavic commented Nov 19, 2020

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

@sebastian-zarzycki-apzumi

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
Copy link

tomavic commented Nov 19, 2020

@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
Copy link

lifox89 commented Dec 20, 2020

@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

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
Copy link

tomavic commented Jan 8, 2021

@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

I did it with Ionic 3.

@tomavic
Copy link

tomavic commented Jan 16, 2021

@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
Copy link

taisatk commented Jan 22, 2021

@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:

  • cordova-ios@5.1.1
  • cordova-plugin-cocoapod-support@1.6.2
  • cordova-plugin-googleplus@8.5.1
  • cordova-plugin-wkwebview-engine@1.2.1

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
Copy link

tomavic commented Jan 26, 2021

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

@fabripeco
Copy link

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

  • Cordova CLI 9
  • cordova-ios@5.1.1
  • cordova-plugin-ionic-webview@5.0.0 and the flag in config.xml (<preference name="WKWebViewOnly" value="true" />)
  • cordova-plugin-googleplus@8.5.1

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
Copy link

tomavic commented Feb 3, 2021

image

image

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

@fabripeco
Copy link

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
Copy link

taisatk commented Feb 3, 2021

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
Copy link

tomavic commented Feb 7, 2021

@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
Copy link

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
Copy link

taisatk commented Feb 8, 2021

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
Copy link

tomavic commented Feb 8, 2021

@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
Copy link

tomavic commented Feb 8, 2021

@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
Copy link

taisatk commented Feb 9, 2021

@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
Copy link

tomavic commented Feb 9, 2021

@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
Copy link

DuaneQ commented Apr 17, 2021

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
Copy link

tomavic commented Apr 19, 2021

@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
Copy link

DuaneQ commented Apr 19, 2021

@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?

@khanghyxda
Copy link

It's been 2 years and this issue is still open?

@tomavic
Copy link

tomavic commented Dec 8, 2021

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

and now it's accepted by apple and google

@DuaneQ @khanghyxda

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests