iOS app local storage persistency when updating app (Xamarin -> Flutter)

Currently in our published version of iOS app (built in Xamarin.Forms) we are storing some local data (settings etc.) as json and other files in the device. We are planning to do a major update when we re-create the whole app using Flutter.

My question is:

  1. As long as bundle ID will be the same for the Flutter build as was for the Xamarin.Forms build and the app version of the Flutter build will be higher (than the previously one) will the update in the App Store will act just as a regular update of the app (so the user will theoretically even not notice that the newer version was built with different approach)?

  2. Will the update keep or delete the local files stored by the previous version of the app? Even that the older version is build of the Xamarin.Forms and the newer one will be build of the Flutter? Of course the Flutter version will direct to same paths and files as the previous Xamarin version.

The files are stored in paths: /var/mobile/Containers/Data/Application/<uuid>/Library/MyApp/<all different paths and files> e.g.:

.../Library/MyApp/settings.json

.../Library/MyApp/Media/caches.json

.../Library/MyApp/Media/Settings/settings.json

... etc.

Some settings are also stored in .plist NSUserDefaults.StandardUserDefaults as key/value pairs.

Is there any official documentation about those 2 my questions? So far I have only found some info about bundle ID in general but no article directly answered me those 2 questions (mentioned above).

Accepted Reply

The final answers to these questions will depend on your development environment. However, I can answer them from the Apple perspective. Namely:

  • Neither iOS not the App Store care which third-party tools and libraries you use to build your app.

  • If your new app has the same bundle ID as your original app, we consider it to be the same app.

  • iOS will preserve files in your app’s container, including the user defaults database, when you update your app.

However, there are still many ways that your third-party resources could complicate this path.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

  • Thank you for your answer, this is exactly what I wanted to here! :)

Add a Comment

Replies

Please post all of your questions on the respective Microsoft and Google forums for assistance on their APIs. These are not Apple products. They're not developed by Apple.

  • My questions are about iOS app upgrade, iOS local storage and App Store behaviour. It is not about Xamarin or Flutter API.

Add a Comment

The final answers to these questions will depend on your development environment. However, I can answer them from the Apple perspective. Namely:

  • Neither iOS not the App Store care which third-party tools and libraries you use to build your app.

  • If your new app has the same bundle ID as your original app, we consider it to be the same app.

  • iOS will preserve files in your app’s container, including the user defaults database, when you update your app.

However, there are still many ways that your third-party resources could complicate this path.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

  • Thank you for your answer, this is exactly what I wanted to here! :)

Add a Comment