I’d like to do this after the make the installation. After I do that, how do I keep record that they accepted? Or is it enough that they can’t proceed in the app without accepting first?
How should I prompt users for terms and conditions?
Take a look to Waze App.
There is an user licence agreement that you need to accept in order to use the app, If you do not accept it by tapping in the decline button, the app also return you to the home screen (I wonder what is the code to do this).
Ha ha I think the code that exits the app would be
exit(-1)I would never use this though. I would just lauch a viewcontroller that makes them accept the agreement or they just cant use the app.
It looks like Waze uses a different function than exit(-1) but with some animations, I would never do that and probably counts as a crash and is most likely to get rejected.
I’d like to do this after the make the installation. After I do that, how do I keep record that they accepted? Or is it enough that they can’t proceed in the app without accepting first?
I just use UserDefaults to see if they accepted the agreement and if they delete the app and reinstall it they have to tap the "Accept button" again. I wouldn't show this for every app update. However, I would want to show it again if I have updated the terms and conditions. I think it is perfectly fine that users can't proceed unless they accept the agreement.
If the app has user generated content there is no risk for 3.2.2. Lol, its mandatory to have the user accept the agreement. If you don't require a user to log in to use the app. For example, TikTok makes you accept an agreement before using the app.
This is a recent rejection I had. Which really doesn't make any sense because I require a user to accept the agreement when they register. A user can't post stuff unless they register. It's irrational but I implemented it and my app got accepted and most users accept it!
Guideline 1.2 - Safety - User Generated Content
Your app enables the display of user-generated content but does not have the proper precautions in place.
Next Steps
To resolve this issue, please revise your app to implement all of the following precautions:
- Require that users agree to terms (EULA) and these terms must make it clear that there is no tolerance for objectionable content or abusive users
I don't think 3.2.2 specifically excludes an "I agree to Terms and Conditions" pop-up in order to enter the app. I think such a pop-up is conspicuous in its absence. I have such a pop-up in a financial analysis app and have not (yet) been rejected for it.
> "...is it enough that they can’t proceed in the app without accepting first?"
Yes; if you can document that they had to tap "I agree" to access the app you can assert that they tapped "I agree" as a defense. BUT....to what extent is a user tapping "I agree" an actual defense? It depends on what they are "agreeing" to. If one of your terms, buried deep in the pop-up, is "you agree to mail me $1000 next week" - it won't work. If one of your terms is "you agree to settle all disputes by arbitration" it may work to require arbitration.
You keep track by popping up a notification and then setting a value in user defaults, or, setting a flag on your remote server.
Keep in mind app review's opinion is what counts, and there may be a risk of negative reviews in waiting until after a user downloads and installs your app, so be sure your particular implementation is acceptable.
Notes:
- *When you choose the Custom EULA option on iTunes Connect, you can submit an EULA/ToU/T&C to a field shown for the app on App Store Connect, which is then shown under a separate button on the App Store product page.
- In the past, app review/support has said this about that:
EULA agreement must be part of the registration workflow and available from within the app on demand after login.
Addendum: "Terms and conditions" may differ from a "Disclaimer". There are very good reasons to force a user to agree to a short, concise "Disclaimer" such as "This app is not valid for proving your speed in traffic court" or "This app is not legal in a moving vehicle in the state of Virginia" or "The owner of this app disclaims any liability for stock trading losses based on any reliance on the information presented in this app." Burying this information in a long Terms and Conditions accessible somewhere within the app may not be as good as forcing the user to tap 'I agree' each time they install the app. IMHO.