Repository navigation
The Card Place iOS gets ready for the App Store: listing in the repo, privacy manifest, screenshots by script - #203
Merged
Merged
Conversation
… privacy manifest, screenshots by script The store listing lives in thecardplace/ios/store/ the way the TestFlight test information lives in wire-testflight.py: the prose as one text file per field, everything else in app-store.json. scripts/wire-appstore.py shows what differs from App Store Connect and only writes with --apply; price and availability need --set-price as well. The build gains PrivacyInfo.xcprivacy (no tracking, nothing collected, UserDefaults for the settings, CA92.1) and goes to build 4. scripts/take-screenshots.sh runs the UI tests on a 6.9" iPhone and a 13" iPad simulator, which it creates if missing, and keeps the moments they already photograph; upload-screenshots.py replaces each device's set. The euchre test no longer fails when we deal and a computer orders up at once, and screenshots wait out a label's cross-fade. thecardplace/privacy.html is the privacy policy the listing points at, linked from the Card Place footer. RELEASE.md gains an App Store section. Part of #202. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…l on the pages; build 5 Color, behavior, favorite, summarized, recognize, labeled and the rest, in the iOS app's hub and help text, the store description, the Card Place and euchre pages, and the READMEs. Code comments and names such as sameColour are left. The privacy page and the Card Place footer give support@theideaplace.net. The description loses its last paragraph about the web games. The app's own text changed, so this is build 5. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The fork guard refuses a branch that changes a stable game and its fork together; the spelling fix for these three files will go in separately. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…er release App Store Connect takes Card and Board only as subcategories of Games. Accessibility declarations stay drafts until the app is on the store, so publishing them is a separate step, --publish-accessibility. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kellylford
marked this pull request as ready for review
October 8, 2026 21:43
…t upload, idempotent price From an independent review of this branch: - The App Review and TestFlight contact (name, phone, email) is read from ~/.thecardplace-keys/review-contact.json; neither script nor app-store.json carries it any more. - upload-screenshots.py uploads the new set before deleting the old one, and waits for Apple to finish processing, stopping on any that fail. - wire-appstore.py --set-price skips the price and availability when they are already free everywhere, instead of posting them again; a missing app info localization is an error rather than a silent skip. - The euchre UI test accepts a computer ordering up at once on later hands too. - take-screenshots.sh sorts runtimes by version number and clears the status bar override however it exits. - The privacy page dates itself American-style and says the web games keep their settings in the browser. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Uploading six new beside six old would be refused at the eleventh. Only the old ones that leave no room are deleted first; the rest go after the new set has processed. Found in review, and run for real against both sets. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Collaborator
Author
|
Independent review by a separate agent: no blocking bugs. Fixed from it: contact details read from outside the repo; screenshot sets replaced within Apple's 10-per-set limit and only after the new ones finish processing (run for real on both sets); price and availability skipped when already set; euchre later-hand flake; screenshot script runtime sort and status-bar trap; privacy page date and browser-settings note. A second pass of the reviewer confirmed the fixes. All checks pass. |
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.
Part of #202. The list of what was missing is in the comment on the issue.
What this adds
thecardplace/ios/store/en-US/has one text file per field: description, keywords, subtitle, promotional text, and the notes for App Review.store/app-store.jsonhas the rest: copyright, manual release, the category (Games, with Card and Board as subcategories), URLs, content rights, the review contact, the age rating answers (all None, so 4+), Accessibility Nutrition Labels, and price.scripts/wire-appstore.pycompares the listing in the repo with what App Store Connect has, and prints every difference. It only writes with--apply. Price and availability also need--set-price.--publish-accessibilitypublishes the accessibility labels, which Apple only allows once the app is on the store.PrivacyInfo.xcprivacy: no tracking, no data collected, andUserDefaultsdeclared (reason CA92.1) for the settings.scripts/take-screenshots.shruns the UI tests on a 6.9" iPhone and a 13" iPad simulator and keeps the screenshots they take in each game.scripts/upload-screenshots.pyreplaces each device's set.thecardplace/privacy.html, a privacy policy page. It and the Card Place page's footer give support@theideaplace.net.sameColourare unchanged. The multiplayer forks' READMEs are left for a separate branch, because the fork guard refuses a branch that changes both a stable game and its fork.RELEASE.mdgets an App Store release section.Done in App Store Connect, with Kelly's go
wire-appstore.pyfinds nothing left to change.Left for Kelly
Testing
swift testfor the engines: no failures.take-screenshots.shon both devices runs every UI test; they all passed on the iPhone 17 Pro Max and iPad Pro 13" (M5) simulators. All twelve screenshots are the required sizes. I looked at them, including the hub's "its color partner".🤖 Generated with Claude Code