bazelbuild / bazelbuild/rules_apple

apple_dynamic_framework_import does not work for standard macos frameworks

Open
#807 2 comments 2 reactions 0 assignees View on GitHub
P3
Dominant language
Starlark
Stars
593
Forks
334
Avg merge
16h 48m
Merged PRs (30d)
9

Description

Given a standard macos framework with the proper symlinks setup:

```
Something.framework
├── Something -> Versions/Current/Something
├── Headers -> Versions/Current/Headers
├── Modules -> Versions/Current/Modules
├── Resources -> Versions/Current/Resources
└── Versions
├── A
│ ├── Something
│ ├── Headers
│ │ ├── Something.h
│ ├── Modules
│ │ └── module.modulemap
│ └── Resources
│ ├── Info.plist
└── Current -> A
```

If I use this structure as the input to an apple_dynamic_framework_import via the framework_imports list of labels, I get code signing errors because the pipeline of moving these files around breaks the symlinks.

If I manually recreate the symlinks to satisfy code signing, I end up with a framework in the app bundle that is broken because the process of zipping and unzipping the directory drops the symlinks.

Am I missing something or is not possible to use these rules with macos frameworks? If not, would you be open to changes that add support?

Contributor guide

Open the contributing guide

Research direction

Start at the apple_dynamic_framework_import entry point and its framework_imports label list, then inspect how framework contents are moved and archived. Done means a standard macOS framework's symlinks survive code signing and app-bundle packaging without manual recreation.

Written by the indexing model from the issue text.

Assessment

Tech stack
macos
Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.