Is it acceptable for an iPhone application to require a login on first startup? - iphone

Will Apple accept an application that requires a login to an online account the first time it boots? I'd like use this to link the user to an online highscores system for a game and for some analytic purposes.

Yes, there's many, many games that do this already. In fact when you submit your app for testing, there's an optional text field that lets you provide the test engineer with a pre-existing test account name & password.

I'm not sure I like the idea of requiring a login account. Optional logins are fine, but requiring such activity is too much of a hassle or privacy concern for some people.
As a consumer, I like having the option to opt out of signing into such services. I would recommend supporting your customers' prerogative to choose anonymity or privacy over the benefit of being eligible for the high score system.

Related

App Rejected on 17.2 clause. Asking for email ID

My app is a sync solution (imagine dropbox).
The user needs to sign in to access the app's features, and if he does not have any account already created, he can sign up.
The sign up asks for email id verification, and this email id is also used if the user has forgotten his password to send him one.
but Apple has rejected this app saying:
17.2: Apps that require users to share personal information, such as email address and date of birth, in order to function will be rejected
We found that your app requires customers to register with personal information to access non-account-based features, which is not in compliance with the App Store Review Guidelines.
Apps cannot require user registration prior to allowing access to app features and content that are not associated specifically to the user. User registration that requires the sharing of personal information must be optional or tied to account-specific functionality. Additionally, the requested information must be relevant to the features.
Although guideline 11.6 of the App Store Review Guidelines requires an application to make subscription content available to all the iOS devices owned by a single user, it is not appropriate to force user registration to meet this requirement; such user registration must be made optional.
It would be appropriate to make it clear to the user that registering will enable them to access the content from any of their iOS devices, and to provide them a way to register at any time, if they wish to later extend access to additional iOS devices
Please help me solve this. Many apps like dropbox/facebook require login.
I don't get the exact reason why they rejected my app.
Also, please guide about the in app purchase, why registering cannot be mandatory
Asked App Store Review people for clarification on their rejection.
They accepted it. and the app got approved :D
Its on Appstore now :)
I also Faced this kind of Problem and my app also Rejected due to this.And Again I Changed my App flow Like User Registration will be Optional. User can See all the Feature of the app with out Registration by skipping this step.If he want to do something user-specific then you can ask to register such as : (user like,comment,photo upload etc) or else he can use the contents and features which are public.
in Case of in-app Purchase You can Prompt user that if He will Register with your app he can able to use this Content in his all devices.
It would be appropriate to make it clear to the user that registering will enable them to access the content from any of their iOS devices, and to provide them a way to register at any time, if they wish to later extend access to additional iOS devices
Apple does not allow apps that require you to share person information to work, like an e-mail address.
You options are, remove the need for an e-mail address or remove account creation form you app and move it to a website.
It also states that you app is asking to create an account to access the full app and even needs the account or acces features that do not require the user to have an account. You can make those features available with out the account creating you might be able to get thru the review.
The reason apps like Facebook and Dropbox got thru the review proces is because they don't have a register option which is in app only. They redirect to a website.
I recently spoke to an Apple Rep over the phone in regards to an app of mine that was also accused of violating clause 17.2.
I explained to him that the email would be used for password recovery, monitoring transactions within the marketplace, and managing any inappropriate behavior (such as users uploading offensive or copyrighted content). The rep responded, "Sir, the clause states 'Apps that require users to share personal information, such as email address and date of birth, in order to function will be rejected'. I cannot allow you to require your users to submit their emails if its not account-based". He did not seem to understand that the emails are account-based for the very sole purpose of security.
I did mention to him that Instagram and Facebook alike require logins at startup. He simply replied, "Yes but those apps are entirely account-based."
Honestly, I felt he was blindly following Apple's Guidelines ("Because that's what it says we must strictly follow!"). He had little understanding of how social networking apps operate, and even less understanding of the law (specifically the DMCA - on a separate issue). Explaining to them how all that works proves to be futile; they wont budge because they are asked to follow Apple's BROAD Clauses as strictly as they do.
My conclusion: I had to compromise the app's user flow such that the app's registration page can be skipped, and all other functions within its marketplace were locked to non-registered users. It makes no sense.
The sign up asks for email id verification, and this email id is also used if the user has forgotten his password to send him one.
Apps cannot require user registration prior to allowing access to app features and content that are not associated specifically to the user.
It seems to me that the point is that you are asking the user to provide his email address as a step towards the creation of a user account. This is different from what dropbox and other apps do (i.e, you provide your credentials for your dropbox account, which is different from your email address, although it can be the same).
You may either remove altogether email verification, or you could postpone it to a later point when you have made clear to the user that this is required to access private information.
I got the same thing last week and this is Apple's reply:
As for the 17.2 issue, a nickname, avatar, or sharing are not inherent or specific features of those social networks, and thus, the user should not be required to register with those services, or provide you with access to their social network accounts. The user should not be prevented from using your app and service if they do not provide this information.
Instead, it would be appropriate use your own authentication method and give users the option to create a nickname and upload an avatar, independent from those networks.
Moreover, we realize that these social networks may be very popular. However, the popularity of the social network is not an appropriate reason to force a user who has not, or chose not to register and provide their personal information to those services, before they can use your app.
Therefore, we ask that you to include your own authentication mechanism to allow the user the option to register only with you, creating an account with only the information needed and relevant to your app's features.
Best regards,
App Store Review
So in short, you have to provide custom authentication and not just use Facebook. Although I've seen many Apps who do require you to login with Facebook.
Thanks,
James
It happened same for me, although the first version was approved, the second version was rejected for this reason, I added the Skip button at the landing view.
It's all summarized in the last paragraph. Apparently, your application doesn't inform the user (in a clear way) that registering is for syncing and from their reply, it seems that your application is useless without the Sign Up.
If that's the case, you should be more specific why you need the user to register.
On a side note, I personally don't like the applications/websites that force you to register before you see or try anything. I hope your application isn't the same.

Security options keeping us from testing applications

I work for a iPhone game developer. We use Facebook as a way for people to register their account to easily add friends and post news of their game progress.
We have created several Facebook accounts to test game account attachment and various friend features our game has.
Unfortunately, recently added security features are preventing us from logging into our test accounts. We are being asked to enter in a cellphone number to receive a SMS with a code to enter so we can verify they are real people. Unfortunately, after a phone number is used once, it cannot be used for any other account. So at the moment, we have two accounts that can be used, and about a dozen accounts that are inaccessible to us.
I haven't been able to find any solutions to this problem and we are really short on time at the moment so I need one ASAP.
They dont want you to create accounts like that, they want you to create accounts like this
This is odd, when I have test user accounts they never ask me to confirm the account. Maybe you should generate new test users for your app at: https://developers.facebook.com/apps/{yourAppId}/permissions. Then click on Add in the test user section.

Providing back doors for Apple app submission testing

I am getting ready to submit an educational app to Apple for review. The app is somewhat like a series of flash cards, and working through the entire app would require thousands of "flips".
In the hopes of shortening the review process and preserving some poor tester's sanity should s/he want to see the end state of the app, I am considering adding some way to fool the app into thinking that the user is done. My first thought is to add a check for a boolean in standardUserDefaults that would do such, and giving the name of the setting in the "provide us with login information" field on the app submission page.
So my question is, does anyone know if app reviewers are able to directly edit NSUserDefaults values?
Alternatively, does anyone have any other good ideas for accomplishing this?
(I would prefer to avoid "secret key press" type solutions if possible...)
As part of the submission process apple will ask if your app has any "demo" or "test" accounts. They are intended for just this purpose. So you may want to consider including a "secret code" and document it in this section. I know you said you don't want to go that route, but i highly doubt a tester is going to do anything outside of the standard process (such as edit NSUserDefaults)
Have the test account you give Apple for review (password protected) ask your server for permission to unlock all the data. You can disable this test account on your server after the app is approved; and/or after a certain date, by which time you expect the app to be in the App store.

iPhone Developer account: Multiple Admins?

I am doing some dev work for a client. She has a Dev License should would like to put the app under but since she is non-technical it has been frustrating since she has to be the one to submit the final app.
Is there a way for a Dev License to have multiple Admins? I have it configured so I am a developer but as such I cannot do the Distribution License. Only she can do that. Is there a fix?
If you have a good relationship to your client, you might want to ask her for her login details so you can do it yourself.
There is one other possibility though: For a similar problem I was given the advice to build & archive my app and send the archive to the client. He could then resign the app using his certs, which would eliminate the need for him to do all the building stuff, not to mention it will spare you to surrender your source code. However, this will not eliminate the need for your client to enter all the meta information and so forth while uploading the app.
For the necessary steps to resign an app, see this answer.
To answer your original question: Each developer account has exactly one Team Agent. So you need some kind of workaround anyway.
There is only one administrative or Team leader per developer account. So you really need to plan on the policy for sharing use of that account from the beginning, if the required activities of the agent need to be split up among multiple parties, if you can't have one party capable of doing everything.
A shared account can be created from the beginning (either by the owner or the developer). I recommend an ADC account be created just for this purpose, instead of just using the owner's personal account and email address ( e.g. instead of mary.smith#sample.com, create and use iosdeveloper#sample.com for enrolling as an iOS developer. )
Account credentials can be "loaned" (perhaps with password changes after use).
You can be given remote access (VNC/RDP) into the owners PC or Mac (or more secure yet, a VM session) as or after they log in.
You can talk the owner though the process over the phone (or video chat, etc.).
Or, the owner can learn how to get certificates, and build or resign and submit apps themselves, perhaps using a comprehensive script.

Does my client need a developer account to submit the app I made them to the App Store?

I wonder if someone could offer insight here:
I work for an independent multimedia firm who builds communications material for their clients. We're currently working through our first iPhone app. So, my shop has now completed an app that conforms to our client's brand, and we wish to deploy this app to the App Store on behalf of our client. Looking over Apple's documentation, everything seems to be written on the assumption that you are releasing your own app... therefore, the Apple documentation seems to start one step ahead of where I need it to.
So, as a multimedia production firm, I have set up a developer account for my company that I have been using to develop our client's app. However, I assume my account cannot release my client's application, given that it would cite my company's name as the publisher. Therefore, how do I start this process on behalf of my client? Will they first need their own $99 developer account to publish with, or is there a separate publisher identity that I can set up within my account that represents my client?
Any and all help on this would be appreciated. Thanks!
I typically have the client create their own account. From there most clients will provide me access to their admin account so I can go through the rest of the steps.
I often submit apps through their admin account, however, a team member is an option if the client is not interested to provide admin credentials.