Demo account in itunesconnect in sms-based app - ios

I can't find any info about my problem - I've written an app, which is sms-based(it means that user has to request and receive sms from my server, and can't continue until enter sms-code and some other things based on sms within app). So, my problem is rejecting from appstore review due to "no demo data", but how i can get it if even "demo" depends on real device?

Apple will test your app on a real device. When they run the app, they need to be able to get past your registration process. So you need to have your system setup so when the reviewer runs your submitted app they can perform what actions your app requires. This means your server needs to be running for real.
If there is some specific information (user id, password, etc.) that the reviewer must enter into your app to use it, you must provide that information in the "Demo account" field for your app's details in iTunes Connect.

Related

Create e-book standalone app in the iOS App Store - Free with external access code

I'm a long time iOS developer and i've been out of the domain for a while now,
I've been assigned a new task in which i need to check whether it's doable on the appStore or not.
My aim is to create an e-book like application, where the user downloads the app for free from the appStore, and is requested to enter an access code provided separately outside the appStore.
So the app can be free on the store, and once opened an external ajax/php request will take place to authenticate the user.
Previously, apple forbid this kind of transaction, i am checking now to see if this situation changed or/and is now approved by apple.
Many Thanks!

Binary rejected because of missing username and password for test account in Test information TestFlight

I submitted my app for review for external testing and the binary got rejected due to missing username and password for a test account in Test Information tab of testFlight.
Here is the response in Resolution Center in App Store connect. I have added the username and password in test information tab and replied in Resolution Center as suggested.
Do I need to submit the app for review again?. As the status of binary shows rejected.
From Apple
2. 1 Performance: App Completeness
Guideline 2.1 - Information Needed
We have started your beta app's review, but we were unable to successfully access all or part of your app.
In order for us to continue the review, we need to have a way to verify all app features and functionality. Typically this is done by providing a demo account that has access to all features and functionality in your beta app. It is also acceptable to include a demonstration mode that exhibits your app’s full features and functionality. Note that providing a demo video showing your beta app in use is not enough for us to continue the review.
Next Steps
To help us proceed with the review of your app, please provide a user name and password in the Beta App Review Information section of App Store Connect. Please be sure that the demo account includes content that demonstrates the features and functionality available in your app.
To provide demo account information:
Log in to App Store Connect
Click on "My Apps"
Select your app
Navigate to the "TestFlight" tab
Select “Test Information”
Scroll down to “Beta App Review Information”
Select the "Sign-in required" box
Enter demo credentials in the "User Name" and "Password" fields
Click “Save”
Reply to this message in Resolution Center
After entering the Test Information, all you have to do is reply to the message in Resolution Center. They will get back to you and update the status accordingly.
However, if you would like to expedite the app review, sometimes it's faster to just submit a new build.

Receipt Refresh causes Apple Review to Reject App due to iTunes Store Connection Error

I'm seeing a very strange thing happening with my application.
To be specific, I am issuing a receipt request in order to download a receipt from Apple when I detect that the application does not contain a receipt file in its bundle.
Sure, calling the receipt refresh API causes the Apple ID login screen to be shown.
I have created "test"/"sandbox" users in iTunes Connect in order to test my application.
When running the application on my device (iPad with WiFi), the app successfully calls the refresh receipt function and then sure enough, the Apple ID login screen pops up. I enter the correct credentials of the test/sandbox user configured in iTunes Connect and everything is fine (i.e., the receipt is downloaded successfully.)
However, if I attempt to use a real Apple ID user, I get "didFailWithError" and the localized error description is: "Cannot connect to iTunes Store", the error code being "16".
This is expected, in my opinion.
Now, the sad part is that when I have submitted my build to Apple Review, they are getting the exact error mentioned above.
They are saying that they are using a sandbox user and thus they have rejected the application as they were unable to continue.
Note: They too have used an iPad with WiFi for testing the application.
I have consistently been able to reproduce this problem only when using real Apple ID user accounts and have never had a problem with sandbox users!
I've read somewhere that one would have to also make sure that the sandbox user is logged out of the "Settings" screen when testing. I've politely asked Apple Review to make sure that they would not be logged into "Settings" when testing.
They have sent me two screenshots: One with the Apple ID login screen that asks for BOTH the Apple ID user and the password (which causes me to think that they indeed were logged out of the "Settings" screen, otherwise they'd already have the Apple ID user pre-populated in the dialog) and one showing the error mentioned in this post.
I have no idea how to proceed now because I simply cannot reproduce this problem. It works perfectly with any sandbox users on my device -- it just doesn't work with real Apple ID users.
Apple Review sent me a screenshot showing the error mentioned in this post, again, an error that I can only reproduce when using a real Apple ID user in what is really a sandbox environment.
I think the only difference may be the fact that my device is running iOS 10.x while their device may be running iOS 12.x but I don't think it should be an issue.
Any thoughts ?
Thanks in advance!
P.S., they are not using an Apple ID sandbox user created by me -- they use their own. I have suggested to send them my sandbox users to test, but they said they could not accept as it would be a breach of privacy.
UPDATE: I have confirmed that the same thing happens on iOS 12.1 so it's not due to an OS difference.
It looks like at least in my case, there seems to be a problem with the refresh receipt API itself.
I have confirmed that initiating a purchase request causes the app to download a receipt from Apple with the credentials of the supplied user (sandbox user in our case.)
The review team has confirmed that the purchase request works correctly with their sandbox user, however, the refresh receipt DOES NOT work with that exact same user (it causes a code 16, "Cannot connect to iTunes Store")!
I have also confirmed that a "Restore" request causes the receipt to be downloaded and that it works with the supplied sandbox user.
In conclusion, both "Purchase" and "Request" operations causes the app to download a receipt from Apple and they work correctly for the sandbox user supplied by the Review Team. However, with the exact same user, the receipt refresh request fails!
I can still ask for a receipt refresh because it should work correctly for actual App Store downloads but it clearly did not work for app review.

External testing on testflight rejected because demo account needed

I submitted my app for review to start external beta testing and I got the response:
Guideline 2.1 - Information Needed
...but we are not able to continue because we need a demo account to
fully assess your app features.
The app requires verification by phone number (same as when you install whatsapp), and sends a message to the phone number, but there is no "demo account". Do I need to create an account which they can access, with a phone number, and a pre-set verification code in this case? The app is based on the contacts on the phone, so the "experience" won't work as it would for a user this way.
Thanks!
Yes create a basic demo account that they can login to - Apple is strict about this.
Once you are finished you can either update the information and email them back or handle it through the Resolution Center. I updated the app information in iTunes connect with the demo login information and replied to the rejection email stating the demo account information, shortly after that the app was approved for TestFlight.
They basically just need to be able to see as much as possible within your app, so even if what shows is minimal that is fine.

Can I edit my iOS application's code after getting appID from Paypal for going live?

I am about to submit an iOS app to paypal to get a live App ID. However, the code needs some minor changes. So, I want to know if I can edit my app's code after I apply and get a Paypal app ID? Or, do I have to wait until my coding is done and then submit the app to Paypal?
If your app implementation works well in the PayPal Sandbox, then you are good to go. Most probably PayPal will issue you a Live App ID. All features NEED NOT be entirely functional. Once you obtain your PayPal Live App ID, you can of course make changes to your app, add features to it and fix bugs. Doing so will not void your Live App ID. Keep in mind that any future changes you make to your app will be submitted to the App Store not to PayPal. So technically speaking, PayPal doesn't even know if you made changes to your app or not. The key point here is to make sure your app works well in the PayPal Sandbox -- at all time.
I would also like to clarify one common myth about the Live App ID, for those who are not entirely familiar about what it is. If your App uses the PayPal API, you need a Live App ID before you can test your App on an actual iOS device and/or before you submit it to the App Store. The Live App-ID is provided to you by PayPal, NOT Apple.
To obtain a Live APP ID,
Check your account status. Login to PayPal. Go to your PayPal Profile and click My settings. Confirm that your Account type is either Premier or Business, or upgrade your account.
Check your API settings. Click My selling tools. Expand Selling online if needed and check API access. Click Update and Add or edit API permission or View API signature.
To get your application live, follow the steps outline in Adaptive Apps 101.
Once you've verified that your implementation works correctly in the Sandbox, submit your application to PayPal and you will get your Live App ID.
I assume that by "Paypal ID" you mean "Apple ID that PayPal API uses to identifiy your app", in other words, the numeric ID that iTunes Connect gives you when you set up a new app.
The answer is that iTunes Connect gives you this ID as soon as you set up the app on iTunes Connect (i.e. when you put up the description, icon, screenshots, etc). It's not neccesary to actually submit your app binary to get this ID, and you can change the screenshots and description later, so if they're not ready yet, just upload some dummy placeholders for now.
There should be no problem getting your PayPal API set up with your ID before the app is submitted, but you shouldn't upload your app binary if you still want to make changes (although as it happens, you can reject the binary later and upload a new one if you need to anyway, as long as Apple's not already approved it).

Resources