Exported Symbols Metadata
In an iOS binary, exported symbols refer to identifiers, such as functions or variables, that are intended for external use. These symbols are typically included in frameworks to facilitate linking or dynamic usage by external components. However, within the app binary itself, these exported symbols serve no practical purpose, as no other app will link against or use them directly.
How to remove them
Since Xcode 16, the build process no longer includes the _main
symbols into the app, this means that if you use our old suggested solution (-Wl, -exported_symbols_list,/dev/null
), the app will crash on launch.
The recommended solution is:
- Create a new text file in your project
- Add:
-
_main
- If you are using symbols dynamically (using
dlsym()
like Firebase Crashlytics does), you might need to keep some symbols in your app. - Add
__mh_execute_header
if you use Crashlytics.
- If you are using symbols dynamically (using
- Add add its path to
Exported Symbols File
setting in Xcode:
Updated 3 months ago