Search code examples
iosapp-store-connectudididfa

How to implement user suspend feature in iOS


In an iOS application, When I detect a users improper action (for example posting violent content), I wan't to suspend the user from using my application. The basic idea to implement this feature is to create and save an unique id for each application installs and suspend the usage from server api's.

My question is, how can I implement this feature even if the user re-installs the application, and still pass the Apple's iTunes submission?

I came up with two ways to technically implement this feature, but wondering how Apple would respond.

  1. Store the IDFA (I understand that users can reset the id on their behalf)
  2. Store an app generated udid to the Keychain (which should not be deleted even if the user deletes the app)

I know there are no perfect answers, but would appreciate to discuss this issue with anyone that have tried submitting a similar application, or anyone that is well aware of the Apple's guidelines. Thank you.


Solution

  • Apple will reject apps that inappropriately use the IDFA.

    If your app does not use server login (at which point, whatever flags you require could be delivered to the client), keychain storage would be the only real solution.

    However, if you don't use server login, you block the device, not the user. Is this your intent?

    BTW, without server login, a determined user can still get around keychain storage: Reset keychain on the device