You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Introduce symbol stripping build task for HelloiOS sample app #80977
When building HelloiOS application the process uses dotnet SDK and local build tasks (mainly developed for testing purposes) which do not fully prepare the application for deployment. For example, when deploying an iOS application, debug symbols need to be extracted into a separate dSYM folder/file, then stripped away from the main binary, after which the binary needs to be resigned.
In the build process, the -S parameter only strips out debug information and not the symbol table. If strip is called without parameters, it further brings down the size on disk, but the app fails at the runtime. To fix this it is required to collect all the symbols needed during runtime and passing them to the strip tool via -i -s <symbols_to_keep>.
Tasks
Update build task in HelloiOS app to collect all symbols needed during runtime
Update build task in HelloiOS app to strip symbols by using -i -s <symbols_to_keep>
Preserve debug symbols by extracting them from the binary with dsymutil
Test and integrate the update into the perf dashboard
[ ] Update build task in HelloiOS app to collect all symbols needed during runtime
For start, I would suggest stripping out all the symbols (strip with no parameters) from the application and try to run it on a device, to get a sense of which symbols need to be preserved. For example, Xamarin collects all P/Invoke symbols used in a program, in a custom linker step, and generates a file (referred above as: symbols_to_keep) which is used in symbol stripping.
Additionally, we might want to preserve debug symbols by extracting them from the binary with dsymutil to be made available for later resymbolication.
I tried to invoke strip $(AppBundlePath)/$(AppName) without any parameters and I am able to run the application on device and a simulator. I might be doing something wrong.
Additionally, we might want to preserve debug symbols by extracting them from the binary with dsymutil to be made available for later resymbolication.
It make sense to have it aligned with Xamarin build. I will add it to the list of tasks.
Activity
ivanpovazan commentedon Jan 23, 2023
For start, I would suggest stripping out all the symbols (strip with no parameters) from the application and try to run it on a device, to get a sense of which symbols need to be preserved. For example, Xamarin collects all P/Invoke symbols used in a program, in a custom linker step, and generates a file (referred above as:
symbols_to_keep) which is used in symbol stripping.Additionally, we might want to preserve debug symbols by extracting them from the binary with
dsymutilto be made available for later resymbolication.kotlarmilos commentedon Jan 23, 2023
I tried to invoke
strip $(AppBundlePath)/$(AppName)without any parameters and I am able to run the application on device and a simulator. I might be doing something wrong.It make sense to have it aligned with Xamarin build. I will add it to the list of tasks.