{"id":16322765,"url":"https://github.com/blackjacx/assist","last_synced_at":"2025-07-19T19:06:53.683Z","repository":{"id":43196163,"uuid":"266627028","full_name":"Blackjacx/Assist","owner":"Blackjacx","description":"App Store Connect API access via CLI written in Swift","archived":false,"fork":false,"pushed_at":"2025-05-05T22:15:45.000Z","size":348,"stargazers_count":33,"open_issues_count":18,"forks_count":2,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-06-07T04:34:08.443Z","etag":null,"topics":["apns","appstoreconnect","appstoreconnect-api","hacktoberfest","push","screenshot","snapshot","snapshot-testing","swift","uitesting"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Blackjacx.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-24T21:21:45.000Z","updated_at":"2025-05-05T22:15:49.000Z","dependencies_parsed_at":"2023-11-08T12:34:30.291Z","dependency_job_id":"54890638-5e3e-4efa-bcd6-264a40525697","html_url":"https://github.com/Blackjacx/Assist","commit_stats":{"total_commits":182,"total_committers":2,"mean_commits":91.0,"dds":0.09340659340659341,"last_synced_commit":"d632ffc51938310c4f3991a1ea1cc17be0a95efb"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/Blackjacx/Assist","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blackjacx%2FAssist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blackjacx%2FAssist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blackjacx%2FAssist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blackjacx%2FAssist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Blackjacx","download_url":"https://codeload.github.com/Blackjacx/Assist/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blackjacx%2FAssist/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265992571,"owners_count":23860929,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apns","appstoreconnect","appstoreconnect-api","hacktoberfest","push","screenshot","snapshot","snapshot-testing","swift","uitesting"],"created_at":"2024-10-10T22:52:23.267Z","updated_at":"2025-07-19T19:06:53.642Z","avatar_url":"https://github.com/Blackjacx.png","language":"Swift","readme":"\u003c!-- \u003cp align=\"center\"\u003e\n\u003cimg src=\"./icon.png\" alt=\"SHSearchBar\" height=\"128\" width=\"128\"\u003e\n\u003c/p\u003e --\u003e\n\n\u003c!-- [![Test](https://github.com/Blackjacx/Assist/actions/workflows/test.yml/badge.svg)](https://github.com/Blackjacx/Assist/actions/workflows/test.yml) --\u003e\n\n[![Twitter Follow](https://img.shields.io/badge/follow-%40blackjacx-1DA1F2?logo=twitter\u0026style=for-the-badge)](https://twitter.com/intent/follow?original_referer=https%3A%2F%2Fgithub.com%2Fblackjacx\u0026screen_name=Blackjacxxx)\n[![Version](https://shields.io/github/v/release/blackjacx/Assist?display_name=tag\u0026include_prereleases\u0026sort=semver)](https://github.com/Blackjacx/Assist/releases)\n[![Swift Package Manager Compatible](https://img.shields.io/badge/SPM-compatible-brightgreen.svg)](https://swift.org/package-manager/)\n[![Swift Versions](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2FBlackjacx%2FAssist%2Fbadge%3Ftype%3Dswift-versions)](https://swiftpackageindex.com/Blackjacx/Assist)\n[![Platforms](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2FBlackjacx%2FAssist%2Fbadge%3Ftype%3Dplatforms)](https://swiftpackageindex.com/Blackjacx/Assist)\n[![Xcode 16+](https://img.shields.io/badge/Xcode-16%2B-blue.svg)](https://developer.apple.com/download/)\n[![Codebeat](https://codebeat.co/badges/6fb8ff62-9cb4-484a-8c0d-6f7f973d3f0d)](https://codebeat.co/projects/github-com-blackjacx-assist-develop)\n[![License](https://img.shields.io/github/license/blackjacx/assist.svg)](https://github.com/blackjacx/assist/blob/master/LICENSE)\n[![Donate](https://img.shields.io/badge/Donate-PayPal-blue.svg?logo=paypal\u0026style=for-the-badge)](https://www.paypal.me/STHEROLD)\n\n# App Store Connect API • CLI\n\nApp Store Connect API access using your private API key. The great power of this tool is that it can operate on all apps of one or multiple teams (is you wish to), e.g. it is super easy to print the live versions of all of your apps, even across multiple teams:\n\n```sh\nasc app-store-versions list -k \u003ckey_id_1\u003e \\\nasc app-store-versions list -k \u003ckey_id_2\u003e \\\nasc app-store-versions list -k \u003ckey_id_3\u003e\n```\n\n## Installation\n\n### Via [Homebrew](http://brew.sh/)\n\n```sh\nbrew tap Blackjacx/asc\nbrew install asc\n```\n\n### Via [Mint](https://github.com/yonaskolb/mint)\n\nJust install Mint using with [Homebrew](https://brew.sh/) via `brew install mint`.\n\n```sh\nmint install Blackjacx/Assist\n```\n\nYou can also run command line tools with mint without installing them first. Mint will automatically clone and install it.\n\n```sh\nmint run git@github.com:Blackjacx/Assist.git asc apps\n```\n\n### Via Command Line\n\n```sh\ngit clone https://github.com/blackjacx/assist.git AppStoreConnect\ncd AppStoreConnect\nswift run asc -h\n```\n\n## Authentication\n\nAuthentication is handled by the tool itself. The only thing needed is your private API key. Generate one at [App Store Connect account](https://appstoreconnect.apple.com/access/api) and execute the following command which will just store the exact parameters you provide in the user defaults.\n\n```sh\nasc api-keys register -n \"name\" -k \"key-id\" -i \"issuer-id\" -p \"path-to-private-key-file\"\n```\n\n\u003e ⚠️ No key generation performed here. The JWT is just generated on demand when using this tool. If you have multiple keys registered the tool will ask you which one you want to use.\n\n## Sub Commands\n\nExecuting one of the following sub commands is as easy as appending it with its parameters to the base command:\n\n```sh\n# list all registered API keys\nasc api-keys list\n\n# register API key for specific team\nasc api-keys register -n \"name\" -k \"key-id\" -i \"issuer-id\" -p \"path-to-private-key-file\"\n\n# delete API key for specific team\nasc api-keys delete -k \"key-id\"\n\n\n\n# list is the default\nasc beta-groups\n\n# list only beta groups with a specific name\nasc beta-groups -g \"group-name\"\n\n\n\n# list apps of your team\nasc apps\n\n\n\n# add beta tester to all groups matching `group-name`\nasc beta-testers add -e \"john@doe.com\" -n \"John\" -l \"Doe\" -g \"group-name\"\n\n# add beta tester to all groups matching all specified group names\nasc beta-testers add -e \"john@doe.com\" -n \"John\" -l \"Doe\" -g \"group-name-1\" -g \"group-name-2\"\n\n\n\n# delete beta tester from all groups found\nasc beta-testers delete -e \"john@doe.com\"\n\n\n\n# lists all your teams apps with their live version or if not live with their current status\nasc app-store-versions\n```\n\n### `api-keys`\n\n```sh\nOVERVIEW: Lists, registers and deletes App Store Connect API keys on your Mac.\n\nUSAGE: asc api-keys \u003csubcommand\u003e\n\nOPTIONS:\n--version               Show the version.\n-h, --help              Show help information.\n\nSUBCOMMANDS:\nlist (default)          List locally stored App Store Connect API keys keys.\nregister                Registers App Store Connect API keys locally.\ndelete                  Delete locally stored App Store Connect API keys.\n\nSee 'asc help api-keys \u003csubcommand\u003e' for detailed help.\n```\n\n### `beta-groups`\n\n```sh\nOVERVIEW: Manage groups of beta testers that have access to one or more builds.\n\nUSAGE: asc beta-groups \u003csubcommand\u003e\n\nOPTIONS:\n--version               Show the version.\n-h, --help              Show help information.\n\nSUBCOMMANDS:\nlist (default)          Find and list beta testers for all apps, builds, and beta groups.\n\nSee 'asc help beta-groups \u003csubcommand\u003e' for detailed help.\n```\n\n### `beta-testers`\n\n```sh\nOVERVIEW: Manage people who can install and test prerelease builds.\n\nUSAGE: asc beta-testers \u003csubcommand\u003e\n\nOPTIONS:\n--version               Show the version.\n-h, --help              Show help information.\n\nSUBCOMMANDS:\nlist (default)          Find and list beta testers for all apps, builds, and\nbeta groups.\ninvite                  Send or resend an invitation to a beta tester to test\nspecified apps.\nadd                     Create a beta tester assigned to a group, a build, or\nan app.\ndelete                  Remove a beta tester's ability to test all or\nspecific apps.\n\nSee 'asc help beta-testers \u003csubcommand\u003e' for detailed help.\n```\n\n### `apps`\n\n```sh\nOVERVIEW: Manage your apps in App Store Connect.\n\nUSAGE: asc apps \u003csubcommand\u003e\n\nOPTIONS:\n--version               Show the version.\n-h, --help              Show help information.\n\nSUBCOMMANDS:\nlist (default)          Find and list apps added in App Store Connect.\n\nSee 'asc help apps \u003csubcommand\u003e' for detailed help.\n```\n\n### `app-store-versions`\n\n```sh\nOVERVIEW: Manage versions of your app that are available in App Store.\n\nUSAGE: asc app-store-versions \u003csubcommand\u003e\n\nOPTIONS:\n--version               Show the version.\n-h, --help              Show help information.\n\nSUBCOMMANDS:\nlist (default)          Get a list of all App Store versions of an app across\nall platforms.\n\nSee 'asc help app-store-versions \u003csubcommand\u003e' for detailed help.\n```\n\n### `builds`\n\n```sh\nOVERVIEW: Manage builds for testers and submit builds for review.\n\nUSAGE: asc builds \u003csubcommand\u003e\n\nOPTIONS:\n--version               Show the version.\n-h, --help              Show help information.\n\nSUBCOMMANDS:\nlist (default)          Find and list builds for all apps in App Store Connect.\n\nSee 'asc help builds \u003csubcommand\u003e' for detailed help.\n```\n\n### `bundle-ids`\n\n```sh\nOVERVIEW: Manage the bundle IDs that uniquely identify your apps.\n\nUSAGE: asc bundle-ids \u003csubcommand\u003e\n\nOPTIONS:\n  --version               Show the version.\n  -h, --help              Show help information.\n\nSUBCOMMANDS:\n  list (default)          Find and list bundle IDs that are registered to your\n                          team.\n  register                Register a new bundle ID for app development.\n\n  See 'asc help bundle-ids \u003csubcommand\u003e' for detailed help.\n\n```\n\n## Code Documentation\n\nThe code documentation for [ASC](https://swiftpackageindex.com/Blackjacx/Assist/develop/documentation/asc), [Push](https://swiftpackageindex.com/Blackjacx/Assist/develop/documentation/push) and [Snap](https://swiftpackageindex.com/Blackjacx/Assist/develop/documentation/snap) is generated and hosted by [Swift Package Index](https://swiftpackageindex.com/) (powered by [DocC](https://developer.apple.com/documentation/docc))\n\n## Release\n\nTo release this Swift package the following steps have to be taken:\n\n- Increment the version in `Core.Constants.version`\n- Update to the latest shared development files:\n  ```shell\n  bash \u003c(curl -H -s https://raw.githubusercontent.com/Blackjacx/Scripts/master/frameworks/bootstrap.sh)\n  ``` \n- Run `bundle update` to update all Ruby gems\n- Run `swift package update` to update all SPM dependencies\n- Commit all changes on `develop` with the message:\n  ```\n  Release version `x.y.z`\n  ```\n- Release the new version:\n  ```shell\n  bundle exec fastlane release framework:\"Assist\" version:\"x.y.z\" formula:\"blackjacx/formulae/asc\"\n  ```\n- Create and merge the PR from the just created branch for the [Homebrew formula](https://github.com/Blackjacx/homebrew-formulae)\n- Post the following on Twitter:\n  ```\n  Assist (ASC, Push, Snap) release x.y.z 🎉\n\n  ▸ 🚀  Tools asc, snap, push (x.y.z) successfully published\n  ▸ 📅  September 2nd\n  ▸ 🌎  https://swiftpackageindex.com/Blackjacx/Assist\n  ▸ 🌎  https://github.com/Blackjacx/Assist/releases/latest\n  ▸ 👍  Tell your friends!\n\n  #SPM #Automated #Snapshots #Push #Firebase #APNS #ASC #AppStoreConnectAPI\n  ```\n\n## Contribution\n\n- If you found a **bug**, please open an **issue**.\n- If you have a **feature request**, please open an **issue**.\n- If you want to **contribute**, please submit a **pull request**.\n\n## Author\n\n[Stefan Herold](mailto:stefan.herold@gmail.com) • [X](https://twitter.com/Blackjacxxx) • [Bluesky](https://bsky.app/profile/blackjacx.bsky.social) • [Mastodon](https://mastodon.social/@blackjacx)\n\n## Contributors\n\nThanks to all of you who are part of this:\n\n\u003ca href=\"https://github.com/blackjacx/Assist/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=blackjacx/Assist\" /\u003e\n\u003c/a\u003e\n\n## License\n\nASC is available under the MIT license. See the [LICENSE](LICENSE) file for more info.\n\n## Star History\n\n\u003ca href=\"https://star-history.com/#blackjacx/assist\u0026Date\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=blackjacx/assist\u0026type=Date\u0026theme=dark\" /\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=blackjacx/assist\u0026type=Date\" /\u003e\n    \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=blackjacx/assist\u0026type=Date\" /\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n","funding_links":["https://www.paypal.me/STHEROLD"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblackjacx%2Fassist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblackjacx%2Fassist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblackjacx%2Fassist/lists"}