iOS app crashed even after reinstalled, but not for the new users - ios

Some of my old app users are experiencing app crashes for a certain step after I updated the app. Even when they tried to delete the app and reinstalled it, it's still crashing. However, the app doesn't crash for new users.
How does that happen? When a user completely deletes the app and reinstalls it from the AppStore, the user should be like a new user, right? How come the new users don't crash while the users who re-install the app keep crashing?
Is there something remaining in the device even after the user deletes the app?

If you use keychain functionality that may persist across uninstalls and reinstalls. That, in theory, is the only data that should persist with that behavior.
Without more code or details it's hard to know what the problem might be, but to your question "Is there something remained in the device...": yes, keychain information.

One thing that does remain in the device after uninstalling an app is privacy settings (Relevant SO post).
Perhaps you're trying to access something incorrectly with your update?

Are you using any database in your project?
If yes we need to take care of version migration.

Related

How does Yubo previously known as Yello remember users after reinstall?

Okay, I have asked Reddit 3x and Apple once and no one could answer this so I am coming to you guys. Please be the ones to answer this validly. Okay, details. Yubo remembers my phone after reinstall and I do not know how. I have tried the following:
Changed my IP Address using a VPN
Change my IDFA through reset identifier which I now know is pointless as since I had “limit ad tracking” on the output would have been an output value of numerous 0’s (though this some how got me unbanned from the “Instagram” app, idk how tho)
Changed my IDFV by...well reinstalling the app (Yubo is there only app so don’t ask about other apps from the vendor)
Change my iPhones name multiple times
Prevented the app from being backed up on Icloud then reinstalling
I also logged out of the Icloud prior to using the app for the first time after reinstall
And that’s about it. I am aware the app may recognize: my phone, ios version and hardware. However, none of that is exclusive to my phone. I have read people having the exact same model and phone so i doubt Yubo is remembering me through that. I have never met an app so smart before, but I know some of you have probably been screaming this entire time one thing I have missed so please tell me what i missed and a way to change it without resetting my phone.
My device: Iphone6s and IOS 11

Detect if user has installed app previously even if deleted

I wonder if somebody can come up with a solution for the following problem.
I have created an iOS app of which for the first x amount of days the unknown user (guest) will have access to the full version of the app.
Then after the "trial" period i want to then put them on the free version of the app which will be ad supported if they don't want to pay a fee.
one issue i can for see is that the user could simply delete the app and reinstall to then restart the trial period.
One solution i can possibly imagine is that a file is uploaded to a "secure" section of the users iCloud account and check against that?
Has anybody come up against this issue before and what was the best solution you discovered without the need of a registration signup?
Thanks
Thomas
Your iCloud solution should work. You can also consider storing a similar flag in the device keychain as that isn't cleared when the app is deleted. Note that the user can still restore the device or disable iCloud integration on the device to 'work around' these things, but that's relatively uncommon.

How to debug an iOS app that does not make it past launch for certain users?

I have hundreds of people using my app, but a handful are reporting that the app does not make it past the black launch screen (it immediately closes, before entering into my app). I'm using Crittercism but it's not even getting far enough to catch any exception, which makes it sound like a springboard / backboard problem.
Here's what I've asked the users to do:
Reinstall the app
Delete some apps (to free some space)
Restart the device
None of the above worked. I'm completely at a loss as to what's wrong. The app is in the AppStore and works fine for most users. Furthermore, I can't find anything unique about these users (they're using recent versions of iOS with fairly modern hardware).
Crittercism doesn't show anything, because after the crash - log will be send only at the next launch, so if user doesn't open your app anymore (or can't do it, because he has constant crash).
I advice your to try next ideas:
Do use use keychain or store smth there? It's not cleared after uninstall
Maybe your data is backed up in icloud
Did it begin with the new iOs version (9.0 for example)
Maybe it's some cache problem after installing one version on another,
Can it be the problem of different timezones
Can it be a crash with local settings
If you have feedback with users with crash - contact them and ask about device, iOs version and other
your have crash sections in your itunesconnect profile, maybe there you'll get some information

How to reinstall an app without losing NSUserDefaults?

I have an iOS game that saves game progress using NSUserDefaults. After the last update a user had a problem, the app was not working anymore on this device. The app doesn't have any problem, but for some reason an error occurred while downloading the app, not quite sure what happened.
The point is, the app must be deleted and reinstalled. Can this be done without erasing NSUserDefaults?
I tried syncing with iTunes here after deleting the app, even installing it again through iTunes but I was unable to restore the previous saved game on my test devices.
I guess the only way to reinstall the app is through an app update. When it comes out he will update and will not lose any data. Is this correct? Or is there any other way to do this?
I'm working to implement cloud syncing on the next update, so this problem should not be an issue again :). But right now, is there anything and I do to this user?
Cloud sync would be the solution. If you using your iPhone only once the app is deleted every thing related to it is gone with no easy way to retrieve it.
Or just store data that needs to be persistent in the keychain.
Restoring the device from an iTunes Backupd probably reinstalls the app and also keeps the NSUserDefaults, assuming they are included in the backup.
However, this needs to be done by the user ...
Some syncing option is the better solution on the long way.

Is data stored in NSUserDefaults persists through application updates and on application reinstallation (remove-install)?

It's important to my app, becuase I want to store app UDID there, and Apple recommends to create app specific UDID starting from iOS 5.0.
User defaults are persisted through updates but are not persisted through deleting and re-installing the app. At present, the keychain is persisted through deleting and re-installing the app, but it's not documented to be one way or the other, so relying on this behavior may be risky.
You could also write the value to the iCloud key/value store. That will be persisted across all installations of the app for that user and is kind of what it was designed for.
Generally no. In some cases however, especially if a user is installing a cracked version of your app, then yes, some user defaults may stay, due to the way that many users install cracked applications, which creates backups of the documents / library folders on uninstall.

Resources