Skip to content

Remove non-public buttonPressed: selector from broadcast picker activation - #1138

Open
hiroshihorie wants to merge 1 commit into
mainfrom
hiroshi/broadcast-picker-private-selector
Open

Remove non-public buttonPressed: selector from broadcast picker activation#1138
hiroshihorie wants to merge 1 commit into
mainfrom
hiroshi/broadcast-picker-private-selector

Conversation

@hiroshihorie

Copy link
Copy Markdown
Member

Summary

Apple's automated App Review flags the literal buttonPressed: selector string in application binaries (ITMS-90338 / Guideline 2.5.1) and blocks App Store submissions. Since the plugin compiles ios/Classes/** into every app, any iOS app using livekit_client is exposed — even if it never uses screen sharing or ReplayKit.

BroadcastManager.showPicker(for:) constructed and performed the private selector to programmatically activate the system broadcast picker (reached via setScreenSharebroadcastRequestActivation method channel). It now activates the picker using only public API: locate the picker's UIButton subview and fire it via sendActions(for: .touchUpInside). If the button is ever not found (e.g. a future OS changes the view hierarchy), a warning is logged instead of silently no-opping.

No API changes; runtime behavior is identical.

Verification

  • rg buttonPressed ios/ macos/ returns no matches, so the selector string no longer reaches downstream binaries
  • swiftc -typecheck against the iOS simulator SDK passes for the changed file and its dependencies

…ation

Apple's automated App Review flags the literal buttonPressed: selector
string in application binaries (ITMS-90338 / Guideline 2.5.1), blocking
submissions for any app that includes the plugin, even without using
screen sharing. Replace the private-selector invocation with public API:
locate the picker's UIButton subview and fire it via sendActions(for:).
@hiroshihorie
hiroshihorie marked this pull request as ready for review July 27, 2026 19:18

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant