Search Unity

AppStore keeps rejecting Kids App

Discussion in 'Unity Analytics' started by loopcut, Jan 18, 2020.

  1. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    Understood, your app is free and you are using IAP. Did you edit the DeviceSettings.mm and disable Analytics at runtime? Also, did you check the COPPA setting in Unity?
     
    Last edited: Feb 28, 2020
  2. sama-van

    sama-van

    Joined:
    Jun 2, 2009
    Posts:
    1,734
    COPPA > yes always been sticked.

    Now from the DeviceSettings.mm under 2020.1.0a24 I tried but :

    1. QueryASIdentifierManager() : found and deleted

    2. QueryAdID() : Doesn't exist.

    3. QueryAdTracking () : Doesn't exist.

    4. static NSString* _ADID = nil;
    Kinda found but not as same type either same declaration :
    Screen Shot 2020-03-01 at 11.40.55.png

    5. static bool _AdTrackingEnabled = false;
    Kinda found but not as same type either same declaration :
    Screen Shot 2020-03-01 at 11.42.20.png

    6. UnityAdvertisingIdentifier() : found and edited.

    7 . extern "C" bool UnityAdvertisingTrackingEnabled(){return false;}
    A bit concerned returned type is not the same ? Screen Shot 2020-03-01 at 11.44.36.png
    8. QueryDeviceID () : doesn't exist.

    Finally xCode error after the edition :

    Screen Shot 2020-03-01 at 11.47.34.png

    Below my DeviceSetting.mm file.
    *.mm aren't allowed for upload here, please rename as *.mm;)
     

    Attached Files:

  3. KangiClub

    KangiClub

    Joined:
    May 12, 2019
    Posts:
    3
    having same problem as sama-van, Unity team, please advise!
     
  4. fkilius

    fkilius

    Joined:
    Jan 22, 2019
    Posts:
    16
    Hello again, we made the changes in DeviceSettings.mm, disable unity analytics at start, disable firebase analytics by info.plist. We are using IAP. But we are still rejected in the kids category. Apple says:
    upload_2020-3-1_10-4-33.png
    It is really frustating. We spend months developing an app that can't be published. We have other apps in the same situation.
    @JeffDUnity3D Do you have any other idea to try?
     
    marshmallowgames likes this.
  5. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    Seems like the only difference is Firebase, other users have had success without it. You might use Charles Proxy to see if events are still being sent https://support.unity3d.com/hc/en-us/articles/115002917683-Using-Charles-Proxy-with-Unity
     
  6. hsallander

    hsallander

    Joined:
    Dec 19, 2013
    Posts:
    46
    @JeffDUnity3D , do you have any info to share about when we can expect an official release (in the 2019.2 track) with a patched version of DeviceSettings.mm?

    We managed to get our iOS app approved by manually patching DeviceSettings.mm but we'd like to use Unity Cloud Build to build our release binaries, so we'd like to move back to not having to patch the Xcode projects manually as soon as possible.
     
  7. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    Please follow this post for updates https://forum.unity.com/threads/imp...kids-apps-action-needed-by-developers.838939/
     
  8. BlueCastleStudios

    BlueCastleStudios

    Joined:
    Nov 25, 2018
    Posts:
    5
    I updated my app to include IAP and it got approved.

    The only change I did was to disable all analytics from UnityConnectSettings.asset and what @JeffDUnity3D suggested above.
     
  9. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    Was your app rejected when you had the Analytics still in place?
     
  10. BlueCastleStudios

    BlueCastleStudios

    Joined:
    Nov 25, 2018
    Posts:
    5
    Yes, but at that time I also didn't had the DeviceSettings.mm changes in place so the main reason was IDFA. Apple said they can allow analytics in a limited cases but IDFA must not be accessed.

    I disabled Analytics in the next submission just to be safe.
     
    JeffDUnity3D likes this.
  11. rafaelmotareis

    rafaelmotareis

    Joined:
    Nov 30, 2016
    Posts:
    5
    Hello

    Our app also got rejected yesterday. We tried re-submitting with the DeviceSettings.mm modifications, but it was rejected again. We are not using Analytics, IAP or Advertisements. Performance reporting is also disabled. Children under the age of 13 is enabled.

    Apple says:
    upload_2020-3-13_7-53-10.png

    We believe that they require UnityEngine.Analytics and UnityEngine.Advertisments to be removed from the binary.
    @JeffDUnity3D any updated on releasing a fix?
     

    Attached Files:

  12. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    You would need to remove the mentioned components if present, others are having success in publishing apps. Ensure you don't have any of these assets installed in your Project list, and also check Package Manager. Do you have an AdSupport folder in your XCode project? The fix we are releasing for this is better handling of the DeviceSettings.mm file generation, but you can make those edits manually.
     
  13. rafaelmotareis

    rafaelmotareis

    Joined:
    Nov 30, 2016
    Posts:
    5
    Yes, we have the AdSupport folder in our XCode project. Should we delete it? And what about UnityAds folder? Thanks.
     
    Last edited: Mar 16, 2020
  14. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    So you DO have Ads in your project. You would want to remove them if you are not using them, make a back up first.
     
  15. alexanne109

    alexanne109

    Joined:
    Mar 23, 2020
    Posts:
    1
  16. marshmallowgames

    marshmallowgames

    Joined:
    Aug 1, 2016
    Posts:
    5
    Hi we are also having this problem. It's now more than three weeks (and many subsmissions) that our apps keeps being rejected.

    Their message is:

    Your app includes the following feature(s), contrary to guideline 1.3 of the [URL='https://developer.apple.com/app-store/review/guidelines/']App Store Review Guidelines[/URL]:

    Third-party analytics or third-party advertising with the ability to collect, transmit or share identifiable information, including, for example, IDFA. Specifically, we found your app was made with the Unity SDK. This particular SDK contained the following selectors that pertain to advertisements:

    isAdvertisingTrackingEnabled
    advertisingIdentifier

    It would be appropriate to work with Unity, in removing these selectors located in the UnityEngine.Analytics and/or UnityEngine.Advertisments components within your app before resubmitting.


    But we removed everyting. Unity Analytics and IAP are disable. We never integrated Unity Ads.
    We modified the DeviceSettings.mm and we manually deleted all references in the Xcode project to UnityAds, Unity Analytics. We also removed the link to AdSupport.framework.

    But they keep rejecting.

    Any idea from Unity?
     
  17. SamOYUnity3D

    SamOYUnity3D

    Unity Technologies

    Joined:
    May 12, 2019
    Posts:
    626
    What version of Unity are you using? Have you tried disabling HW statistics?

    In addition, you can use a network traffic analyzer to see if any Analytics / Ads events are sent, such as Charles Proxy:
    https://www.charlesproxy.com/
    https://support.unity3d.com/hc/en-us/articles/115002917683-Using-Charles-Proxy-with-Unity
     
  18. briandexter7

    briandexter7

    Joined:
    Apr 21, 2020
    Posts:
    5
    and if I have a mSpy parental control installed, will it make a difference? to it will block the app anyway?
     
  19. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    We cannot comment on Apple policy, you would need to contact them.
     
    briandexter7 likes this.
  20. wwcolter

    wwcolter

    Joined:
    Nov 4, 2016
    Posts:
    28
    After a month of back and forth with Apple, our game update finally got approved. Unity support was fantastic! We detailed our experience hoping it can help someone.
     
    unity_Ctri and francoiscoiscois like this.
  21. francoiscoiscois

    francoiscoiscois

    Joined:
    Oct 23, 2019
    Posts:
    38
    Hello there,

    I also got my app rejected for the same reason.
    It is a kid app with in app purchase (using Easy mobile pro) and no publicity, or sharing tools. I build it using Unity 2019.4.1f1, updated most package to the latest version.

    After getting rejected, I followed your recommendation
    I did disable Unity Ads and Unity Analytics package
    change the DeviceSettings.mm within my Xcode project

    But got rejected again with the same message

    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.


    I really dont know how to fix this, I am not a programmer by the way, so it all seems very obscure for me.

    Do you have any idea what could be causing the problem, Is it even possible to have a kid app with IAP integrated (I use parental gate)?

    I would really appreciate any help!
     
  22. francoiscoiscois

    francoiscoiscois

    Joined:
    Oct 23, 2019
    Posts:
    38
    Just Wanted to add that our app has been approved after we send a message to the apple review, to explain we do not use any advertising or analytics in our app. So if you have the same problem and have done the step explains here, just send a message to the apple review.
     
  23. 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
     
    Alima-Studios likes this.
  24. gegagome

    gegagome

    Joined:
    Oct 11, 2012
    Posts:
    392
    I followed these steps and got my app rejected.
    Has anyone else had her/his/their app rejected?

    Thanks
     
  25. sonbkap

    sonbkap

    Joined:
    Mar 23, 2016
    Posts:
    3
    Unfortunately I am also getting this error. I only use IAP and Analytics is also enabled by default. The target is children under 13 years old. Unity version 2021.2.61f for Mac M1
     
  26. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    Check Package Manager and ensure you don't have an Advertisement package installed.
     
  27. sonbkap

    sonbkap

    Joined:
    Mar 23, 2016
    Posts:
    3
    Only IAP.
    Screen Shot 2021-12-15 at 05.30.48.png
     
  28. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    Do you have a DeviceSettings.mm in your XCode project?
     
  29. unser

    unser

    Joined:
    Nov 28, 2012
    Posts:
    6
    I published 3 games targeting children, with ads, in the app store. So it is possible with ads and IAP. This time is really being a nightmare to get my app accepted.

    In fact, these guys managed to even track data on kids' games. https://apps.apple.com/app/apple-store/id1536584509
    If you have enough money you can just track kids' games? How can they do that?

    I see a lot of people suffering from this issue for so long. Honestly, I think Unity should take this more seriously or many will end up with PTSD
     
  30. unity_Ctri

    unity_Ctri

    Unity Technologies

    Joined:
    Oct 20, 2020
    Posts:
    83
    Hey Unser, that's rough :(
    You and any other users are always welcome to reach out to support directly if you're having difficulties and feel like the open forums here aren't helping in the way you'd like. I know different people need different ways of working to feel comfortable, hopefully you can find something that suits you best.

    I understand that Apple changing the requirements is a headache in terms of understanding which services are appropriate for their rules, and which ones aren't. We'll do our best to help you understanding our offerings.
    If there's technical matters you'd like us to look into, I and my colleagues will be glad to jump on that with you - let us know what they are :)

    If not, I wish you the best in your projects and endeavours.
     
  31. nithinsb

    nithinsb

    Joined:
    Dec 17, 2020
    Posts:
    13
    We have been trying to get our kids game app through App store verification for some time now but now we are facing the same problems as all the others above. We are using Unity IAP and Apple review says that we are using third party analytics.
    Specifically, this is the review comment we got from Apple - "- Your app includes third-party analytics or third-party advertising with the ability to collect, transmit or share identifiable information, including, for example, Device Name."
    I've already tried out Charles proxy server and confirmed that there are no other API calls.
    We are using unity 2020.3 version and it should take care of the DeviceSettings.mm file issue as mentioned .
    Should i go through the DeviceSettings.mm setting and make changes suggested by @mnievas?
    Any help is deeply appreciated
     
  32. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    Please share you Charles Proxy capture showing what is being sent. If Analytics is enabled as required by IAP, events are being sent.
     
  33. nithinsb

    nithinsb

    Joined:
    Dec 17, 2020
    Posts:
    13
    Sure. Kindly note that the gamely.academy domain calls are our own calls and we do not capture any analytics. Also, we use the latest IAP package 4.1.3

    upload_2022-3-8_6-5-11.png
     
    Last edited: Mar 8, 2022
  34. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    I see the Analytics calls to cdp.cloud.unity3d.com. IAP requires Unity Analytics.
     
  35. nithinsb

    nithinsb

    Joined:
    Dec 17, 2020
    Posts:
    13
    Ok. So that means we have to disable the analytics piece specifically?. Is having a UnityAnalyticsDisabler.cs file the right way to do it? Can you please direct us on the ideal way of handling this?
     
  36. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    Can you confirm what is being sent in the events, do you see a device name being sent? Analytics should be allowed by the app stores. Analytics is required by IAP. Is this a children's game? I don't believe Apple is too keen on offering IAP purchases to children, it requires a credit card.
     
  37. nithinsb

    nithinsb

    Joined:
    Dec 17, 2020
    Posts:
    13
    Sure. Let me add some context here.
    Yes we are a children's game. I've been following this thread and a few others and understand that IAP uses analytics and you guys have been incredibly helpful in supporting developers with the Apple rejection issues on kid's apps. I believe Unity is working on an IAP version with out analytics, which would resolve this issue.

    How do I check if the device name is being sent? In the DeviceSettings.mm? If yes, should I be removing it?

    The thing is that all the posts I see are a few months old and am not sure if they're the most updated way of handling this issue. it would be great if you could direct us here.
     
  38. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    If you expand cdp.cloud.unity3d.com, you will see the Analytics events that are being sent and the Request payload in clear text for each event (if the capture was taken correctly). Please review this article https://support.unity.com/hc/en-us/articles/115002917683-Using-Charles-Proxy-with-Unity .
     
  39. nithinsb

    nithinsb

    Joined:
    Dec 17, 2020
    Posts:
    13
    Got it.
    There are 11 calls in total to Unity domain. I dont see a device name anywhere in the payload
    upload_2022-3-8_7-14-23.png

    upload_2022-3-8_7-14-54.png
     
  40. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    Agreed, I don't see any personal identifiable information. You might want to appeal to Apple with this information, and ask specifically what is causing the rejection.
     
  41. nithinsb

    nithinsb

    Joined:
    Dec 17, 2020
    Posts:
    13
    Ok. Let me take that route. Will keep you posted. Thank you
     
  42. JeffTheCampbell

    JeffTheCampbell

    Joined:
    Jul 11, 2018
    Posts:
    35
    How many of these manual steps are still necessary for ensuring analytics are disabled when using Unity IAP so that the App Store does not reject an app? Has the manual patching steps for the DeviceSettings.mm been rolled into the Unity build process?
     
  43. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446