- Support App Store Connect API latest version 1.6
existsand other query parameters
- All endpoints / paths are implemented, include, but not limited to: App Information, TestFlight, Users and Roles, Sales and Finances
- Pythonic, all
camelCaseschema fields are represented as
- Embrace Python type hints
- Use Python Requests to hanlde HTTP sessions
- ErrorResponse can be catched as exception
At Codinn, we distribute apps on App Store – Core Shell and Core Tunnel. We wrote a bunch of scripts to automate the build, package and upload processes, we benefit from the automation scripts and it saves a lot of time.
For the app information (localized descriptions, versions, changelogs and other meta data) in App Store, we maintained it manually for a very long time. But this can easily go wrong, we made a few horrible mistakes while updating the information, e.g., pasted the description of Core Shell to Core Tunnel, using Spanish changelog for English localization, forgot update site links.
We decided to adopt App Store Connect API to automate app information updating process as well, but soon discovered that it lacks client support. Most client libraries implement a very small portion of the API, provide very limited operations.
We surprisingly found that App Store Connect API uses and conforms to OpenAPI specification, it shouldn't be too hard to generate client code from the specification. So we create project Applaudgen for this purpose, and its masterpiece – project Applaud.
Here is a basic but very straightforward sample code:
import os from applaud.connection import Connection KEY_ID = "XXXXXXXXXX" ISSUER_ID = "XXXXXX-XXXXXXX-XXXXXX-XXXXXXX" PATH_TO_KEY = os.path.expanduser('path/to/your/key.p8') with open(PATH_TO_KEY, 'r') as f: PRIVATE_KEY = f.read() # Create the Connection connection = Connection(ISSUER_ID, KEY_ID, PRIVATE_KEY) # API Request r = connection.users().limit(10).get() # Print user names for user in r.data: print(user.attributes.username, user.attributes.first_name, user.attributes.last_name)
For more complex example, please refer to Uploading App Previews with Applaud.
The project is licensed under MIT, feel free to fork or submit pull requests.
Yang @ Codinn