Let's see what the App Store Review Guidelines say:
Apps with user-generated content present particular challenges, ranging from intellectual property infringement to anonymous bullying. To prevent abuse, apps with user-generated content or social networking services must include:
- A method for filtering objectionable material from being posted to the app
- A mechanism to report offensive content and timely responses to concerns
- The ability to block abusive users from the service
- Published contact information so users can easily reach you
I guess that means yes.
Hmm, I read the third point as our ability to delete their account, but not necessarily that we have to give the users the ability to block eachother. What I am building in is a form for users to report content/users and we will decide whether we should kick the user out. Do you think this would be enough?
Yes, what you propose should* work. It has for me (Gravitational Wave Events). You don't need to 'kick the user out' - you only need to prevent the user from posting again.
*IMHO - no one can say what App Review will or will not......
Do you think this would be enough?
I don't work for Apple. Only App Review can approve an app.
You didn't quote the exact comment from Apple and I don't know anything about your app, so it is difficult to say more than just quote Apple's guidelines. However, I can tell you that your app is in a "RED FLAG" area. It is going to be under intense scrutiny by Apple. This is one of the top scam areas and avenues for illegal apps. I will assume that you are an honest developer. Imagine how someone might use your app for gambling, drug dealing, file sharing, money exchange, prostitution and *** trafficing, and a host of other scams that I don't even know about. How would you prevent that activity? Or is your app designed to facilitate it? Don't bother trying to explain it to me. As I said before, I don't work for Apple. You have to demonstrate, to Apple, with your app (your words are meaningless), that you are an honest developer who does not want that kind of activity.
Actually I don't believe you need a method to 'filter objectionable material' but you do need a method of deleting objectionable material after it is reported as objectionable. (i.e. you don't need a system to auto-detect that this word - **** - is objectionable and automatically convert it to a bunch of " * "s like this bulltein board can do - but you do need to be able to change this post so the word, or the entire post, is deleted)
How to block a user -
1) assign each user a random number as an ID
2) add that ID to each post by the user
3) if you need to block a user, add their ID to a list on a website that you maintain (check out google.sites for this)
4) before allowing anyone to post, check your website for their ID
You can also do this on CloudKit. If you use CloudKit you can use the user's userRecord ID as their ID. You could also make an entry yourself in the userRecord of an offending user using the CloudKit Dashboard.
This is super helpful, thank you PBK!