Repository navigation
Conversation
The broadcast start dance located the confirmation sheet's button by its
English label ("Start Broadcast", with a "Start" prefix fallback) and the
stale "Screen Broadcasting" alert by "OK" / "Go to Application". On devices
running another system language (e.g. German: "Übertragung starten") the
confirm button was never found and the start timed out.
Resolve these labels at runtime from ReplayKit's own localization tables,
covering every localization it ships, so matching no longer depends on the
system language. Request-supplied label arguments are now matched in
addition to the system labels instead of replacing them.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
niko-droidrun
approved these changes
Sep 24, 2026
Timo972
deleted the
timo/dro-3151-auto-broadcast-start-doesnt-work-on-non-english-devices
branch
September 24, 2026 21:09
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
/broadcast/startfinds the system confirmation sheet's button by its English label ("Start Broadcast", falling back to any button whose label begins with"Start"). It finds the stale "Screen Broadcasting" alert by"OK"/"Go to Application". When the device's system language isn't English, neither lookup matches. In German, for example, the button reads "Übertragung starten". The start then times out, unless the caller passes the localized labels explicitly.Fix
ReplayKit ships these strings in every language iOS supports:
CONTROL_CENTER_START_BROADCASTBROADCAST_FAILED_ALERT_OK_BUTTONBROADCAST_FAILED_ALERT_GO_TO_APP_BUTTON+[FBBroadcastManager replayKitLabelsForKey:]reads a key from ReplayKit'sLocalizable.stringsin all of its localizations. The device's preferred localizations come first. A.loctablelayout is also handled. The result is cached per key.label IN %@query per app, instead of one existence probe per label. The English"Start"prefix match stays as a last resort.confirmButtonLabels,dismissButtonLabelsandgoToApplicationButtonLabelsare now matched in addition to the system labels instead of replacing them. Existing callers keep working.docs/broadcast-extension.mdis updated to match.Testing
FBBroadcastLabelsTests(UnitTests, iOS Simulator) checks that the English, German, Chinese and Turkish labels resolve, and that an unknown key yields an empty list. All three tests pass.WebDriverAgentLibbuilds forgeneric/platform=iOSwith no new warnings.🤖 Generated with Claude Code