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

Add support for the dSYM for a prebuilt binary. #1698

Open
alloy opened this Issue Dec 19, 2013 · 20 comments

Comments

Projects
None yet
@alloy
Member

alloy commented Dec 19, 2013

When a prebuilt binary has been stripped of its debug symbols, adding this will still allow for a better debugging experience during development.

From #1696:

LLDB supports remapping of dSYM source paths via embedded UUID property lists: http://lldb.llvm.org/symbols.html

@alloy

This comment has been minimized.

Member

alloy commented Dec 19, 2013

Regarding how to specify this in the spec, I’m thinking we could do something like:

s.vendored_library = { :name => 'PLCrashReporter', :dSYM => 'PLCrashReporter.dSYM' }

And possibly default to NAME.dSYM if it exists? In which case just s.vendored_library = 'PLCrashReporter' would work as well.

/cc @irrationalfab

@fabiopelosin

This comment has been minimized.

Member

fabiopelosin commented Dec 19, 2013

The default option sounds great!

@CocoaPodsBot

This comment has been minimized.

CocoaPodsBot commented Mar 29, 2014

Issue has been confirmed by @joelparsons

@alloy alloy assigned CocoaPodsBot and unassigned CocoaPodsBot Mar 29, 2014

@CocoaPodsBot

This comment has been minimized.

CocoaPodsBot commented Mar 29, 2014

Issue has been confirmed by @davelyon

@segiddins

This comment has been minimized.

Member

segiddins commented Dec 6, 2014

Will this still be necessary given that iOS now supports frameworks?

@kylef

This comment has been minimized.

Contributor

kylef commented Sep 26, 2015

@segiddins Yes, I think a framework should behave the same way.

s.vendored_framework = { :name => 'Stencil.framework', :dSYM => 'Stencil.framework.dSYM' }
├── Stencil.framework
│   ├── Headers -> Versions/Current/Headers
│   ├── Modules -> Versions/Current/Modules
│   ├── Resources -> Versions/Current/Resources
│   ├── Stencil -> Versions/Current/Stencil
│   └── Versions
│       ├── A
│       │   ├── Headers
│       │   │   ├── Stencil-Swift.h
│       │   │   └── Stencil.h
│       │   ├── Modules
│       │   │   ├── Stencil.swiftmodule
│       │   │   │   ├── x86_64.swiftdoc
│       │   │   │   └── x86_64.swiftmodule
│       │   │   └── module.modulemap
│       │   ├── Resources
│       │   │   └── Info.plist
│       │   └── Stencil
│       └── Current -> A
└── Stencil.framework.dSYM
    └── Contents
        ├── Info.plist
        └── Resources
            └── DWARF
                └── Stencil

15 directories, 10 files
@segiddins

This comment has been minimized.

Member

segiddins commented Sep 26, 2015

@kylef is there no place in the .framework itself to put a dSYM?

@kylef

This comment has been minimized.

Contributor

kylef commented Sep 26, 2015

I'm not sure, but this is how Xcode generates it, separately.

@ulhas

This comment has been minimized.

ulhas commented Jan 8, 2016

+1 for this issue. Would be awesome for CocoaPods to have support for dsyms for a framework.

@segiddins

This comment has been minimized.

Member

segiddins commented Mar 11, 2016

@ulhas the quickest way to get a feature like this into CocoaPods would be to submit a PR for it 🚀

@AlexeyDemedetskiy

This comment has been minimized.

AlexeyDemedetskiy commented Jul 4, 2016

Basically dSYM and .bcsymbolmap support is a copy 3 files to Products directory. Is there any hook where this files can be specified? Like resources. Script example

@dnkoutso

This comment has been minimized.

Contributor

dnkoutso commented Mar 7, 2017

I know this is an old issue but we just hit this case and worth adding support. The proposed API seems good.

@piotr-tobolski

This comment has been minimized.

piotr-tobolski commented Apr 20, 2017

Can this be closed? #6536 was merged

I hope this will be released soon 👍

@dnkoutso

This comment has been minimized.

Contributor

dnkoutso commented Apr 20, 2017

Not sure if it should. The original issue was discussing adding a DSL option. Let's wait and see how the current implementation that assumes the same name goes.

@falcon283

This comment has been minimized.

falcon283 commented May 29, 2017

I'm really looking forward to have this feature.
I'm planning to use vendored SDK for the project I'm working on, and the ability to just link them instead of instead of building them every time sounds awesome but I really need to wrap up all the dSYM into the final application dSYM in order to easily track down crashes in my App and frameworks too.

Is this intended for this purpose? Is there any planned release date for this?

@dnkoutso

This comment has been minimized.

Contributor

dnkoutso commented May 29, 2017

If you use bundler you can lock CocoaPods to a specific SHA.

This should ship this week or next with 1.3.0.beta.1.

@colinsf

This comment has been minimized.

colinsf commented Jul 24, 2017

@dnkoutso is there usage documentation for #6536 ? maybe an example .podspec?

@dnkoutso

This comment has been minimized.

Contributor

dnkoutso commented Jul 24, 2017

No, there is no DSL added for it. If you attach a dSYM next to the .framework then it will automatically be detected and processed by CocoaPods.

@dnkoutso

This comment has been minimized.

Contributor

dnkoutso commented Jan 29, 2018

For anyone who wants to follow progress here, CocoaPods now supports vendored dSYM support but only if the name of the dSYM matches that of the vendored framework.

This issue will remain open to extend the DSL to allow pod authors to specify a specific/different name of a dSYM file.

@mknippen

This comment has been minimized.

mknippen commented May 16, 2018

Having this issue now. CocoaPods does appear to copy over the DSYM files when following this plan, but it's not moving to Apple when using Bitcode. Can anyone confirm?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment