Navigation after sign-in (navPlan + navigate): App Store Connect Apps > + > New App (EN/TR), App Privacy by /apps/<appId>/distribution/privacy or the app list, Play app list by package name > Policy and programs > App content > Start / Manage. Every navigation click goes through navClick: the click gate stays absolute, only a link named exactly Start / Manage / Başla / Yönet passes. Each step is logged; a step not found in time or two matching apps -> the printed steps and wait (no crash). The TR gate now refuses "uygula" (apply) but not "uygulama" (app). Browser (cli/console/session.ts): attach to a Chrome with remote debugging (--cdp or DevToolsActivePort), else on macOS a temporary profile with only Local State and the profile's Cookies filtered to the console hosts, opened in real Chrome and deleted at the end, else storebound's own profile (--fresh-profile). Cookies are never printed. Desktop: fresh_profile option, the dialog says it uses the Chrome sign-in. Tests: navigation fixtures (ASC EN/TR, Play list, App content, missing step, duplicates, deny-listed decoys), session file selection, host filter, cleanup, and a real-Chrome copy-mode test on a throwaway profile and a local site.
33 lines
2.1 KiB
HTML
33 lines
2.1 KiB
HTML
<!doctype html>
|
|
<!-- MODELED, not recorded: a sanitized stand-in for App Store Connect > Apps with the add button (+) and its menu
|
|
(New App, New App Bundle), written from Apple's public help page "Add a new app". The New App dialog opens from the
|
|
menu. Decoy controls (Submit for Review, Create) must never be clicked. Placeholder data only. -->
|
|
<html lang="en"><head><meta charset="utf-8"><title>Apps - App Store Connect</title><script src="/_common.js"></script></head>
|
|
<body>
|
|
<h1>Apps</h1>
|
|
<button type="button" id="plus" aria-label="Add Apps" aria-haspopup="menu">+</button>
|
|
<div role="menu" id="menu" hidden>
|
|
<div role="menuitem" tabindex="0" id="newapp">New App</div>
|
|
<div role="menuitem" tabindex="0">New App Bundle</div>
|
|
</div>
|
|
<nav aria-label="Apps list"><a href="/asc-app.html">Example Game</a> <a href="/asc-app.html">Other App</a></nav>
|
|
<button type="button">Submit for Review</button>
|
|
<div role="dialog" aria-labelledby="t" id="dlg" hidden>
|
|
<h2 id="t">New App</h2>
|
|
<fieldset><legend>Platforms</legend>
|
|
<label><input type="checkbox"> iOS</label> <label><input type="checkbox"> macOS</label>
|
|
</fieldset>
|
|
<p><label>Name <input type="text" maxlength="30"></label></p>
|
|
<p><label>Primary Language <select><option value="">Choose</option><option>English (U.K.)</option><option>English (U.S.)</option></select></label></p>
|
|
<p><label>Bundle ID <select><option value="">Choose</option><option>Example Game - com.example.game</option></select></label></p>
|
|
<p><label>SKU <input type="text"></label></p>
|
|
<fieldset><legend>User Access</legend>
|
|
<label><input type="radio" name="access"> Limited Access</label> <label><input type="radio" name="access"> Full Access</label>
|
|
</fieldset>
|
|
<button type="button">Cancel</button> <button type="button">Create</button>
|
|
</div>
|
|
<script>
|
|
document.getElementById('plus').addEventListener('click', () => { document.getElementById('menu').hidden = false; });
|
|
document.getElementById('newapp').addEventListener('click', () => { document.getElementById('menu').hidden = true; document.getElementById('dlg').hidden = false; });
|
|
</script>
|
|
</body></html>
|