swiftship/internal/skills/data/features/asc-app-create-ui/SKILL.md
Create a new App Store Connect app record via browser automation. Use when there is no public API for app creation and you need an agent to drive the New App form.
npx skillsauth add abdullah4ai/apple-dev-docs asc-app-create-uiInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill to create a new App Store Connect app by driving the web UI. This is opt-in, local-only automation that requires the user to be signed in.
# Register the bundle ID via public API (if not already registered)
asc bundle-ids create --identifier "com.example.app" --name "My App" --platform IOS
# Confirm no app record exists yet
asc apps list --bundle-id "com.example.app" --output json
Navigate to https://appstoreconnect.apple.com/apps and ensure the user is signed in.
The "New App" button (blue "+" icon) opens a dropdown menu, not a dialog directly.
The platforms are checkboxes (not radio buttons). Click the checkbox for the desired platform(s):
NamePrimary Languageselect_option or equivalent with the language label (e.g., "English (U.S.)").Bundle ID<select> dropdown. The options load asynchronously after platform selection."My App - com.example.app"SKULimited Access or Full Access.<span> overlays.<span>.scrollIntoView on the radio element first, then click the radio ref directly. This bypasses the overlay interception./apps/<APP_ID>/...).asc apps get --id "APP_ID" --output json --pretty
# or
asc apps list --bundle-id "com.example.app" --output json
asc app-setup info set --app "APP_ID" --primary-locale "en-US"
asc app-setup categories set --app "APP_ID" --primary GAMES
asc app-setup availability set --app "APP_ID" --territory "USA,GBR" --available true
The first click opens a menu with "New App" and "New App Bundle". You must click the menu item, not just the button.
Apple's custom radio buttons wrap the <input type="radio"> in styled <span> elements. Direct ref-based clicks may fail with "click target intercepted". The fix is:
scrollIntoView).After selecting a platform, the Bundle ID dropdown shows "Loading..." and is disabled. Wait for it to become enabled and populated before selecting.
Apple's Ember.js forms use custom change handlers. browser_fill (atomic set) may not trigger validation. If the Create button stays disabled after filling all fields:
testing
Use for 3D games: racing, 3D sports, board games, marble maze, tower defense, bowling. SceneKit + SceneView architecture, 3D scene hierarchy, physics, game loop, primitives, materials, cameras, particles, audio.
documentation
Game UI patterns: SwiftUI HUD overlays on SpriteKit, menus (main/pause/game-over), virtual joystick/d-pad, score displays, health bars, tutorial onboarding.
tools
Download free game sprites/textures/3D models and generate procedural assets. Covers nw_download_asset tool, texture factories, sprite atlas organization, 3D model loading, and programmatic asset creation.
testing
Use for 2D games: arcade, puzzle, sports, ping pong, platformer, shooter, 2D racing. SpriteKit + SpriteView architecture, scene hierarchy, physics, game loop, audio, particles, game feel.