I'm working on a SwiftUI-based iPhone / iPad app and when I connect (via USB cable) my iPad to my Mac Mini (development machine where Xcode is running) it will sometimes give me the message shown below when I run the app from Xcode (in debug mode):

What is Xcode doing when it says it is "copying shared cache symbols from <connected device>"?
Why does it copy these from the ipad? It seems like it would copy these from Xcode or my connected Mac Mini (development machine where Xcode is running).
Also, I'm guessing it is sending those symbols across the USB cable, right?
Are these debug symbols?
These are debug symbols of system libraries.
Each time you upgraded the system of your device, Xcode needs to copy these symbols for debugging. If a system library caused crash, Xcode can generate symbolicated backtrack by them. After a software upgrade, some system libraries were changed, so Xcode needs to copy new symbols.
I found a article(Chinese simplified, not from Apple) introduced more about shared cache, I made a summary about it:
After iOS 3.1, all system dynamic libraries are combined into a single file called dyld_shared_cache for performance.
By the way, the symbols Xcode copied are a little large, and they won't be removed automatically. If you upgraded your system and copied new shared cache symbols, you can remove the old one here: Settings -> General -> Storage -> "Info" icon of "Developer" item.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With