I work on an SDK, and one of the ways we distribute it is as a pre-compiled static XCFramework.
As far as I know, it’s the nature of a static framework to not contain symbols since the framework will be embedded in the final app binary, and the symbols should then be generated.
However, when testing the "Validate" function of the Xcode 16 deployment process, our users are receiving a warning that says the framework does not contain symbols.
Is my assumption about static frameworks and symbols incorrect? Could this be a bug in Xcode 16? Should we modify something in our framework to inform Xcode that symbols are not needed?
This is a new warning in Xcode 16 where if you're missing a dSYM, Xcode lets you know in case you aren't expecting that — this is to reduce scenarios where you won't are able to fully symbolicating frames coming from your app's code in crash reports. In some cases, you may not have a dSYM, such as a closed source library from a vendor, and in those cases, the warning is safe to discard.
For those developing or using libraries that are statically linked, I was not able to reproduce this warning using either the example XCFramework attached in the bug reports noted in this thread, or by doing some simple testing with libraries that I know are popular in the iOS developer community and also statically linked. For the purposes of these tests, I'm creating a brand new Xcode project, adding the library through a Swift package, and making at least function call into the library so that it doesn't appear as dead code that can be eliminated as a release optimization. For these tests, the Xcode archive contains only the dSYM for the app, as the library code coming in from the XCFramework is merged into the main app's binary at link time, rather than it remaining as a separate dynamic library in the app, which would have a separate dSYM file. If you have a scenario with a straight forward test project set up using a statically linked library in an XCFramework that still unexpectedly gives you this warning about a missing dSYM file when uploaded, I'd like to see that project — please feel free to share a link to it so I can look at it further.
I also did some tests with some libraries popular among the iOS community that are dynamically linked and closed source (with no dSYM provided), and in those circumstances, I did receive the warning, but that warning is expected in that situation.
—Ed Ford, DTS Engineer