In iOS files of bundle in .app directory are not available for writing. But some application (for example Plants vs Zombies 2), always updates by passing AppStore (screenshot below).
What are the approaches do you know to implement it? How they do it?
Screenshot "Plants vs Zombies 2" updating:
They only download assets. You are not allowed to download code to run on your device, therefore they leave the update content assets on the server so that you can download those images to your device through https requests.
These images are then saved in a documents or some other directory where the app can freely access it.
The app isn't truly updating itself, it's just downloading new assets for the game.
Those apps don't update "themselves". They update data that they then use to run (like level designs, artworks, sounds...). But the core of the app can't change without going through the app store.