-
Notifications
You must be signed in to change notification settings - Fork 2.7k
BCSymbolMaps in vendored xcframework generate invalid app archive #9681
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Great bug report! Not sure for the actual fix here would appreciate any further investigation on what we can change here. I can make a 1.9.2 release with this. |
I was thinking this could be avoided by supporting an implicit |
great. I can guide you through the PR for whatever it needs to land. |
One of the nice things about not using an umbrella If the issue is that we are leaving the |
I agree about the umbrella directories, it just seemed to be the convention. That said, it seems that when you "drag in" an XCFramework with the individual frameworks containing Perhaps that can be the officially supported configuration? Example:
edit: it would be really nice to be able to reuse the exact same |
Heh, another data point - Xcode (11.4) does not check (much? at all?) for validity or relevance of the .bcsymbolmap or .dSYM when archiving an app consuming an xcframework with the above structure. I dropped a simulator dSYM in the device framework and it copied over to the resulting archive. |
Yep, this is why CocoaPods has to manually strip dSYMs of invalid architectures. Injecting dSYMs from vendored libraries isn't something Xcode really "supports", it's something CocoaPods provides as a value-add |
We are also seeing this issue with our customers integrating PSPDFKit. We believe it worked correctly in 1.9.0 (or a beta). |
I’ll take a look at this during the weekend |
Found some time for this, PR is up #9888 |
Report
What did you do?
CocoaPods 1.9.1
Xcode 11.3.1 and 11.4
The goal is to create a vendored xcframework pod with bundled dSYM and bitcode symbol maps. When the pod is consumed, archiving should pick up the dSYMs and the bitcode symbol maps.
BCSymbolMaps
directory within the platform framework as apparently required* by Add support for XCFrameworks #9334pod install
into a new project* Like so:
What did you expect to happen?
What happened instead?
Archiving completed but the Organizer window is not shown. Attempting to open the archive from Finder results in an alert with "The archive could not be installed. The archive may be corrupt or unreadable." It seems the archive only contains
BCSymbolMaps/
,dSYMs/
, andProducts/
. It is missing anInfo.plist
as well asSCMBlueprint/
andSwiftSupport/
Also I'm noticing that apps built with this pod have that whole
BCSymbolMaps/
directory included when embedding the framework.Debugging steps taken
Removing the
BCSymbolMaps
directory allows the archive to complete successfully, but of course then the bitcode symbol maps from the framework are not in the resulting archive.It seems that having that nonstandard
BCSymbolMaps
directory in the framework itself even just inCONFIGURATION_BUILD_DIR
is incompatible with some part of the archiving process. It's not enough to simply strip this out when embedding the framework, it must be done in the artifacts script (or there just needs to be a different way to include these other than modifying a framework bundle).As a quick hack, modifying the Prepare Artifacts script like the following seems to be a workaround. I get a successful archive and all the expected symbol maps are there.
CocoaPods Environment
Stack
Project that demonstrates the issue
In progress. The current library is not suitable for public release.
The text was updated successfully, but these errors were encountered: