Skip to content

[chore] iOS 1.15 (build 27): the microphone on the lock screen - #394

Merged
Lanznx merged 1 commit into
mainfrom
ios-1.15-release
Sep 18, 2026
Merged

Lanznx merged 1 commit into
mainfrom
ios-1.15-release

Conversation

@Lanznx

@Lanznx Lanznx commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

iOS 1.15 is #393 and nothing else. The four other commits since ios-v1.14 are desktop (src/), Android, the website, and 1.14's own release notes — none of them ships in an iPhone build.

The part that would have cost a CI run

#393 embedded a third target, com.pathors.parley.ios.activities. asc_signing.py had the two bundle ids written into it twice over — once as a tuple to iterate, once as a pair of step outputs — so a tag push would have archived for twenty minutes and then failed at export with No profiles for '…' were found, naming a bundle id whoever read the log was not thinking about. That is the exact failure mode RELEASING.md already documents for a missing profile; nothing connected it to adding a target.

The list is now SIGNED_BUNDLES, and both the script and the runbook say out loud that adding an embedded target means adding it there and registering the id on the portal first.

⚠️ One thing this PR cannot do

com.pathors.parley.ios.activities still has to be registered on developer.apple.com — App Groups capability enabled, joined to group.com.pathors.parley.ios — before any tag will build. asc_signing.py looks bundle ids up and refuses if they are missing; it never creates them, and the App Store Connect API key exists only as a GitHub secret, so there is no local path to do it from.

Versions

All three targets move to 1.15 (27) together — app, keyboard, activities. A mismatch is rejected at upload, not at build, so they are bumped in project.yml and the regenerated Info.plists are committed with it.

What's New

Written for 1.15 in both locales and verified against the parser in asc_submit.py: both sections are found, stop cleanly at the 1.14 heading, and come in well under Apple's 4,000-character limit (en-US 1,341; zh-Hant 413). zh-Hant is a peer of the English, not a translation of it.

The copy describes the card, the three states it covers, the fact that nothing from the meeting appears on it, and the two new haptics. It promises nothing about resuming an interrupted recording, because that is not in this release.

No screenshots were re-captured. Nothing inside the app moved — the card is a lock-screen surface — so the existing 6.9-inch sets in both locales are still accurate.

Before this ships

The Live Activity carries one unverified assumption, documented in docs/design/ios-live-activity.md: it is not established that activity.update(...) reaches a backgrounded app holding a recording audio session. The card is built to be correct either way — every clock is a Text(timerInterval:) the system ticks inside the widget process — but TestFlight is where that should be checked, on a real device, before submitting to review. MicActivityPolicy.staleAfter is the single constant that changes if the answer is bad.

Verification

  • xcodegen generate + xcodebuild -scheme Parley -configuration Debug -destination generic/platform=iOS → BUILD SUCCEEDED.
  • Both What's New sections parsed with asc_submit.whats_new at version 1.15.
  • All three Info.plists confirmed at 1.15 / 27.
  • asc_signing.py parses; its API paths are unchanged and untestable without the key.

🤖 Generated with Claude Code

For iOS this release is #393 and nothing else — the four other commits since
ios-v1.14 are desktop, Android, the website, and 1.14's own release notes.
What's New says so in both locales, and no screenshots were re-captured
because nothing inside the app moved: the card is a lock-screen surface.

The part that would otherwise have cost a twenty-minute CI run: #393 embedded
a third target, and `asc_signing.py` had the two bundle ids written into it
twice over — once as a tuple to iterate and once as a pair of outputs. A
target with no provisioning profile does not fail at the point it is added.
It fails at export, saying `No profiles for '…' were found`, about a bundle id
nobody was thinking about. That list is now `SIGNED_BUNDLES`, and RELEASING.md
says out loud that adding an embedded target means adding it there and
registering it on the portal first.

`com.pathors.parley.ios.activities` still has to be registered on the
developer portal, with App Groups enabled and joined to
group.com.pathors.parley.ios, before a tag will build.

All three targets move to 1.15 (27) together; a mismatch is rejected at
upload rather than at build.
@github-actions

Copy link
Copy Markdown

✅ SonarQube Quality Gate passed — pathorsAI_parley

0 open issues on this PR.

@Lanznx
Lanznx merged commit f786a5a into main Sep 18, 2026
6 checks passed
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.

2 participants