bazelbuild / bazelbuild/rules_apple

Framework dependencies aren't transitive through `swift_library` for `ios_ui_test`

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

Description

When an `ios_ui_test` targer depends (via `deps`) on a `swift_library` that itself depends on an `ios_framework` (or any target providing `AppleDynamicFrameworkInfo`), the framework is not transitively passed to the UI test's link action. The linker then fails with `Undefiined symbols` for references originating in the transitively-linked `swift_library`'s compiled code.

For comparison, `CcInfo.linking_context` (used for static libraries) is transitively propagated correctly by `ios_ui_test`. Only dynamic framework information is dropped.

Is there a design constraint that intentionally excludes this?

Contributor guide

Open the contributing guide

Research direction

No source file or test is named. Start at the ios_ui_test deps and link-action entry points, then trace how AppleDynamicFrameworkInfo is propagated through swift_library and compare it with CcInfo.linking_context. Done means the transitively provided framework reaches the UI test link action and the reported undefined symbols are resolved.

Written by the indexing model from the issue text.

Assessment

Tech stack
swift
Domain
build-system, mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.