iosapp-store-connect

Application rejected - no demo account


I have an application with banking domain (UPI) the very first step or screen the user is presented with a button titled "SEND SMS" to login/register when user clicks on it, a SMS is send from the device using the MFMessageComposeViewController, and based on the mobile number the server respond with weather the user already exists or its a new registration.

Since this is obvious that a valid phone number is required to send SMS or use the application, I am unable to provide a demo account to them.

This is second release of the version, for the first release we have submitted the video of production application and it was live on Appstore, not only this app but I have submitted few other without a demo account but using a video, this time too I have submitted the video, still they ask for the demo account, I have tried to explain them whole process using telephone conversation but no luck. Also did asked them to use there own mobile number on their testing device but they refused to do so.

How can I move forward with this release?

I went through some similar question but didn't find any help.

  1. Apple rejects app because test account not given (as App login via OTP only)

  2. Is demo account mandatory for apple submission?

  3. App meta data rejected , requires demo account.

Note: I don't have OTP functionality in my application, the only way to register is by sending the SMS.


Solution

  • In this annoying situation.

    The fact is, generally you have to:

    change your app, so that it does have a demo mode, which Apple can use.

    It's a total pain in the ass but that's how it is.

    Some points,

    {Regarding the last point - indeed they only carefully review your app for policy problems etc once it is popular. This leads to the infuriating situation where controversial apps are approved at first, but then once they "actually look at it" they say you're not allowed to collect donations or use that payment model or whatever the case may be.}

    Regarding having a "special demo" mode. It's a nuisance but sometimes you have to do this:

    1. Have a URL like "yourCompany.com/DemoCheck.txt".
    2. When the app launches, see if that exists.
    3. If it does, allow "pain in the ass Apple demo mode"
    4. Now, after apple approves it, in fact remove the URL from your web server, so your app now knows to run in normal consumer mode.

    (Note that if you are using any sort of backend, which you probably are, you can do the same thing just using your back end. So just have a value in Firebase or whatever that indicates "Apple demo mode". Once the app goes to production, turn it off.)

    Once again, if you're truly doing something important like "a banking app" you, obviously can't have a security hole like an idiotic "apple test version". In that case you can actually contact them and carefully explain the situation and they will, in fact, test it "properly" using a phone etc. But that takes a really long time and is just not practical - consider, you'd have to do that every single time. In practice you need a "apple demo mode".