Loading...
Loading...
Manage App Store Connect authentication using the `asc` CLI tool. Use this skill when: (1) Logging in with an API key: "asc auth login", "save my credentials", "set up authentication" (2) Managing multiple accounts: "asc auth list", "switch account", "use work account", "add another account" (3) Switching the active account: "asc auth use NAME", "switch to personal account" (4) Logging out: "asc auth logout", "remove credentials", "remove account" (5) Verifying current credentials: "asc auth check", "which account am I using?" (6) Updating account settings: "asc auth update --vendor-number", "save my vendor number" (7) Explaining the credentials file format (~/.asc/credentials.json) (8) Troubleshooting 401 auth errors or "missing credentials" errors
npx skill4agent add tddworks/asc-cli-skills asc-auth~/.asc/credentials.jsonascasc auth login \
--key-id <KEY_ID> \
--issuer-id <ISSUER_ID> \
--private-key-path ~/.asc/AuthKey_KEYID.p8 \
[--name <alias>] # optional; defaults to "default"
[--vendor-number <number>] # optional; for sales/finance reports--namework-org--name"default"--private-key--private-key-path--vendor-numberAuthStatus{
"data": [{
"affordances": {
"check": "asc auth check",
"list": "asc auth list",
"login": "asc auth login --key-id <id> --issuer-id <id> --private-key-path <path>",
"logout": "asc auth logout"
},
"issuerID": "abc-def-456",
"keyID": "KEYID123",
"name": "work",
"source": "file"
}]
}asc auth list [--pretty] [--output table]"isActive": true"use"ConnectAccount{
"data": [
{
"affordances": { "logout": "asc auth logout --name personal", "use": "asc auth use personal" },
"isActive": false, "issuerID": "...", "keyID": "KEYID1", "name": "personal"
},
{
"affordances": { "logout": "asc auth logout --name work" },
"isActive": true, "issuerID": "...", "keyID": "KEYID2", "name": "work"
}
]
}asc auth use <name>
# → Switched to account "work"accountNotFound<name>asc auth listasc auth logout # removes the active account
asc auth logout --name work # removes a specific account
# → Logged out successfullyasc auth update [--name <alias>] --vendor-number <number>--name--vendor-numbersales-reportsfinance-reportsaccountNotFoundAuthStatusvendorNumber{
"data": [{
"affordances": { "check": "asc auth check", "list": "asc auth list", ... },
"issuerID": "abc-def-456",
"keyID": "KEYID123",
"name": "work",
"source": "file",
"vendorNumber": "88012345"
}]
}asc auth check [--pretty] [--output table]"file""environment"vendorNumbernameasc~/.asc/credentials.jsonauth loginauth useASC_KEY_IDASC_ISSUER_IDASC_PRIVATE_KEY_PATHASC_PRIVATE_KEY_B64ASC_PRIVATE_KEY{
"accounts": {
"personal": { "issuerID": "...", "keyID": "KEYID1", "privateKeyPEM": "..." },
"work": { "issuerID": "...", "keyID": "KEYID2", "privateKeyPEM": "...", "vendorNumber": "88012345" }
},
"active": "work"
}vendorNumbersales-reportsfinance-reports--vendor-number{ "keyID": ..., "issuerID": ..., "privateKeyPEM": ... }"default"asc auth login \
--key-id KEYID123 \
--issuer-id abc-def-456 \
--private-key-path ~/.asc/AuthKey_KEYID123.p8
asc auth check --pretty # verify source: "file"
asc apps list # works without env vars# Add accounts
asc auth login --key-id K1 --issuer-id I1 --private-key-path ~/.asc/personal.p8 --name personal
asc auth login --key-id K2 --issuer-id I2 --private-key-path ~/.asc/work.p8 --name work
# List all
asc auth list --pretty
# Switch
asc auth use personal
asc apps list # now uses personal account
asc auth use work
asc apps list # now uses work account# During login
asc auth login --key-id K1 --issuer-id I1 --private-key-path key.p8 --vendor-number 88012345
# Or add to existing account
asc auth update --vendor-number 88012345
# Now reports auto-resolve vendor number
asc sales-reports download --report-type SALES --sub-type SUMMARY --frequency DAILYasc auth list # find the name
asc auth logout --name personal
asc auth list # confirm removal| Situation | Resolution |
|---|---|
| Run |
| Name contains spaces | Use hyphens/underscores: |
| 401 Unauthorized on API calls | Run |
| No credentials anywhere | Run |