Can I reinstall a single iOS app without losing its data?

Solution 1:

While I never tried it myself, in theory you could use something like PhoneDisk to open the app's private folder and copy all the content to your computer. Then, after deleting and reinstalling the app, you should be able to copy the content back.

Solution 2:

Xcode can reinstall an app. Go to Window -> Devices and click on your device on the left. You can tap the '+' button and browse for an app, or just drag any app you want onto the 'Installed apps' section. You can even drag an app icon straight from iTunes. The app will be reinstalled, over the old one, without erasing any data, documents, caches, etc.

Solution 3:

Reinstalling the application will almost certainly not solve your problem. iOS applications are digitally signed. If even a single byte is changed, iOS will refuse to run it. What you will be reinstalling will be identical to what you currently have installed.

The problem is far more likely to be with your data or the interpretation of it. There's probably a bug in the application that has either deleted your data or fails to recognise it. You should contact the developers to try to diagnose what is happening here.

You can get your data off your device by using a tool like iExplorer, or, if the application has enabled it, iTunes File Sharing (which is available in the Apps tab for your device in iTunes).

Solution 4:

As Hui explained, an app can be reinstalled without the loss of it's data by deleting or renaming the iTunesMetadata.plist file in it's directory.

Terminal works as well as iFile for this purpose, but it's tiny and free. A Terminal command to accomplish this for Facebook:

rm $(dirname $(find -name Facebook.app))/iTunesMetadata.plist

I've just had to reinstall after two failed updates and I've had to do this fairly often in the past, everyone suggesting that doing so is unlikely to help with whatever issue timothymh is experiencing might have terrific net connections. No, iOS won't allow the failed installs to run, but it won't let you retry AND keep your data either.