Search Unity

Appstore rejects kids app due ASIdentifierManager

Discussion in 'Unity Ads & User Acquisition' started by Sparkline, Jan 14, 2021.

  1. Sparkline

    Sparkline

    Joined:
    Feb 8, 2013
    Posts:
    121
    Hi. Im using unity 2019.4.17LTS with uniyt IAP. No ads. I knew about this issue with apple and kids aps and I disabled Analytics via script before scene loads. I did not edit DeviceSettings.mm coz I thought that versions 2019.4+ have all fixes.
    Got reject from apple today:

    ==============
    Guideline 1.3 - Safety - Kids Category


    We noticed that your Kids Category app includes analytics, advertising and collects, transmits, or has the ability to share personal information or device information with third parties.

    Your app includes the following feature(s), contrary to guideline 1.3 of the App Store Review Guidelines:

    Third-party analytics or third-party advertising with the ability to collect, transmit or share identifiable information, including, for example, IDFA. Specifically, we found that your app references the ASIdentifierManager API, which provides access to a user's IDFA, in the following location(s) in your binary:

    • Frameworks/UnityFramework.framework/UnityFramework

    To resolve this issue, it would be appropriate to remove all instances of “ASIdentifierManager” from your app, even if they are not utilized in your app's functionality.

    Next Steps

    To resolve this issue, please remove this functionality or revise your app so that no personally identifiable information or device information is sent to third parties.

    ==============

    Any suggestions?
     
  2. Alexey

    Alexey

    Unity Technologies

    Joined:
    May 10, 2010
    Posts:
    1,624
    our usage of this api is guarded with a define that is set depending on your usage of c# api
    check if `UNITY_USES_IAD` is in xcode defines list
    it is set if you use one of
    UnityEngine.iOS.Device.advertisingIdentifier, UnityEngine.iOS.Device.advertisingTrackingEnabled, UnityEngine.Application.RequestAdvertisingIdentifierAsync
     
  3. Sparkline

    Sparkline

    Joined:
    Feb 8, 2013
    Posts:
    121
    How can I remove it? I already edited DeviceSettings.mm and removed all UNITY_USES_IAD blokcs.
    Got rejection again...
     
  4. PavelLU

    PavelLU

    Unity Technologies

    Joined:
    Feb 23, 2017
    Posts:
    107
  5. Sparkline

    Sparkline

    Joined:
    Feb 8, 2013
    Posts:
    121
  6. Casio

    Casio

    Joined:
    Jul 16, 2012
    Posts:
    29
    So does this mean basically once Advertisements are enabled the ASIdentifierManager will be present and no way to prevent ASIdentifierManager while using Unity Advertisements?
     
    SaveDarkAndDarker likes this.
  7. jamesm_unity

    jamesm_unity

    Joined:
    May 27, 2021
    Posts:
    2
    To follow up on this.. does this mean that you can't have IAP enabled without having ASIdentifierManager?

    I am running into the same rejection issue for a kid's app. No ads, but there are in-app purchases.

    Don't you need analytics enabled for IAP? So, how do you disable ASIdentifierManager and keep IAP enabled?
     
  8. mnievas

    mnievas

    Joined:
    Apr 22, 2015
    Posts:
    8
    I have the same problem. and nothing looks to work.. :(
    ASIdentifierManager
     
  9. mnievas

    mnievas

    Joined:
    Apr 22, 2015
    Posts:
    8
    FINALLY GOT APPROVED..!!!

    Ok. I made a few changes.. I dont know which one worked.. but IT WORKED. I think that was the point 1 and 3

    1 * I modified the ProjectSettings/UnityConnectSettings.asset . file in order to DISABLE Analytics with In-app Purchases enabled,
    ProjectSettings/UnityConnectSettings.asset .
    CrashReportingSettings:
    m_Enabled: 0
    UnityPurchasingSettings:
    m_Enabled: 1
    UnityAnalyticsSettings:
    m_Enabled: 0
    m_InitializeOnStartup: 0
    UnityAdsSettings:
    m_Enabled: 0
    PerformanceReportingSettings:
    m_Enabled: 0

    2 * Removed from Library/PackageCache/com.unity.analytics

    3 * Uninstall on Unity the Analytics Package. (WINDOW - > Package Manager)

    4 * Create an object on my splash screen with a ScriptFile UnityAnalyticsDisabler.cs attached,

    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3. using UnityEngine.Analytics;
    4.  
    5. public class UnityAnalyticsDisabler : MonoBehaviour
    6. {
    7.  
    8.     // Disables analytics before any code runs that sends analytic events
    9.     [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
    10.     public static void OnRuntimeMethodBeforeSceneLoad()
    11.     {
    12.         Analytics.enabled = false;
    13.         Analytics.deviceStatsEnabled = false;
    14.         Analytics.initializeOnStartup = false;
    15.         Analytics.limitUserTracking = true;
    16.         PerformanceReporting.enabled = false;
    17.     }
    18.  
    19.     // Use this for initialization
    20.     void Start()
    21.     {
    22.  
    23.     }
    24.  
    25.     // Update is called once per frame
    26.     void Update()
    27.     {
    28.  
    29.     }
    30. }
    31.  
    5 * On Xcode I modified the DeviceSettings.mm
    Removed the #include <Adsupport/AsIdentifierManager.h> line
    QueryASIdentifierManager() : found and deleted
    static NSString* _ADID = nil;
    and all the #if UNITY_USES_IAD References.,
    Follow this instructions
    https://forum.unity.com/threads/appstore-keeps-rejecting-kids-app.811962/page-2
     
    Last edited: Jul 26, 2021