bazelbuild / bazelbuild/rules_apple
Question about code signing Mac frameworks that include dynamic libraries
- Dominant language
- Starlark
- Stars
- 593
- Forks
- 334
- Avg merge
- 16h 48m
- Merged PRs (30d)
- 9
Description
This is more of a question than a bug report: we're using a `apple_dynamic_framework_import` to bring in the Electron framework (not a very common thing to do, I'll admit). This framework includes more than just a dynamic library, there are a number of other libraries:
```
/Applications/Dropbox.app/Contents/Frameworks/Electron Framework.framework
├── Electron Framework -> Versions/Current/Electron Framework
├── Libraries -> Versions/Current/Libraries
├── Resources -> Versions/Current/Resources
└── Versions
├── A
│ ├── Electron Framework
│ ├── Libraries
│ │ ├── libEGL.dylib
│ │ ├── libGLESv2.dylib
│ │ ├── libffmpeg.dylib
│ │ ├── libswiftshader_libEGL.dylib
│ │ ├── libswiftshader_libGLESv2.dylib
│ │ ├── libvk_swiftshader.dylib
│ │ └── vk_swiftshader_icd.json
[...]
```
I've noticed that when the imported framework is bundled in the application, these libraries are not re-signed like the main library would be. Is this technically an oversight in importing frameworks? I suspect the same issue applies to nested frameworks?
Contributor guide
Research direction
Start at the apple_dynamic_framework_import rule and trace how an imported framework is bundled into the application. Reproduce the Electron Framework.framework layout shown in the issue, then inspect whether files under its Libraries directory and nested frameworks are included in signing. Done means confirming the expected signing behavior and documenting or fixing the identified gap.
Written by the indexing model from the issue text.
Assessment
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100