TheGameCreators / AGK-Studio

3 stars 1 forks source link

Can't submit to App Store for review because of NSUserTrackingUsageDescription #831

Closed KevinCrossDCL closed 1 year ago

KevinCrossDCL commented 3 years ago

I can't submit a new version of my app to the App Store because I get the following message:

Unable to Submit for Review The items below are required to start the review process: Your app contains NSUserTrackingUsageDescription, indicating that it may request permission to track users. To submit for review, update your App Privacy response to indicate that data collected from this app will be used for tracking purposes, or update your app binary and upload a new build. Learn More

To update the app privacy response you have to update the Info.plist which isn't something that's accessible.

https://developer.apple.com/documentation/bundleresources/information_property_list/nsusertrackingusagedescription

The version of Studio I'm using is AGK Studio 2021.06.14 Mac

What can I do? And what AGK functions would trigger this, or is it set by default on any project exported for iOS? I do use GetDeviceID and I'm storing that in an encrypted format in an online database. This is to be able to find users that are using multiple accounts on a single device when they're being a nuisance to others. This is the code, but I've replaced the string that is used to encrypt it with x's.

deviceID$ = Sha512("xxxx" + GetDeviceID() + "xxxx")

I should mention that the issue isn't with uploading for TestFlight. That's fine, The problem is with publishing the app update for general release.

Hopefully we don't have to wait months for a new version of AGK.

neiltking commented 2 years ago

The app has been rejected again by Apple, with them giving me the same boiler-plate reason, i.e. "you do not use App Tracking Transparency to request the user's permission before tracking their activity."

This is the exact code I use in the project, immediately after setting up the screen resolution if it helps:

if ( GetDeviceBaseName() = "ios" )
    LoadConsentStatusAdMob( "", "" )
    while( GetConsentStatusAdMob() < 0 )
        Print("Checking advert consent...")
        Sync()
    endwhile
    if ( GetConsentStatusAdMob() = 0 ) 
        RequestConsentAdMob()
        while( GetConsentStatusAdMob() < 0 )
            Print("Awaiting advert consent...")
            Sync()
        endwhile
    endif
    SetChartboostDetails( "xxxxxxxxxx", "xxxxxxxxxxxxxxx" ) // iOS interstitial
    OverrideConsentChartboost( GetConsentStatusAdMob() )
    CacheRewardAdChartboost()
elseif ( GetDeviceBaseName() = "android" )
    SetChartboostDetails( "zzzzzzzzzz", "zzzzzzzzzzzzzzz" ) // Android interstitial
    CacheRewardAdChartboost()
endif
KevinCrossDCL commented 2 years ago

It doesn't help but to get my app approved when I first had the problem I had to remove adverts, which meant the iOS version no longer earnt from adverts.

It seems impossible to get an app approved on iOS with the current versions of AGK. You can't even do it via the Tier 2 process orvillian provided steps for at the time I was having issues.

neiltking commented 2 years ago

I think I may have sorted this for my game/app but it involved changing my advert provider from Chartboost to AdMob. My app has gotten further in the Apple approval process (although it has now stalled at the inclusion of ARKit - which I don't use, so I've had to launch an appeal to their rejection).

I don't think it will ever work with Chartboost as using the UMP SDK (the Google User Messaging Platform) seems to require you setting up an AdMob account and adding your app to that. You can then go to the Google AdMob console, into the "Privacy & messaging" section and set up all of the dialog info for GDPR (EU & UK), CCPA (California) and IDFA (Identifier For Advertisers) which triggers Apple iOS's native App Tracking Transparency alert. This is where you also set which apps should use the UMP SDK so you do need to have your apps added to AdMob for it to find them.

orvillian commented 2 years ago

@neiltking Thanks for the update. Please let us know how you get on.

neiltking commented 2 years ago

@orvillian @PaulSJ - I am happy to share that Apple's appeal process has now let the game through and it is available on the App Store! Thanks for all your help. I still don't see any way of getting Chartboost to work with Apple's incredibly tight privacy policies, so I will continue to use AdMod from now on which works perfectly with the UMP SDK.

orvillian commented 2 years ago

@neiltking Good to hear your app has been approved.

Can you confirm adverts are being displayed when using AdMob?

Hopefully updating to the latest Chartboost SDK will allow us to use it in the future.

neiltking commented 2 years ago

@orvillian - Yes, I can confirm that AdMob ads are showing in the iOS version of the game. Thanks.

VirtualNomad19 commented 1 year ago

was this fixed with today's update?

PaulSJ commented 1 year ago

It should be, yes

VirtualNomad19 commented 1 year ago

@neiltking if you can confirm this issue fixed, please close the issue?

neiltking commented 1 year ago

This was so long ago I'm not entirely sure. I had to change from Chartboost to AdMob in order to get the consent system to work so in all honesty I don't know if it is fixed for Chartboost. The app was accepted by Apple in the end so I am happy for the ticket to be closed.

VirtualNomad19 commented 1 year ago

rats. just realized @KevinCrossDCL was the OP here. not @neiltking :) @KevinCrossDCL , ok to keep Closed?

KevinCrossDCL commented 1 year ago

It's 2 years old, so yeah. I don't care much for it now