Package: asconnect
asconnectasconnect is a Python wrapper around theApple App Store Connect REST APIs.This wrapper does not cover every API, but does cover the basics, including:Uploading a buildCreating a new TestFlight versionSetting TestFlight review informationCreating a new app store versionSetting the app review informationSubmitting for app reviewGetting StartedInstallationThe package is available on PyPI, so you can runpip install asconnectto get the latest version.Creating a clientTo begin, you need togenerate a key, then get it's ID, the contents of the key itself, and the issuer ID.Once you have those, you can create a new client by running:client=asconnect.Client(key_id="...",key_contents="...",issuer_id="...")Getting your AppMost operations require an app identifier. This is not the same as the bundle ID you choose, but is an ID generated by Apple. The easiest way to get this is to run this code:app=client.app.get_from_bundle_id("com.example.my_bundle_id")Uploading a BuildUploading a build isn't technically part of the App Store Connect APIs, but a wrapper around altool is included to make things as easy as possible. Let's upload a build for your app:client.build.upload(ipa_path="/path/to/the/app.ipa",platform=asconnect.Platform.ios,)And if you want to wait for your build to finish processing:build=client.build.wait_for_build_to_process("com.example.my_bundle_id",build_number)build_numberis the build number you gave your build when you created it. It's used by the app store to identify the build.App Store SubmissionLet's take that build, create a new app store version and submit it,# Create a new versionversion=client.app.create_new_version(version="1.2.3",app_id=app.identifier)# Set the build for that versionclient.version.set_build(version_id=version.identifier,build_id=build.identifier)# Submit for reviewclient.version.submit_for_review(version_id=version.identifier)It's that easy. Most of the time at least. If you don't have previous version to inherit information from you'll need to do things like set screenshots, reviewer info, etc. All of which is possible through this library.Phased Distribution# Create a new versionversion=client.app.create_new_version(version="1.2.3",app_id=app.identifier)# Start a versions' phased release, the initial state of which is INACTIVEphased_release=client.version.create_phased_release(version_id=version.identifier)# Check on a phased releasephased_release=client.version.get_phased_release(version_id=version.identifier)# Advance or modify a phased releasephased_release=client.version.patch_phased_release(phased_release_id=phased_release.identifier,phased_release_state=PhasedReleaseState.active)phased_release=client.version.patch_phased_release(phased_release_id=phased_release.identifier,phased_release_state=PhasedReleaseState.pause)phased_release=client.version.patch_phased_release(phased_release_id=phased_release.identifier,phased_release_state=PhasedReleaseState.complete)# Deleteclient.version.delete_phased_release(phased_release_id=phased_release.identifier)Getting StartedFor developmentasconnectusespoetryContributingThis project welcomes contributions and suggestions.  Most contributions require you to agree to a
Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
the rights to use your contribution. For details, visithttps://cla.opensource.microsoft.com.When you submit a pull request, a CLA bot will automatically determine whether you need to provide
a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions
provided by the bot. You will only need to do this once across all repos using our CLA.This project has adopted theMicrosoft Open Source Code of Conduct.
For more information see theCode of Conduct FAQor
contactopencode@microsoft.comwith any additional questions or comments.