How to Test an iOS App as if First Time, Each Time? - ios

Here’s my situation:  I have an iOS app in development.  To thoroughly test each new beta version, especially the content purchase process which happens after the initial app install, I need for my device (iPad) to forget it has already seen and purchased the content of the app before.  Once I purchase, though, each subsequent download automatically activates the previously purchased content, so I don't get to start fresh.
As a solution, I was going through the laborious process of creating a new iTunes account, doing a factory reset on my iPad, adding the new account as a new tester in the iTunes Connect Test Flight system, and testing that way.  It worked a few times.  What I just discovered, though, is that Apple only allows three different accounts to be registered on a single device over the course of a year, so that plan is no longer viable.
My question, then: How are developers testing apps that need to load as if for the first time in a device, after the app has already been perviously loaded and tested?
Stumped on this, appreciate any help.
Cayce

The app's data should be deleted by just deleting the app. If it is storing data elsewhere on the device then you can go to Settings-General-Reset-Erase All Content and Settings.
That should do it.

Related

New requirements for iOS app - keep them accessible to users/customers

I got an email from Apple that apps now require iOS13 + storyboard for app launch screen for existing apps. (I do not use storyboard for main app functionality)
I have developed a couple swift1/swift2 based for schools a long time ago. (Still works well)
Can I somehow ditch the app store and then provide direct access or download for school pupils?
i.e. is there any way forward to simple keep the apps-as-they-are? Maybe limited download availability?
Or will I have to take plunge back into app-building?
The requirement of a Storyboard launch screen is only when you need to submit an app update. If you are not wanting to update your app any more, then it won’t stop working because of this new requirement.
Regarding distribution outside of the App Store, you could use Adhoc distribution which requires you to know the device ID’s of the devices you want to install it to.

How do I replace an old expired iOS app with a new app that I built from the ground up?

I have what I believe to be a pretty unique situation and I can't seem to find a solution online. The problem timeline:
4 years ago I paid a developer to build/upload an app to the iOS App Store for me under my own developer account.
Over the years it became outdated and this April it was kicked out of the App Store
I took some online courses this year and rebuilt the app from the ground up.
I would like to post my rebuilt version to the App Store - completely fresh like it's a brand new app (because it basically is)
A couple more things to consider...
I used Swift vs the original Objective-C that the developer used.
I used UserDefaults instead of what appears to be iCloud. (the dev account seems to be littered with permissions for things I don't intend to use - so advice on how to get rid of all of the weird stuff I don't use would be helpful, too)
I also have a different but similar bundle identifier (it replaces "RandomRuby" with "Random-Ruby") that Apple's App ID registration system seems to not like.
The level content and game play are the same - but I have no idea how to figure out what level the previous users were on. (which I'm ok with if it's ethical to make people start over).
It had In-App purchases (they could purchase consumable "Rubies" to use for hints and there was an "Ad Free" upgrade option. The new app doesn't use ads - it just has consumable "Rubies" for monetization). I have no plan to add ads back in - so I imagine a complete reset would be ok here, too? Again - is that ethical?
With all of this context - my question is...
How do I upload a completely-rebuilt-from-scratch app with the exact same name from the exact same company as an expired app through the iOS Developer system? Is this even possible? I'm having a hard time figuring out where to start. I can't even get past creating an App ID.
To update an existing app in your Apple Developer account you only need to use the same BUNDLE ID (e.g. com.apple.keynote) in your Xcode project and a higher version/build number. Everything else is not relevant.
Your previous iOS APP is bounded with the Apple Developer account when it was submitted. And the APP name is unique, just like anyone else may not create another app named 'Facebook'.
So, if the Apple Developer account was not yours, you are in trouble. You need to ask the previous programmer to transfer the APP to you.
If the Apple Developer account was merely expired, and you can prove that the account belongs to you, I guess you can contact Apple Support for help.

Delete Existing iPhone App

I have an iPhone app that now needs to be removed. I can do this by following the steps in iTunes connect:
Untick all territories in pricing and availability
Then in Additional Information : Delete App
I have completed step 1 and am about to follow step 2 but I have a question that I cannot find answered on any of their help/docs nor online elsewhere. Once I delete the app - it will get removed from the app store, but will it still stay on all users iPhones that have already got the app downloaded and installed on their phone? Or will it automatically be deleted/removed from all phones?
Ideally I need to remove the app completely so that it can no longer be used be new or existing users even if they already have it on their phone.
It will stay on the user's phones.
In your case even worse for you: If they backed up/synchronized the application LOCALLY via iTunes, they got a local .ipa-file (an instance of your app), which they could even restore, after they setup the device once again.
For the users this is a pretty convenient way. So, if you want to delete your application. Inform users about that step and if you have a good exit strategy, users will adopt this and will delete it on their own.
The app will stay on the users IPhones. There is no way to remove it remotely.
The only thing you could do would be to release new version with a lock but then you will probably get trouble with Apple.

I need to check the itunes store to see if a user has bought a subscription in the past version of my app

I'm rolling out a new version of an iPad app, and you could buy subscriptions on the old version. However, the new app has different subscriptions than the old one did, but I still need to know if they used to have a subscription, so I can apply it to the new app.
So, how can I check the iTunes store to see if they bought a certain product in the past when they load the app? From what I can tell it should be possible to do because it is the same app and connected to the same app ID in the iTunes store.
I'm trying to get some sample code to put in here but I have literally no idea where to even start.
You can use the SKPaymentQueue's -restoreCompletedTransactions to restore everything apart from non-recurring subscriptions. Your observer should get then receive every relevant transaction since the beginning of time, each with a state of SKPaymentTransactionStateRestored.
Apple requires you to support transaction restoration so hopefully your old version's code should have this built in somewhere, behind a 'restore' button or similar.

In-app payment still says it's in sandbox mode

I built a in-app payment for one of my iPhone apps. It worked in sandbox mode.
I submitted my app to the app store and it got accepted. I even submit my in app payment. It got accepted and it's status is 'ready for sale'.
However, when I go get my app in the app store, it still says it's in sandbox?
Is there something in MKStoreKit that you have to transfer environments, or does it take some time for it to change?
I currently pulled it from the store because of it. Please help! Thanks.
Hmmm. Are you using your Test User ID or a real Apple ID?
When this happens, it's usually because you previously used the same device for testing IAP in sandbox mode. To fix, just go into "Settings", then go to "Store", then log out and back in again. That should clear that up, assuming that you are actually using the archived app that you downloaded from iTunes, rather than your dev copy.
Re-released my app today so I could get it and see if the in app payment would work. Surprisingly, it worked and it wasn't in sandbox mode! So I guess it just takes time for apple's servers to make the change.
If anyone else had this problem, don't fret like I did! Just wait and be patient. Hold for developer release and wait around 24 hours and you should be good!
Here's the real solution (edit):
Set your availability date to the future so it will be removed from the app store
Set your availability date to the day it is so it will re appear

Resources