Search code examples
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,

    • For example, you could have a "special" number (666-777-8888) which is entered. When that one is entered, the app unlocks and you can see how it works.

    • It is really bad luck when this happens. It's just one of the reviewers being an idiot. Sometimes if you just submit again it will sail through.

    • Note that you CAN IN FACT email them and explain the situation, they will give you special handling and they will "actually test it" with a phone number. However, of course this can take time, it takes a long time to get special handling. (Unless your app is already popular / well-known, then they will help you instantly. It's not fair but that's life.)

    • An important point is this: for the demo mode, note that you do not have to go overboard showing every feature. Apple's review process is a joke anyway. In 99.9% of cases they just glance at your app. If you do have to make an 'Apple demo mode', it's normal that the demo mode only has a few of your features. They are really just checking that it does not crash-upon-launch and that it generally works ok.

    {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".