Search Unity

Question Apple reject app because of "hidden functionality" webview

Discussion in 'iOS and tvOS' started by Enrico-Monese, Feb 28, 2021.

  1. Enrico-Monese

    Enrico-Monese

    Joined:
    Dec 18, 2015
    Posts:
    77
    Apple has been rejecting my app with this reason:

    Searching the Xcode project for web views doesn't return anything. Both by searching in Xcode and by searching with
    grep
    and
    ripgrep


    At first I thought it was because of the IAP package, I removed it along with the Analytics package but it still got rejected. Is there any way to check if they somehow are still in there?
     
  2. Petras-Unity

    Petras-Unity

    Unity Technologies

    Joined:
    Oct 7, 2020
    Posts:
    25
    Apple is very sensitive about dynamic functionality such as webviews. Do any views appear on top of your app while using your it? These can include login screens, ads, etc. Could you provide a list of packages you are using?
     
  3. Enrico-Monese

    Enrico-Monese

    Joined:
    Dec 18, 2015
    Posts:
    77
    It's a very simple dice rolling app for role-playing games. It has no logins and doesn't even need internet.
    It used to have IAP and ads but I removed them because I want to make the app just paid. To try and get it approved I have now also removed the Analytics too. All of these were the Unity services one, no external plugins.

    Is there any other way to check if they are somehow still included somewhere?

    I have just these packages:
    Schermata 2021-03-01 alle 15.28.55.png

    Ads, IAP and analytics services are turned off.
    Schermata 2021-03-01 alle 15.33.00.png
     
  4. Enrico-Monese

    Enrico-Monese

    Joined:
    Dec 18, 2015
    Posts:
    77
    I discovered that
    manifest.json
    still has the Analytics package in it. Does that have webviews in it?
    Also if Analytics service is disabled it shouldn't be included in the build anyway right?

    It's also weird because it showed up in the package manager before, but it is gone now that the service is disabled. However in the file it's still there?

    Here is the content of the package manifest
    Code (csharp):
    1. {
    2.   "dependencies": {
    3.     "com.unity.2d.sprite": "1.0.0",
    4.     "com.unity.device-simulator": "2.2.4-preview",
    5.     "com.unity.ide.vscode": "1.2.3",
    6.     "com.unity.textmeshpro": "3.0.4",
    7.     "com.unity.ugui": "1.0.0",
    8.     "com.unity.modules.androidjni": "1.0.0",
    9.     "com.unity.modules.imageconversion": "1.0.0",
    10.     "com.unity.modules.imgui": "1.0.0",
    11.     "com.unity.modules.jsonserialize": "1.0.0",
    12.     "com.unity.modules.particlesystem": "1.0.0",
    13.     "com.unity.modules.screencapture": "1.0.0",
    14.     "com.unity.modules.ui": "1.0.0",
    15.     "com.unity.modules.uielements": "1.0.0",
    16.     "com.unity.modules.unityanalytics": "1.0.0",
    17.     "com.unity.modules.unitywebrequest": "1.0.0"
    18.   }
    19. }
     
  5. Enrico-Monese

    Enrico-Monese

    Joined:
    Dec 18, 2015
    Posts:
    77
    Last edited: Mar 2, 2021
  6. Alexey

    Alexey

    Unity Technologies

    Joined:
    May 10, 2010
    Posts:
    1,624
    these seem to come from linking to apple frameworks (dsym will collect all the symbols)
    i just rechecked: nor 2019, nor 2020 have "UIWebView" anywhere in unity runtime code (i cant comment on packages/plugins)
    which unity version are you using? Did you check plugins? if all else fails maybe bug report with your project attached so we can check on our end (if you post JUST case number, and not the whole link - nobody but unity employees would be able to see it)
     
  7. Enrico-Monese

    Enrico-Monese

    Joined:
    Dec 18, 2015
    Posts:
    77
    I can confirm that the Editor installation and the iOS support also do not contain references to UIWebView. The only place where they show up is that dsym file.
    I am using 2020.2.6f1 with no plugins. And the packages I use (manifest.json below) probably don't contain it either.

    As I understand it, they are in that dsym file because the UnityFramework includes UIKit and that links to UIWebView in it. But that doesn't necessarily mean that the app actually has it in it's runtime code thought, right?
    I'll do the bug report if everything else fails.

    Code (csharp):
    1. {
    2.   "dependencies": {
    3.     "com.unity.2d.sprite": "1.0.0",
    4.     "com.unity.ide.vscode": "1.2.3",
    5.     "com.unity.textmeshpro": "3.0.4",
    6.     "com.unity.ugui": "1.0.0",
    7.     "com.unity.modules.androidjni": "1.0.0",
    8.     "com.unity.modules.imageconversion": "1.0.0",
    9.     "com.unity.modules.imgui": "1.0.0",
    10.     "com.unity.modules.jsonserialize": "1.0.0",
    11.     "com.unity.modules.screencapture": "1.0.0",
    12.     "com.unity.modules.ui": "1.0.0",
    13.     "com.unity.modules.uielements": "1.0.0"
    14.   }
    15. }
     
  8. OlegGrizzly

    OlegGrizzly

    Joined:
    Nov 25, 2019
    Posts:
    2
    Hello, we have the same situation. Have you solved this problem?