External data storage lets you offload large binary data from being stored in the SQLite database without changing how you access that data from objects in the graph.
An example might be if you're creating a photo library. Rather than storing the actual photos as say BLOB data in SQLite, you can tell Core Data to transparently store it as an external file. It then basically stores the filename and some metadata in SQLite instead, keeping the SQLite database small without changing the Core Data API to access the data.
On iOS 12, binary data stored in Core Data with the External Storage option gets corrupted on every second save [2]
https://forums.raywenderlich.com/t/where-is-allows-external-...