You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .claude/skills/asc-iap-attach/SKILL.md
+20-32Lines changed: 20 additions & 32 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,7 +22,7 @@ This skill uses Apple's internal iris API (`/iris/v1/subscriptionSubmissions`) v
22
22
23
23
## Preconditions
24
24
25
-
- Web session cached in macOS Keychain. If no session exists or it has expired (401), call the `asc_web_auth` MCP tool first — this opens the Apple ID login window in Blitz and captures the session automatically.
25
+
- Web session file available at `~/.blitz/asc-agent/web-session.json`. If no session exists or it has expired (401), call the `asc_web_auth` MCP tool first — this opens the Apple ID login window in Blitz and captures the session automatically.
26
26
- Know your app ID.
27
27
- IAPs and/or subscriptions already exist and are in **Ready to Submit** state.
28
28
- A build is uploaded and attached to the current app version.
@@ -32,7 +32,7 @@ This skill uses Apple's internal iris API (`/iris/v1/subscriptionSubmissions`) v
32
32
### 1. Check for an existing web session
33
33
34
34
```bash
35
-
security find-generic-password -s "asc-web-session" -a "asc:web-session:store" -w > /dev/null 2>&1&&echo"SESSION_EXISTS"||echo"NO_SESSION"
35
+
test -f ~/.blitz/asc-agent/web-session.json&&echo"SESSION_EXISTS"||echo"NO_SESSION"
36
36
```
37
37
38
38
- If `NO_SESSION`: call the `asc_web_auth` MCP tool first. Wait for it to complete before proceeding.
@@ -44,20 +44,16 @@ Use the iris API to list subscription groups (with subscriptions) and in-app pur
print('ERROR: No web session found. Call asc_web_auth MCP tool first.')
192
178
sys.exit(1)
179
+
with open(session_path) as f:
180
+
raw = f.read()
193
181
194
182
store = json.loads(raw)
195
183
session = store['sessions'][store['last_key']]
@@ -243,7 +231,7 @@ After attachment, call `get_tab_state` for `ascOverview` to refresh the submissi
243
231
The subscription is already attached — this is safe to ignore. HTTP 409 with this message means the item was previously attached.
244
232
245
233
### 401 Not Authorized (iris API)
246
-
The web session has expired. Call the `asc_web_auth` MCP tool to open the Apple ID login window in Blitz — this captures a fresh session and saves it to the keychain automatically. The user will need to complete Apple ID login + 2FA in the popup. After the tool returns success, retry the iris API calls.
234
+
The web session has expired. Call the `asc_web_auth` MCP tool to open the Apple ID login window in Blitz — this captures a fresh session and refreshes `~/.blitz/asc-agent/web-session.json` automatically. The user will need to complete Apple ID login + 2FA in the popup. After the tool returns success, retry the iris API calls.
Copy file name to clipboardExpand all lines: .claude/skills/asc-team-key-create/SKILL.md
+11-16Lines changed: 11 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,17 +15,17 @@ Use this skill to create a new App Store Connect API Key with Admin permissions
15
15
16
16
## Preconditions
17
17
18
-
- Web session cached in macOS Keychain. If no session exists or it has expired (401), call the `asc_web_auth` MCP tool first — this opens the Apple ID login window in Blitz and captures the session automatically.
18
+
- Web session file available at `~/.blitz/asc-agent/web-session.json`. If no session exists or it has expired (401), call the `asc_web_auth` MCP tool first — this opens the Apple ID login window in Blitz and captures the session automatically.
19
19
- The authenticated Apple ID must have Account Holder or Admin role.
20
20
21
21
## Workflow
22
22
23
23
### 1. Check for an existing web session
24
24
25
-
Before anything else, check if a web session already exists in the macOS Keychain:
25
+
Before anything else, check if a web session file already exists:
26
26
27
27
```bash
28
-
security find-generic-password -s "asc-web-session" -a "asc:web-session:store" -w > /dev/null 2>&1&&echo"SESSION_EXISTS"||echo"NO_SESSION"
28
+
test -f ~/.blitz/asc-agent/web-session.json&&echo"SESSION_EXISTS"||echo"NO_SESSION"
29
29
```
30
30
31
31
- If `NO_SESSION`: call the `asc_web_auth` MCP tool first to open the Apple ID login window in Blitz. Wait for it to complete before proceeding.
@@ -41,22 +41,17 @@ Use the following self-contained script. Replace `KEY_NAME` with the user's chos
41
41
42
42
```bash
43
43
python3 -c "
44
-
import json, subprocess, urllib.request, base64, os, sys, time
44
+
import json, urllib.request, base64, os, sys, time
45
45
46
46
KEY_NAME = 'KEY_NAME_HERE'
47
47
48
-
# Extract cookies from keychain (silent — never print these)
49
-
try:
50
-
raw = subprocess.check_output([
51
-
'security', 'find-generic-password',
52
-
'-s', 'asc-web-session',
53
-
'-a', 'asc:web-session:store',
54
-
'-w'
55
-
], stderr=subprocess.DEVNULL).decode()
56
-
except subprocess.CalledProcessError:
57
-
print('ERROR: No web session found. User must authenticate first.')
58
-
print('Run: asc web auth login --apple-id EMAIL')
48
+
# Read web session file (silent — never print these)
print('ERROR: No web session found. Call asc_web_auth MCP tool first.')
59
52
sys.exit(1)
53
+
with open(session_path) as f:
54
+
raw = f.read()
60
55
61
56
store = json.loads(raw)
62
57
session = store['sessions'][store['last_key']]
@@ -191,7 +186,7 @@ After the script runs, report:
191
186
## Common Errors
192
187
193
188
### 401 Not Authorized
194
-
The web session has expired or doesn't exist. Call the `asc_web_auth` MCP tool — this opens the Apple ID login window in Blitz and captures the session to the macOS Keychain automatically. Then retry the key creation script.
189
+
The web session has expired or doesn't exist. Call the `asc_web_auth` MCP tool — this opens the Apple ID login window in Blitz and refreshes `~/.blitz/asc-agent/web-session.json` automatically. Then retry the key creation script.
195
190
196
191
### 409 Conflict
197
192
A key with the same name may already exist, or another conflict occurred. Try a different name.
0 commit comments