← Back to EQfluency Beta
Apple Music testers
First-class support
Apple Music is the service we build against first — every shipping feature works here. Build 224 is the final shape before App Store submission. Help us catch what regressed.
Join the TestFlight →
Verify build 246 (paywall cleanup + redeem-code button)
Two small but visible changes on the Premium paywall.
- Settings → Premium → tap the Pro pill. Benefits list should show "Everything in Plus +" with ONLY "Remote Multiplayer" as the Pro-specific row (the previous "Custom Themes" row was removed — feature not on roadmap).
- New "Have a code? Redeem it here." button appears between Subscribe and Restore. Tap it → Apple's offer-code redemption sheet appears. (Codes are not generated yet — that path opens once Apple approves the IAPs alongside the app.)
Verify build 244 (Musical Hangman registers in Play Stats + concert push cooldown)
Two fixes — one client, one backend.
- Hangman → Play Stats wiring: Play → Games → Musical Hangman. Finish a round (win or lose). Open Play → Profile. The stats card should now show a Musical Hangman entry under "By Game" with the round counted as 1W or 1L; the Overall + Solo rails update too. Before 244 Hangman was missing from the game enum entirely and never reached the stats pipeline.
- Game History: PlayLeaderboard → toolbar clock icon. Hangman rounds appear with a
? app-icon and "🏆 you win" / "No winner" subtitle. Tap a row → standings detail.
- Concert push notifications (backend — no app change needed but verify if you have artists subscribed): rolling tour announcements no longer generate multiple pushes for the same artist within a 7-day window. Push title pivoted to "🎤 X is on tour · N dates". Tapping the push lands on the per-artist Shows page (location filter right there).
Verify build 243 (Play Stats split by Solo / Multiplayer with W/L/Win%)
Play → Profile stats card was rebuilt. Storage was wiped on launch — the aggregate Leaderboard reads "No wins yet" intentionally on first launch of 243.
- Play any game solo (1 player). Open Play → Profile. The stats card should show an Overall rail (W / L / %), a Solo rail with matching numbers, and a per-game card under "By Game" with no Solo/Multi sub-rows (only one mode has data).
- Play a multi-player session (2+ devices paired). Profile should now also show a Multiplayer rail in the overall summary, and the per-game card for that game should expand with Solo + Multi sub-rows below its header.
- Sanity-check every game (Bingo, Album Reveal, Mystery DJ, Music Video, TV Themes, Team Quiz, Mixtape Trivia) — finishing a session should add a per-game card with the right icon + label.
- A "win" is being the session's top non-zero scorer. A "loss" is appearing in the scoreboard without winning (includes the 0-0 case where nobody scored).
- Reset leaderboard from the Leaderboard toolbar → confirm. Profile stats card should snap back to "No sessions yet".
Verify build 242 (Share text auto-appends #ArtistName #EQfluency)
Every share path now appends the artist hashtag + app hashtag to the bottom of the body so social platforms pick them up as searchable tags.
- Pulse → tap any Feed article → tap Share → tap any social row chip (Twitter, Threads, Mastodon, Bluesky, Instagram). The composer should open with the headline + URL + "Shared via EQfluency", a blank line, then a final line reading
#ArtistName #EQfluency. Artist hashtag preserves capitalization (Taylor Swift → #TaylorSwift, AC/DC → #ACDC, Twenty One Pilots → #TwentyOnePilots).
- SMS / email / Copy paths on the same Article Share Sheet should include the same hashtag tail — so copy-pasting into any text field carries them.
- Now Playing → Share song or album: tail should read
#ArtistName #EQfluency.
- Shows → tap a concert → Share: same tail with the artist's hashtag.
- Playlist share + Game results final-score share: tail should be just
#EQfluency (no per-artist context).
- "Shared via EQfluency" attribution line still appears above the hashtag line (unchanged from 241).
Verify build 241 (Official Twitter/Instagram/YouTube/Threads/Vimeo/TikTok links per artist)
Drill into any well-known artist.
- A new "Official accounts" section should appear above the existing hashtag rows, with direct links to the artist's verified Twitter (X), Instagram, YouTube, Threads, Vimeo, and TikTok pages. Sourced from Wikidata (cached server-side for 30 days).
- Tap a row → opens the native app at the artist's page if installed, otherwise opens the web URL in Safari.
- Existing hashtag rows for Instagram + TikTok are still there, now labeled "See what fans are saying" when the new Official accounts section is present.
- Drill into an obscure / manually-added artist that isn't in Wikidata: only the hashtag rows should appear (header reads "Social", same as before).
- Each tap fires a typed UsageTracker event (one per platform) so the dashboard can rank service popularity.
Verify build 240 (Hangman hint reliability + 15s sample cap)
Two field-reported bugs from 239 + a spec change.
- Empty first hint fix: previously, an artist with no genre metadata would render the hint area blank if you tapped "Get a Hint" before the iTunes lookup finished. Now shows "Looking up hint…" while it resolves, then updates to a real song or album title.
- Stuck "Loading…" sample fix: iTunes Search default timeout was 60s, so a slow network parked the audio sample button on "Loading…" effectively forever. Switched to an explicit 8s timeout. The button now always lands at either "Playing 15s…" or "No Sample Found".
- 15-second sample cap: audio preview now stops after 15 seconds (was full ~30s preview).
Verify build 239 (Hangman hints work without Apple Music)
Musical Hangman hints switched from MusicKit to the public iTunes Search API so they work for every tester regardless of which music service is connected.
- Audio sample at 4 wrong now plays the full ~30s iTunes preview instead of capping at 10s. Stops at the natural clip end.
- Apple Music tester check: no regression, hints behave the same as 238 (genre first, then title).
- Spotify / YT-Music-only tester check: previously "Hear Sample" always ended at "No Sample Found" because the MusicKit fetch needed Apple Music auth. Now it should play.
Verify build 238 (Hangman hint: real titles, not letter counts)
Play → Games → Musical Hangman.
- The text hint (after 3 wrong) used to fall back to "X letters, Y words" when there was no genre. Replaced with an async Apple Music catalog lookup that surfaces one of the artist's top song or album titles — "One of their songs: Title".
- Genre hint still comes first when available.
- If both song and album lookups miss, hint reads "(no hint available for this artist)" — the button still works.
- Hit Next Artist quickly mid-round and verify the new round's hint isn't polluted by a pending lookup from the previous artist.
Verify build 237 (gray out notification toggles when iOS push is off)
Two verification paths — flip iOS Settings → Notifications → EQfluency to test both states.
- Push DENIED at iOS level: Pulse → Artists list. Per-row Shows / Releases / Alerts icons should be very dim and refuse taps; News icon stays normal. Bulk row at top: Shows / Releases / Alerts buttons same treatment.
- Drill into an artist: the "Notifications for X" section's Releases + Shows toggle rows look grayed out; News stays interactive. Footer text changes to explain why + offers an "Open iOS Settings" button.
- Push ALLOWED: no regression — toggles work normally, footer reads the original explainer.
- Live refresh: with EQfluency open, flip the iOS Settings toggle. Return to EQfluency. The gray-out state should update without an app relaunch (it refreshes on willEnterForeground).
Verify build 236 (Hangman: empty-state fix + opt-in hints)
Three Musical Hangman changes.
- Bug fix: Play → Games → Musical Hangman, with no Apple Music library, used to drop into a broken game (empty word, every tap counted as wrong, "Game Over — It was:"). Now you get a "No artists to guess" empty state with a Close button.
- Get a Hint button appears after 3 wrong guesses (was 2). Tap → genre or letter-count revealed. Opt-in, not auto.
- Hear Sample button appears after 4 wrong (2 lives left). Tap → 10-second clip of one of the artist's top songs plays via Apple Music preview. Button cycles: Hear Sample → Loading → Playing 10s → Sample Played.
- Closing the game mid-sample stops audio cleanly. Starting a new round resets both hint states.
Verify build 235 (paywall tier toggle)
Settings → Premium — the paywall now leads with a tier picker.
- Top: Plus / Pro pill toggle. Default Plus. Tapping Pro animates the background to brandSecondary and updates the benefits list.
- Plus shows 4 benefits (No Ads · Unlimited Artists · Smart Sharing · Concert Alerts) + 2 plan cards ($2.99/mo and $19.99/yr).
- Pro shows "Everything in Plus +" with Remote Multiplayer + Custom Themes called out, then the 4 Plus features, + 2 plan cards ($5.99/mo, $44.99/yr).
- The Annual card has a SAVE X% badge computed from the live prices (44% Plus / 37% Pro at current prices).
- Subscribe button reads "Subscribe — $X.YY" with a gradient matching the selected tier. Don't actually buy — sandbox/USA-only records.
- Each plan card subtitle reads "After 1-week free trial, billed monthly / once per year".
Verify build 234 (Premium plans load)
Settings → Premium (paywall sheet).
- All 4 plans should resolve with prices: Plus $2.99/mo · $19.99/yr · Pro $5.99/mo · $44.99/yr, each offering a 1-week free trial.
- Before 234, Swift was still requesting the pre-rebrand `socialsound_*` product IDs which don't exist in ASC under the LLC team, so the paywall would show empty / loading forever.
- Don't actually complete a purchase — these are sandbox/USA-only test records.
Verify build 233 (Anonymous Analytics sheet readable)
Settings → Pulse → Data & Privacy → tap "Anonymous Analytics".
- The opt-in sheet should render on a deep purple-tinted dark background with readable white text. Before 233 the sheet body fell back to the system white surface while the foreground was forced light — the title, subtitle, privacy callouts, and "Not Now" toolbar button were all invisible (issue #56).
- Easiest way to confirm: set your iPhone to LIGHT MODE before opening the sheet.
- No regression: Settings → Premium (paywall sheet) was already fixed in earlier builds — it should look the same as before.
Verify build 232 (return to last tab on relaunch)
Pulse and Play now remember the last tab you were on across app launches.
- Open the app, switch to Pulse → Artists, force-quit (swipe up from app switcher), relaunch. Should land on Pulse → Artists, not Pulse → Feed.
- Same on Play: switch to Play → Mixtape, force-quit, relaunch. Should land on Play → Mixtape.
- Cross-side: while on Play → Leaderboard, force-quit + relaunch. Should land on Play side AND Leaderboard (side was already persistent, this verifies both layers compose).
- Background + return (swipe home, wait a few minutes, return) should also land on the last tab — this was mostly working before, but now bulletproof under memory pressure.
- Not yet persisted: nav-stack depth. Drilling into Artist Detail → Setlists → an expanded setlist still returns you to the Artists tab's root after quit.
Verify build 231 (eager bottom-bar collapse)
On Pulse, scroll the Feed (or any tab with a list).
- The 6-item bottom bar should collapse to the small leading pill + now-playing + side-switch layout on the very first scroll movement — not after 8pt of scroll like before.
- On a light Feed day (3–5 articles), this lets you reach the "Show older articles" button at the bottom of the list; before, it was trapped under the expanded bar.
- Scroll back to the top and the full 6-item bar should re-expand. Tiny rubber-band wobble at the top should NOT spuriously re-expand.
Verify build 230 (Tracked section wired up)
Open More → My Stuff. The "Tracked" section had an empty hint promising tap-to-track from Feed / Releases / Mixtape — but no tap actually wired into it before 230.
- Feed: tap an artist badge on any article card. The artist should appear in My Stuff → Tracked. (The action sheet still opens as before — tracking happens in the background.)
- Releases: tap a track inside an inline release track list. The album (not the individual song) gets tracked, with the artist as subtitle.
- Mixtape: tap the play (preview) button on any song. The song gets tracked.
- Re-tapping the same item should NOT double-track — de-dupe is by (kind, title).
- The × on each Tracked row still untracks.
Verify build 229 (album track long-press + non-disruptive launch)
Two small but visible behavior changes.
- Album track long-press: Play → Games → pick any game → Queue Music → Albums → tap an album. Long-press any track. A context menu should appear with Add to Queue / Play Next / Play Now. Tapping "Add to Queue" should drop the song straight into the queue with no confirmation dialog. (Tap-without-long-press still opens the existing 3-way picker.)
- Launching does NOT stop other music: start Apple Music in the Music app, lock the phone, launch EQfluency. Apple Music should keep playing. Browse Pulse / Play / Settings without ever playing in-app — Apple Music should never be interrupted.
- First in-app play: after the previous test, tap any Top Songs row or Queue Music song. First-play should work; may have a ~100–500ms initial buffer (one-shot — every subsequent play in the same session is normal).
Verify build 228 (Queue Music — Albums tab)
Play → Games → pick any game → Queue Music → tap the new Albums tab.
- Browse your Apple Music library albums in a 2-column grid.
- Tap an album to see its full track list. Tap a track for the Play Now / Play Next / Add to Queue picker (same one the Songs tab uses).
- Album header has quick Play Album and Add Album shortcuts.
- If you're paired to an Apple TV, tracks route to the TV. If not, they play locally on the phone.
Verify build 224 (new setlist actions)
Open any artist → Setlists → expand a setlist.
- Three action buttons appear per service section: Play Now, Queue, and Playlist (was just one "Create Playlist" button before).
- Play Now → matched tracks land in Now Playing and the first one starts. Verify the queue matches the setlist order.
- Queue → tracks append to your existing queue without interrupting what's currently playing. Verify by playing something else first, then tapping Queue.
- Playlist (the existing path) → saves to your Apple Music Library. New: the success modal also offers Play Now + Add to Queue for the just-created list, alongside the existing Share + Open in Apple Music buttons.
Verify build 223 (tab bar redesign)
Scroll Feed, Artists, Releases, Shows, or any artist drill-down.
- At scroll-top: full 6-item menu visible. If music is playing, the full Now Playing pill (artwork, title, skip-back, play/pause, skip-forward, share, AppleTV picker) floats above it.
- Scroll down → menu collapses to two pills with the mini player sliding inline between them. Mini player stays visible while you read.
- Scroll back to top → full menu and full Now Playing pill come back.
- Tap the leading pill while collapsed → menu expands in place without scrolling.
- Long-press the player (mini OR full) → "Clear Queue" appears. Tap it → the player disappears and queued songs are gone.
Connect Apple Music
- Pulse → More → Settings → Music Services → Connect Apple Music. Grant the permission prompt.
- The picker opens immediately while your library loads (no silent spinner — verify).
- After connecting, check that all your artists show up in the Artists tab.
Playback flows to verify
- Tap any artist → Top Songs → tap a song → it plays in-app via Apple Music.
- Tap an album → opens track listing → tap a track to play; long-press a track for Play Next / Add to Queue.
- Now Playing sheet (tap the pill): scrubber moves, lock screen + Control Center mirror the state, lyrics show if available (LRCLIB).
- Heart icon on a Top Songs row → saves to your Apple Music Library. Save button on Now Playing sheet → same.
- Sleep timer (moon icon on Now Playing sheet) counts down and pauses playback when it hits zero.
- Skip-forward / skip-backward / play-pause work from the bar AND from lock screen / Control Center.
Per-artist drill-down (should all work)
- Top Songs — playable, with the heart for save.
- Albums — grid view; tap → track listing.
- Music Videos — full-screen video player on tap.
- Releases — upcoming + recent, with editorial notes when available.
- Shows — concerts near you (Within 25 / 50 / 100 mi). Tap "Buy Tickets" → Ticketmaster.
- Setlists — past show setlists from setlist.fm. Each expanded setlist now offers three actions: Play Now (drops matched tracks into Now Playing), Queue (appends to your queue), and Playlist (creates a saved Apple Music playlist). After Playlist runs, the success modal also offers Play Now / Add to Queue for the fresh list.
- News — clustered articles. Tap to open in-app reader.
- Similar Artists — tappable, drills into each.
Service-agnostic flows
- Feed: artist news, pull-to-refresh, filter by artist / source / read-status.
- Releases tab: same as artist-level Releases but across all your artists.
- Shows tab: location-aware concert search.
- Share extension: from the Apple Music share sheet → EQfluency → cross-platform links resolve in seconds.
- Apple TV pairing: pair an Apple TV to host games or queue songs onto the TV's speakers.
What we already know is broken / limited
Apple Music Radio / stations: no programmatic API, so we don't expose a "create station from track" button. Working as intended.
Premium IAP records: the Premium toggle in Settings → Premium goes through the IAP flow; subscription records are still being finalized in App Store Connect. If the purchase loops, that's the known gap — not your problem.
Send feedback
- Take a screenshot in TestFlight → "Send Beta Feedback" — easiest path, attaches your device + iOS version automatically.
- Or email support@impostorsoftware.com directly.
- For UI bugs, a 5-second screen recording (Control Center → record icon) saves a lot of back-and-forth.