Repository navigation
Remove the background audio keep-alive (App Review 2.5.4) - #23
Merged
Merged
Conversation
App Review rejected 1.0 (build 4) because the app declares the audio background mode but nothing audible plays in the background. That is how the keep-alive worked: it played silence through AVAudioEngine so iPadOS wouldn't suspend the app during a game's queue or stream. - Remove UIBackgroundModes: [audio], BackgroundKeepAlive and BackgroundSessionKeeper, and the "Keep game running in background" setting. - Leaving the app now always pauses media, as the setting's Off did. - StreamPhase moves to ServiceProfile.swift; switching services still asks first when a game is running, and the health checks still read the phase. - docs/background-keep-alive.md records why it existed, how it worked and options for bringing it back in an allowed form; README updated. Build number stays 5, from the restore PR this is stacked on. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Stacked on #22 (which brings back build 5). Merge #22 first; GitHub then retargets this PR to
main.App Review rejected 1.0 (build 4) under guideline 2.5.4: the app declares the
audiobackground mode, but the reviewer heard nothing in the background. That's how the keep-alive worked:BackgroundKeepAliveplayed silence throughAVAudioEngineso iPadOS wouldn't suspend the app while a GeForce NOW game was queued, loading or streaming. Keeping it would put every later review at risk, so it goes.Changes
UIBackgroundModes: [audio]fromproject.yml.BackgroundKeepAlive.swiftandBackgroundSessionKeeper.swift, and the ⋯ ▸ Settings… ▸ "Keep game running in background" picker and itsUserDefaultssetting.pauseAllMediaPlayback(), which is what the setting's Off did.StreamPhasemoves toServiceProfile.swift, andBrowserViewController.sessionPhasereads it directly. Switching services still asks first while a game runs, and the health checks still read the phase.docs/background-keep-alive.md: why it existed, how it worked, what testing showed, and options for bringing it back in a form App Review accepts (audible-only, Picture in Picture, faster resume). The README now points there.Effect for users
Switching away from a running GeForce NOW game can now end the session after a few seconds, since iPadOS suspends the app. It hasn't yet been measured on a device how long GeForce NOW holds a session after that.
Tests
tools/test.sh: 100 Swift tests pass, no Swift warnings; polyfill and health-check tests pass. The generatedInfo.plisthas noUIBackgroundModes.🤖 Generated with Claude Code