Bugfixes
- Support device class
APPLE_SILICON_MAC
on App Store Connect APIDevice
responses. PR #437 - Make undocumented
preOrder
and deprecatedinAppPurchases
relationships on App Store connect https://developer.apple.com/documentation/appstoreconnectapi/app/relationships-data.dictionary model optional . PR #439
Improvements
- Fail action
app-store-connect fetch-signing-files
early with descriptive error message if bundle ID identifier is not given. PR #438
Bugfixes
- Fix action
keychain add-certificates
for macOS 15.1 when adding certificates with empty password. PR #436 - Introduce a new retrying condition for
altool
commands as part ofapp-store-connect
action when unexpected return codes occurs. PR #435
Bugfixes
- Fix testcase duration parsing from
XCResult
bundle when using Xcode 16.0+. PR #433
This release contains changes from PR #431
Features
- Use new
xcresulttool
APIs for XcResult parsing when Xcode 16+ is selected. Applies toxcode-project
actionsrun-tests
,test-summary
andjunit-test-results
.
Bugfixes
- Omit
failures
anderrors
attributes from JUnit<testsuites>
in case none of the child<testsuite>
elements specify those values instead of setting them to0
.
Development
- Add new XcResult to JUnit test results converter implementation
Xcode16XcResultConverter
. - Rename
XcResultConverter
toLegacyXcResultConverter
. - Add abstract
XcResultConverter
which automatically chooses correct implementation. - Refactor module
codemagic.models.xctest.xcresult
to a package and move its contents to submodulelegacy_xcresult
. All public definitions remain accessible using the old namespace. - Add submodule
xcode_16_xcresult
to packagecodemagic.models.xctest.xcresult
. - Remove method
get_tool_version
fromXcResultTool
. - Add methods
is_legacy
,get_test_report_summary
andget_test_report_tests
toXcResultTool
. - Prohibit using
XcResultTool
methodsget_object
andget_bundle
when Xcode 16 or newer is selected.
Development
- Change release pipeline not to include source distributions in PyPI releases. Those are still available from GitHub. PR #429
Bugfixes
- Fix action
keychain add-certificates
on macOS 15.0. PR #428
Bugfixes
- Fix saving Apple code signing certificates to disk when using LibreSSL 3.0.0+. PR #427
Features
Bugfixes
- Cache generated fallback enumeration types so that enum identity checks work for undefined, but allowed enumerations. PR #425
Docs
- Update documentations for the following actions: PR #425
app-store-connect app-store-versions localizations
,app-store-connect beta-build-localizations create
,app-store-connect beta-build-localizations list
,app-store-connect builds add-beta-test-info
,app-store-connect builds submit-to-app-store
,app-store-connect publish
.
This release contains changes from PR #421 and PR #422
Development
- Add support for mutually exclusive groups on argument parser.
Deprecations
-
The argument
--project-id
has been deprecated in favor of--project-number
on all actions of the toolfirebase-app-distribution
to be compliant with the Firebase documentation. -
A warning message is shown if commands are invoked with the deprecated argument.
This is a bugfix version containing changes from PR #424 to fix test result parsing with Xcode 16.0 beta 3+.
Bugfixes
- The following actions were fixed when used in conjunction with Xcode 16.0 beta 3+:
xcode-project run-tests
,xcode-project test-summary
,xcode-project junit-test-results
.
Development
- Add
get_tool_version
method tocodemagic.models.xctests.XcResultTool
which can be used to detectxcresulttool
version from currently active Xcode developer directory.
This release contains changes from PR #415.
Bugfixes
- Support signing certificates with type
DEVELOPER_ID_APPLICATION_G2
forapp-store-connect
.
Development
- Update
ruff
settings to be compatible with latest version. - Update
pre-commit
hook versions.
This is a bugfix release to resolve a regression that was introduced in version 0.53.1. PR #413
Bugfixes
- Remove type-checking import statement that is not available on Python 3.7.
This bugfix release contains changes from PR #411.
Bugfixes
- Fix saving code signing certificates fetched from App Store Connect if the certificate subject line contains non-ascii characters and export is done using OpenSSL version 3.2+.
Dependencies:
- Set lower bound version limit
>= 38.0.0
tocryptography
dependency.
Feature
- Update action
app-store-connect publish
to allow adding builds to beta groups without submitting to TestFlight. PR #410
Feature
- Add optional argument
--platform
to actionapp-store-connect apps builds
to list builds only for selected platform. PR #407 - Add optional argument
--platform
to actionapp-store-connect builds list
to list builds only for selected platform. PR #407 - Add optional argument
--platform
to actionapp-store-connect apps expire-build-submitted-for-review
to expire builds only for specified platform. PR #407
Bugfixes
- Action
app-store-connect publish
will only expire builds for the same platform that is being published when invoked with option--expire-build-submitted-for-review
. PR #407 - Fix argument
--credentials
validation for toolgoogle-play
. PR #406
Documentation
- Update documentation for actions: PR #407
app-store-connect apps builds
,app-store-connect apps expire-build-submitted-for-review
,app-store-connect builds list
.
This is a bugfix release containing changes from PR #405. Apple removed idfaDeclaration
key from the data structure that represents App Store Version resources, which caused failures in App Store Connect client methods. Consequently, CLI actions started to fail.
Bugfixes
- Fix actions:
app-store-connect app-store-versions create
,app-store-connect app-store-versions update
,app-store-connect apps app-store-versions
,app-store-connect builds app-store-version
,app-store-connect builds submit-to-app-store
,app-store-connect publish
when executed with--app-store
option.
Development
- Remove attribute
idfaDeclaration
fromAppStoreVersion.Relationships
. - Update App Store Connect API mock response for App Store Version.
The highlight of this release is added support for phased releases when publishing application to App Store Connect, which was added in PR #402.
Features
- Add new actions to work with phased releases in App Store Connect (PR #402):
app-store-connect app-store-version-phased-releases enable
app-store-connect app-store-version-phased-releases set-state
app-store-connect app-store-version-phased-releases cancel
app-store-connect app-store-versions phased-release
- Update actions
app-store-connect builds submit-to-app-store
andapp-store-connect publish
support enabling and disabling releasing App Store version in phases. PR #402
Documentation
- Add documentation for new action group (PR #402):
app-store-connect app-store-version-phased-releases
- Update documentation for action groups (PR #402):
app-store-connect builds submit-to-app-store
app-store-connect publish
- Add documentation for actions (PR #402):
app-store-connect app-store-version-phased-releases enable
app-store-connect app-store-version-phased-releases set-state
app-store-connect app-store-version-phased-releases cancel
app-store-connect app-store-versions phased-release
Bugfixes
- Fix App Store Connect API responses deserialization for cases when resource contains an empty relationship. PR #401
- Fix globbing files using current path pattern. PR #403
Development
- Add missing attributes and relationships to
codemagic.apple.resources.App
andcodemagic.apple.resources.Build
. PR #383 - Define new enumerations
codemagic.apple.resources.enums.BuildAudienceType
andcodemagic.apple.resources.enums.SubscriptionStatusUrlVersion
. PR #383 - Add new model definition
codemagic.apple.resources.AppStoreVersionPhasedRelease
. PR #402 - Add new App Store Connect API resource manager
AppStoreVersionPhasedReleases
that implements HTTP client methods to work with App Store version phased releases. PR #402 - Add new HTTP client methods
read_app_store_version_phased_release
andread_app_store_version_phased_release_data
to App Store Connect API resource managerAppStoreVersions
. PR #402 - Refactor
BuildsActionGroup
ofAppStoreConnect
by moving methodssubmit_to_testflight
andsubmit_to_app_store
along used private methods to dedicated action classesSubmitToTestFlightAction
andSubmitToAppStoreAction
respectively. Python API via parentAppStoreConnect
class remains identical to what it was. PR #402 - Update public methods in
ResourceManagerMixin
to take bothResourceId
andResource
instances as methods arguments where only IDs were allowed before. PR #402
Improvements
- Remove usages of deprecated datetime properties on
x509.Certificate
instances. PR #399
Bugfixes
- Fix actions
firebase-app-distribution get-latest-build-version
andfirebase-app-distribution releases list
to support releases with non-integer build version. PR #397
Development
- CI: Use test matrix to define Python versions in GitHub actions test workflows. PR #396
This version reverts changes that were introduced in 0.50.4
as they did not have intended effect. PR #395
Bugfixes
- Fix
app-store-connect publish
action getting stuck while binary is being uploaded usingaltool
. PR #394
Bugfixes
- Remove deprecated attributes and relationships for App Store Connect App data structure. PR #392
availableInNewTerritories
attribute,availableTerritories
andprices
relationships.
Features
- Allow custom export options in export options properly list for
xcode-project build-ipa
actions. PR #391
Bugfixes
- Fix error handling for corrupt Xcresult parsing in
xcode-project
actions. PR #390
Features
- Add new actions to work with bundle identifier capabilities PR #388:
app-store-connect bundle-ids capabilities
to list the capabilities that are enabled for identifier,app-store-connect bundle-ids enable-capabilities
to enable capabilities for identifier,app-store-connect bundle-ids disable-capabilities
to disable capabilities for identifier.
This release contains changes from PR #386 and PR #387.
Features
- Unify
app-store-connect
command line API experience by gathering similar actions under respective action groups. - New action groups were added to group similar actions together:
app-store-connect bundle-ids
,app-store-connect certificates
,app-store-connect devices
,app-store-connect profiles
.
Deprecations The following actions are deprecated and show a warning message when invoked:
app-store-connect list-builds
(replaced byapp-store-connect builds list
),app-store-connect create-bundle-id
(replaced byapp-store-connect bundle-ids create
),app-store-connect delete-bundle-id
(replaced byapp-store-connect bundle-ids delete
),app-store-connect get-bundle-id
(replaced byapp-store-connect bundle-ids get
),app-store-connect list-bundle-id-profiles
(replaced byapp-store-connect bundle-ids profiles
),app-store-connect list-bundle-ids
(replaced byapp-store-connect bundle-ids list
),app-store-connect create-certificate
(replaced byapp-store-connect certificates create
),app-store-connect delete-certificate
(replaced byapp-store-connect certificates delete
),app-store-connect get-certificate
(replaced byapp-store-connect certificates get
),app-store-connect list-certificates
(replaced byapp-store-connect certificates list
),app-store-connect list-devices
(replaced byapp-store-connect devices list
),app-store-connect register-device
(replaced byapp-store-connect devices register
),app-store-connect create-profile
(replaced byapp-store-connect profiles create
),app-store-connect delete-profile
(replaced byapp-store-connect profiles delete
),app-store-connect get-profile
(replaced byapp-store-connect profiles get
),app-store-connect list-profiles
(replaced byapp-store-connect profiles list
).
Development
- Decorator
@action
signature was changed. Optional keyword argumentdeprecated_alias: str
was replaced by optionaldeprecation_info: ActionDeprecationInfo
which holds both version in which the action was deprecated, and the deprecated name of the action. - Decorator
@action
definition was moved fromcodemagic.cli.cli_app
tocodemagic.cli.action
. It is still accessible from packagecodemagic.cli
as before.
Documentation
- Remove documentation of deprecated actions:
app-store-connect list-builds
(replaced byapp-store-connect builds list
),app-store-connect create-bundle-id
(replaced byapp-store-connect bundle-ids create
),app-store-connect delete-bundle-id
(replaced byapp-store-connect bundle-ids delete
),app-store-connect get-bundle-id
(replaced byapp-store-connect bundle-ids get
),app-store-connect list-bundle-id-profiles
(replaced byapp-store-connect bundle-ids profiles
),app-store-connect list-bundle-ids
(replaced byapp-store-connect bundle-ids list
),app-store-connect create-certificate
(replaced byapp-store-connect certificates create
),app-store-connect delete-certificate
(replaced byapp-store-connect certificates delete
),app-store-connect get-certificate
(replaced byapp-store-connect certificates get
),app-store-connect list-certificates
(replaced byapp-store-connect certificates list
),app-store-connect list-devices
(replaced byapp-store-connect devices list
),app-store-connect register-device
(replaced byapp-store-connect devices register
),app-store-connect create-profile
(replaced byapp-store-connect profiles create
),app-store-connect delete-profile
(replaced byapp-store-connect profiles delete
),app-store-connect get-profile
(replaced byapp-store-connect profiles get
),app-store-connect list-profiles
(replaced byapp-store-connect profiles list
).
- Add documentation for new action groups:
app-store-connect bundle-ids
,app-store-connect certificates
,app-store-connect devices
,app-store-connect profiles
.
- Update documentation for action groups:
app-store-connect builds
.
- Add documentation for actions:
app-store-connect builds list
(used to beapp-store-connect list-builds
)app-store-connect bundle-ids create
(used to beapp-store-connect create-bundle-id
)app-store-connect bundle-ids get
(used to beapp-store-connect get-bundle-id
)app-store-connect bundle-ids list
(used to beapp-store-connect list-bundle-ids
)app-store-connect bundle-ids profiles
(used to beapp-store-connect list-bundle-id-profiles
)app-store-connect app-store-connect certificates create
(used to beapp-store-connect create-certificate
)app-store-connect app-store-connect certificates delete
(used to beapp-store-connect delete-certificate
)app-store-connect app-store-connect certificates get
(used to beapp-store-connect get-certificate
)app-store-connect app-store-connect certificates list
(used to beapp-store-connect list-certificates
)app-store-connect app-store-connect devices list
(used to beapp-store-connect list-devices
)app-store-connect app-store-connect devices register
(used to beapp-store-connect register-device
)app-store-connect app-store-connect profiles create
(used to beapp-store-connect create-profile
)app-store-connect app-store-connect profiles delete
(used to beapp-store-connect delete-profile
)app-store-connect app-store-connect profiles get
(used to beapp-store-connect get-profile
)app-store-connect app-store-connect profiles list
(used to beapp-store-connect list-profiles
)
This release contains changes from PR #382
Features
- Speed improvements for
app-store-connect
actionsget-latest-testflight-build-number
,get-latest-app-store-build-number
andapp-store-connect get-latest-build-number
in case the application has a lot of versions in App Store Connect.
Development
- Add new App Store Connect API Client methods:
codemagic.apple.app_store_connect.apps.Apps.list_app_store_versions_data
to fetch application's App Store versions aslist[dict]
,codemagic.apple.app_store_connect.versioning.AppStoreVersions.read_build_data
to fetch build of App Store version asdict
,codemagic.apple.app_store_connect.versioning.PreReleaseVersions.list_data
to fetch pre-release versions aslist[dict]
,codemagic.apple.app_store_connect.versioning.PreReleaseVersions.list_builds_data
to fetch builds of pre-release version aslist[dict]
.
- Move implementations of latest build number actions from
codemagic.tools.AppStoreConnect
to dedicated classes and plug them back in as mixins.
Bugfixes
- Fix error handling for invalid App Store Connect API private keys for
app-store-connect
actions. PR #381
This PR contains changes from PR #380
Features
- Add new actions:
app-store-connect app-store-versions get
to show App Store Version information. See official API method documentation.app-store-connect review-submission-items delete
to remove existing review submission item from App Store Connect. See official API method documentation.app-store-connect review-submissions items
to list review submission items of specified review submission. See official API method documentation.
- Add option
--locale
to actionapp-store-connect app-store-versions localizations
to filter retrieved localizations by given specified locales. - Improve error message for action
app-store-connect review-submission-items create
if creating review submission item fails because required values are missing for application default locale on respective App Store Version.
Bugfixes
- Fix invoking action
app-store-connect review-submission-items create
from command line. - Do not require device IDs for action
app-store-connect create-profile
when not creating development or Ad Hoc provisioning profiles.
Development
- Add new module
codemagic.utilities.case_conversion
with public functionssnake_to_camel
andcamel_to_snake
. - Add new client method
list_items
to review submissions resource manager insrc/codemagic/apple/app_store_connect/versioning/review_submissions.py
to retrieve submission items list from App Store Connect. AppStoreConnectError
exceptions now have fieldapi_error: Optional[ErrorResponse]
to store App Store Connect API error information.
Documentation
- Update documentation for action groups
app-store-connect app-store-versions
,app-store-connect review-submissions
,app-store-connect review-submission-items
.
- Add documentation for actions:
app-store-connect app-store-versions get
,app-store-connect review-submissions items
,app-store-connect review-submission-items delete
.
- Update documentation for actions:
app-store-connect app-store-versions localizations
,app-store-connect review-submission-items create
,app-store-connect create-profile
.
Bugfixes
- Fail gracefully with informative error message if CLI args are passed with invalid encoding. PR #376
- Do not require
--device-ids
for actionapp-store-connect create-profile
when not creating development or ad-hoc provisioning profiles. PR #377 - Fix error handling if device IDs are missing and development or ad-hoc provisioning profiles are being created (applies to actions
app-store-connect create-profile
andapp-store-connect fetch-signing-files
). PR #377 - Fix resolving certificate type for Mac Catalyst and In-House provisioning profiles. PR #378
- Improve error handling for
google-play
actions. Captureoauth2client.client
errors in Google Play API client so that the action fails gracefully with appropriate error message. PR #379
Docs
- Update option
--device-ids
documentation for actionapp-store-connect create-profile
. PR #377
Bugfixes
- Fix handling of relative certificate path patterns for action
keychain add-certificates
. PR #374
Bugfixes
- Fix actions
firebase-app-distribution get-latest-build-version
andfirebase-app-distribution releases list
for cases when specified application does not have any releases available. PR #373
Bugfixes
- Update action
xcode-project use-profiles
. Fix assigning provisioning profiles to Xcode targets that have SDK specific provisioning profile specifiers. PR #371 - Do not crash
xcode-project
actionsclean
,build-ipa
andrun-tests
ifxcpretty
is not installed. PR #372
Changes in this release are from PR #370 and add Python 3.12 compatibility.
PEP-632 deprecated distutils
module, and it was removed entirely in Python 3.12. This release ensures that distutils
module is not used any more.
None of the breaking changes have an effect on command line usage, only the Python API is affected.
Development
- Breaking: Type of
codemagic.models.Xcode.version
property was changed. Instead ofdistutils.version.LooseVersion
it is nowpackaging.version.Version
. - Breaking: Type of
codemagic.models.simulator.Runtime.runtime_version
property was changed. Instead ofdistutils.version.LooseVersion
it is nowpackaging.version.Version
.
Features
- Show full executed command in error output if action execution fails unexpectedly. PR #364
- Show full exception tracktrace in STDOUT logs if
--verbose
option is set. PR #364
Bugfixes
- Fix handing of required arguments to
google-play
if they are defined as empty strings (--track
,-tracks
,--package-name
,--source-track
and--target-track
). PR #363 - Fix looking for errors from Xcode build logs as part of
xcode-project build-ipa
if the logs contain byte sequences that cannot be decoded. PR #365
Development
- Support iterating over binary file descriptors with
codemagic.utilities.backwards_file_reader.iter_backwards
. PR #365
Bugfixes
- Fix Google Play release promotion with action
google-play tracks promote-release
for releases that have release notes. PR #361
Development
- Add GitHub Actions job to run tests with Python 3.12. PR #362
Features
- Add new option
--max-find-build-wait
to actionapp-store-connect publish
to configure maximum waiting time to discover uploaded build from App Store Connect before failing publishing. Defaults to 10 minutes. PR #355
Docs
- Add option
--max-find-build-wait
documentation for actionapp-store-connect publish
. PR #355 - Update option
--cancel-previous-submissions
documentation for actionsapp-store-connect builds submit-to-app-store
andapp-store-connect publish
. PR #353
Bugfixes
- Support Apple Vision Pro devices in App Store Connect API read device information and list devices endpoints. This is done by declaring
APPLE_VISION_PRO
definition in enumerationcodemagic.apple.resources.enums.DeviceClass
. PR #357
Bugfixes
- Fix initializing
codemagic.models.application_package.Ipa
objects for big binaries (exceeding 4GB in size). PR #356
Bugfixes
- Ensure that build for correct platform is looked up from App Store Connect after initial upload completes using
app-store-connect publish
. PR #352
Additions and changes from pull request #349. Resolves issue #344.
Features
- Add new option
--include-version
toapp-store-connect
actionsget-latest-build-number
,get-latest-app-store-build-number
andget-latest-testflight-build-number
. If specified, the action outputs matched build's version string in addition to build number.
Bugfixes
- Output valid
JSON
string withapp-store-connect
actionsget-latest-build-number
,get-latest-app-store-build-number
andget-latest-testflight-build-number
if--json
option is specified.
Docs
- Documentation was updated for actions:
app-store-connect get-latest-build-number
,app-store-connect get-latest-app-store-build-number
,app-store-connect get-latest-testflight-build-number
.
Features
- Log out processed build and its beta detail information before submitting it to App Store or TestFlight. PR #347
Additions and changes from pull request #345.
Features
- Add a new action
google-play tracks promote-release
to promote a release from one Google Play release track to another.
Development
- Define a new common argument type
bounded_number
for CLI usage that can be used to load floats and integers from CLI inputs within specified ranges. - Add a new client method
update_track
to update release track in Google Play API clientcodemagic.google_play.api_client.GooglePlayDeveloperAPIClient
.
Documentation
- Update documentation for action group
google-play tracks
. - Add documentation for action
google-play tracks promote-release
.
Additions and changes from pull request #340. Resolves issue #339.
Features
- Support submitting macOS packages to TestFlight using
app-store-connect publish --testflight
. - Add new action
app-store-connect builds beta-details
to show beta detail information for specific build. - Waiting for App Store Connect build processing also waits for beta builds details to be processed before returning.
Development
- Add new client method
read_beta_detail
to builds resource manager insrc/codemagic/apple/app_store_connect/builds/builds.py
. - Add new definitions for App Store Connect models:
BuildBetaDetail
for https://developer.apple.com/documentation/appstoreconnectapi/buildbetadetail,ExternalBetaState
enumeration for https://developer.apple.com/documentation/appstoreconnectapi/externalbetastate,InternalBetaState
for https://developer.apple.com/documentation/appstoreconnectapi/internalbetastate.
Documentation
- Add documentation for action
app-store-connect builds betat-details
.
Special thanks for contribution to @nilsreichardt.
Bugfixes
- Fix iOS application package abstraction layer in
codemagic.models.application_package.Ipa
to support large archives (exceeding 4GB in size). PR #342
Bugfixes
- Do not require certificate private key to show certificate information using
app-store-connect get-certificate
if certificate is not saved to disk. PR #337
Features
- Add
--omit-sdk
option to actionxcode-project run-tests
to exclude-sdk
flag from being passed to underlyingxcodebuild test
command. PR #335
Changes in this release improve app-store-connect register-device
action by allowing to pass multiple UDIDs from different sources.
None of the breaking changes have an effect on command line usage, only the Python API of is affected.
Features
- Update
app-store-connect register-device
action:- The
--udid
argument now accepts multiple UDIDs. - The
--udid
argument now accepts a file or an environment variable as a source for UDIDs. - Introduce
--ignore-registration-errors
flag to continue registering devices despite errors - Introduce short flags:
-n
flag for the device name,-u
flag for the UDIDs.
- The
Development
AppStoreConnect.register_device
action method update:- It now accepts a list of UDIDs for registration at the keyword argument
device_udids
. - Breaking:
AppStoreConnect.register_device
now returns a list of registered devices.
- It now accepts a list of UDIDs for registration at the keyword argument
- Add
ignore_registration_errors
keyword argument to continue registering devices despite errors.
Documentation
- Update documentation for
app-store-connect register-device
action:- Add new short flags:
-n
and-u
. - Add the description for the new
--ignore-registration-errors
option. - Update the action description.
- Add new short flags:
Development
- Format Python source code with Black. PR #322
- Check Python linting rules with Ruff. This replaces Flake8 and isort checks. PR #322
Deprecations
- Method
list_capabilility_ids
ofcodemagic.apple.app_store_connect.provisioning.BundleIds
is deprecated and shows a deprecation warning on calls. Uselist_capability_ids
of the same class instead. PR #326
Development
- Define
deprecated
decorator incodemagic.utilities.decorators
to mark functions and methods as obsolete. PR #326
Features
- Add support for visionOS runtime. PR #325
Bugfixes
- Do not require
releaseNotes
from Firebase App Distribution release responses. PR #323
Dependencies
- Set lower bound version limit
>= 2.84.0
togoogle-api-python-client
Python dependency in order to comply with Firebase App Distribution APIs. PR #322
Development
- Add interface to declare aliases for deprecated actions. PR #187
Features
- Introduce
firebase-app-distribution
tool with the actions:firebase-app-distribution releases list
action to list releasesfirebase-app-distribution get-latest-build-version
to get a version number for the latest release build
Development
- Introduce action methods:
FirebaseAppDistribution.list_releases
FirebaseAppDistribution.get_latest_build_version
Tests
- Coverage for Firebase client
FirebaseClient
- Coverage for action methods:
FirebaseAppDistribution.list_releases
andFirebaseAppDistribution.get_latest_build_version
Documentation
- Document
firebase-app-distribution
tool - Document actions:
firebase-app-distribution releases list
firebase-app-distribution get-latest-build-version
Features
- Improve Python API for module
codemagic.tools.keychain
. Allow passing passwords as strings in addition tocodemagic.tools.keychain.Password
forKeychain
methods. PR #315
Bugfixes
- Do not require
detail
attribute from App Store Connect API error responses. PR #316
Development
- Marginal changes to start using timezone aware datetimes instead of timezone unaware datetimes. PR #313
Dependencies
- Remove upper version limit from
cryptography
dependency. PR #309
Docs
- Documentation was updated for actions:
app-store-connect get-latest-build-number
,app-store-connect get-latest-app-store-build-number
,app-store-connect get-latest-testflight-build-number
.
Bugfix
- Improve action
xcode-project use-profiles
stability so that different invocation with the same set of provisioning profiles will always yield the same changeset to Xcode project settings. PR #308
Bugfix
- Update flag
--cancel-previous-submissions
for theapp-store-connect builds submit-to-app-store
action to wait for Apple's confirmation that the submission is cancelled before attempting to submit a new build.
This is an enhancement release to further streamline the App Store review submission automation capabilities.
Additions and changes from pull request #289. Resolves issue #289.
Features
- Add new action
app-store-connect apps list-review-submissions
to list existing review submissions in the App Store for a specific application. See official API method documentation. - Add new action
app-store-connect apps cancel-review-submissions
to cancel existing review submissions in the App Store based on their type for a specific app. Uses the already existingapp-store-connect review-submissions cancel
action internally that allows to set the submission status tocanceled
usingPATCH
. See official API method documentation. - Add new action
app-store-connect builds expire
to expire a specific build that has been uploaded to App Store Connect. Modifies the existing build resource to an expired status usingPATCH
. See official API method documentation. - Add new action
app-store-connect apps expire-builds
to expire all builds uploaded to App Store Connect except the given build(s) for the specific application. Uses the aforementionedapp-store-connect builds expire
action internally. - Add new action
app-store-connect apps expire-build-submitted-for-review
to expire build in App Store Connect that has been submitted to review and has not beenApproved
for a specific application. Uses the aforementionedapp-store-connect builds expire
action internally. - Add new action
app-store-connect builds app
to get the application information based on the given build. - Add flags
--cancel-previous-submissions
and--expire-build-submitted-for-review
to theapp-store-connect publish
action. - Add flag
--beta-review-state
toapp-store-connect apps builds
andapp-store-connect list-builds
actions for filtering builds based on their beta review state. - Add flag
--cancel-previous-submissions
to theapp-store-connect builds submit-to-app-store
action. - Add flag
--expire-build-submitted-for-review
to theapp-store-connect builds submit-to-testflight
action.
Docs
- Documentation updated for existing actions:
- new option
--beta-review-state
for the actionapp-store-connect apps builds
- new option
--cancel-previous-submissions
for the actionapp-store-connect builds submit-to-app-store
- new option
--expire-build-submitted-for-review
for the actionapp-store-connect builds submit-to-testflight
- new option
--beta-review-state
for the actionapp-store-connect list-builds
- new options
--expire-build-submitted-for-review
and--cancel-previous-submissions
for the actionapp-store-connect publish
- description update for the
app-store-connect review-submissions cancel
action
- new option
- Documentation added for new actions:
app-store-connect builds app
app-store-connect builds expire
app-store-connect apps expire-builds
app-store-connect apps expire-build-submitted-for-review
app-store-connect apps cancel-review-submissions
app-store-connect apps list-review-submissions
Bugfixes:
- Update action
app-store-connect build-ipa
to useCODE_SIGN_STYLE=Manual
xcarg for underlyingxcodebuild archive
command when building with Xcode 14+ and none of the signing files are managed by Xcode. PR #302 - Make App Store and prerelease version comparisons more robust for
app-store-connect
actions. PR #306
Dependencies
- Declare direct Python dependency for package
packaging
. Previously it was indirectly required bysetuptools
. PR #306
This release includes changes from PR #304.
Features
- Add option to include only expired or not expired builds to the latest build number lookup with action
app-store-connect get-latest-testflight-build-number
.
Bugfixes
- Avoid using included resources when listing data with App Store Connect API for actions that detect the latest build number. When listing App Store or Prerelease (TestFlight) versions with included builds, then not all existing builds were present in the response. Fixed actions:
app-store-connect get-latest-testflight-build-number
,app-store-connect get-latest-app-store-build-number
andapp-store-connect get-latest-build-number
Development
- Remove unused methods:
AppStoreVersions.list_with_include
,PreReleaseVersions.list_with_include
.
- New API methods:
PreReleaseVersions.list
,PreReleaseVersions.list_builds
.
Development
- Regenerate
poetry.lock
with updated dependencies for development environments. PR #301 - Update type hints to be compatible with
mypy
version0.991
. PR #301 - Marginal code formatting changes. PR #301
This is a bugfix release including changes from PR #300.
- Fixes the actions that detect the latest build number from App Store Connect for App Store or Pre Release (TestFlight) versions:
app-store-connect get-latest-testflight-build-number
,app-store-connect get-latest-app-store-build-number
andapp-store-connect get-latest-build-number
.
Bugfix
- Support Python 3.11.1 PR #295.
This release contains changes from PR #290.
CI
- Store releases only on PyPI and GitHub releases.
- Include wheel with fixed name under GitHub release assets so that latest version could be accessed with permalink.
This release updates the current version of bundletool
, as it is outdated, and issues potentially concerning it have risen for users with newer projects. Reported in issue #286.
Dependencies
- Update
bundletool
version from0.15.0
to1.13.1
. PR #287
Bugfix
- Remove mutable default value from
codemagic.models.Keystore
fieldcertificate_attributes
. PR #284
Bugfix
- Fix regression from PR #283.
Features
- Update action
xcode-project use-profiles
argument--custom-export-options
to accept export options definitions from file or environment variable references. If the value is not defined using CLI flag, it is automatically checked from environment variableXCODE_PROJECT_CUSTOM_EXPORT_OPTIONS
by default. PR #283
Features
- Add action
app-store-connect get-latest-build-number
that finds the highest build number across both TestFlight and App Store builds. PR #281
Bugfix:
- Fix action
xcode-project detect-bundle-id
for cases whenxcodebuild -showBuildSettings
output does not havePRODUCT_BUNDLE_IDENTIFIER
entry for some build settings. PR #280
Improvements:
- Action
xcode-project use-profiles
fails in case active Ruby installation does not havexcodeproj
gem available. Should that happen, show appropriate and actionable error message. PR #277
Bugfix:
- Do not throw
AssertionError
fromCertificate.from_p12
in case the given PKCS#12 container does not contain a certificate. Raise aValueError
with appropriate error message instead. PR #274.
Development
- Regenerate
poetry.lock
with updated dependencies for development environments. PR #275
This release includes changes from PR #271.
Docs
- Update documentation for action
xcode-project use-profiles
option--custom-export-options
.
This release includes changes from PR #269.
Bugfix:
- Previously non-encrypted private keys and PKCS#12 containers were treated equivalently to those that were encrypted with empty string. Now empty password for non-encrypted secret will yield an error, and vice-versa, not providing password for secret that is encrypted with empty string will also fail with encryption error.
Dependencies:
- Remove direct
pyOpenSSL
dependency.
Development:
- Replace
OpenSSL.crypto
usages with alternatives fromcryptography
library. - Deprecate initialization of
codemagic.models.Certificate
fromOpenSSL.crypto.X509
instances. For now this will issue a warning, but will be fully removed in future versions.
Dependencies:
- Set upper bound version limit
<38.0.0
tocryptography
dependency. PR #268
This release includes changes from PR #266.
Features:
- Add
xcode-project show-build-settings
action. It outputs Xcode project build setting usingxcodebuild -showBuildSettings
command. - Update
xcode-project build-ipa
action to runxcodebuild -showBuildSettings
beforexcodebuild archive
to capture Xcode project build settings. The output of build settings is hidden by default, but shown if--verbose
flag is set.
This is a bugfix release to address regression from PR #261.
Bugfix
- Fix setting code signing settings for unit test targets if matching host application target is not found. PR #262
Bugfix
- Set proper code signing settings on Xcode unit testing targets (targets with product type
com.apple.product-type.bundle.unit-test
) usingxcode-project use-profiles
when appropriate code signing information is present. PR #261
Features
- Action
app-store-connect fetch-signing-files
will create missing provisioning profiles so that all eligible team code signing certificates are included in it. PR #257
Bugfixes
- Configure proper signing info settings for Xcode UI testing targets with action
xcode-project use-profiles
provided that suitable signing files exist. PR #258
Docs
- Replace dead docstrings for
Profiles Profiles.list_device_ids
,Profiles.list_certificate_ids
,Profiles.get_bundle_id_resource_id
with pointers to the resources. Reported in issue #237. PR #259
Bugfixes
- Show error message when no matching test device is found in the Apple Developer Portal when creating an Ad Hoc or development provisioning profile. PR #256
Development:
- Support file-like objects for
codemagic.utilities.backwards_file_reader.iter_backwards
in addition to file paths. PR #255
Development:
- Save timestamp along with other failed App Store Connect HTTP request info. PR #254
Features:
- Add new action
android-keystore certificate
to show certificate information for specific alias in the keystore. PR #253
Features:
- Tool
app-store-connect
can now retry App Store Connect API requests that fail with status 5xx (server error). Number of retries can be configured by command line option--api-server-error-retries
, or respective environment variableAPP_STORE_CONNECT_API_SERVER_ERROR_RETRIES
. PR #249
Development
- Save unexpected exception information and stacktrace to
$TMPDIR/codemagic-cli-tools/exceptions/yyyy-mm-dd/
. PR #248 - Save unsuccessful App Store Connect HTTP request and response information to
$TMPDIR/codemagic-cli-tools/failed-http-requests/yyyy-mm-dd/
. PR #248
Docs
- Update tool
app-store-connect
docs with--api-server-error-retries
option. PR #250 - Add the changelog URL to the
pyproject.toml
project file so that the changelog reference is included under project links in PyPI. PR #247
This is a bugfix release including changes from PR #246.
Bugfixes
- Fix matching a profile in
app-store-connect fetch-signing-files
for cases wheretype
is defined asMAC_APP_DIRECT
.
This is a bugfix release including changes from PR #245.
Bugfixes
- Fix
xcode-project use-profiles
for cases when bundle identifier is defined in information property list files. Add fallback bundle identifier detection from Info.plist file to code signing setup script ifPRODUCT_BUNDLE_IDENTIFIER
is not resolved from build configuration.
This release includes changes from PR #244. The goal of this release is to migrate to PEP 518 compliant build system by using Poetry dependency management and packaging tool.
Development
- Migrate project dependency management from Pipenv to Poetry.
- Add
pyproject.toml
project file to specify dependencies, project packaging information and code style requirements. Flake8 configuration remains in.flake8
as it does not supportpyproject.toml
yet. - Changes to GitHub actions:
- Update caching configuration.
- Replace
pipenv
usages in GitHub action with Poetry.
- Changes to Codemagic workflows:
- In
release
workflow run CI checks before building wheels and distribution. Use Poetry for building and PyPI releases. - Use Poetry in
test
workflow instead of Pipenv. - Define
release-test
workflow to build and release binary to PyPI test mirror.
- In
- Project files
setup.cfg
,setup.py
,Pipfile
andPipfile.lock
were removed. - Add
.pre-commit-config.yaml
which definespre-commit
hooks. - Move Ruby script
bin/code_signing_manager.rb
tosrc/codemagic/scripts/code_signing_manager.rb
. This script will not be added to system$PATH
at the time of package installation anymore. Consequence of this is that the actionxcode-project use-profiles
will now use the script which is bundled with installation, instead of what is available globally in the system.
Docs
- Update
README.md
:- update example code snippets that are out of date,
- include all installed CLI tools to installed tools list,
- add instructions for setting up development environment.
This release includes changes and fixes from PR #243.
Bugfixes
- Fix properties
not_after
andnot_before
ofcodemagic.models.Certificate
to work withpyOpenSSL
versions<=19.1.0
.
Development
- Remove type stubs for package
cryptography
. - Add tuple
SUPPORTED_PUBLIC_KEY_TYPES
to modulecodemagic.models.private_key
. - Remove
OpenSSL.crypto.X509
usages fromcodemagic.models.Certificate
internals by replacing them with functionality fromcryptography.x509.Certificate
.
Features:
- Action
xcode-project run-tests
will now respect retried testcase outcome. In case the initial testcase execution fails, but retrying is turned on (by-retry-tests-on-failure
Xcode testing flag) and subsequent testcase run turns out to be successful, then this testcase will not be considered as failed in the context of whole test suite. PR #242
Dependencies:
- Remove upper bound version limit
<37
fromcryptography
dependency, but exclude version37.0.0
as it conflicts withpyOpenSSL
. PR #241 - Remove upper bound version limit from
google-api-python-client
as all used functionality works also with recent versions. PR #241
Bugfixes:
- Fix
ProvisioningProfile.application_identifier
property for profiles that list associated application identifiers. PR #240
Features:
- Sanitize environment variable values in
altool
error logs when publishing to App Store Connect usingapp-store-connect publish
fails. PR #238
Bugfixes:
- Fix handling invalid argument errors for grouped CLI arguments that are defined via environment variables. PR #239
Bugfixes:
- Fix
AttributeError
that can occur on review submission creation error handling as part of actionapp-store-connect builds submit-to-app-store
. PR #236
Development
- Make type interface more strict for App Store Connect API client and resource definitions. PR #221
- Improve
ResourceManagerMixin
type interface. PR #235
Bugfixes:
- Fix
AttributeError
exceptions when constructing URLs for App Store Connect API requests to list certificates, certificate IDs, devices or device IDs for givenProfile
instance. PR #221
Fixes
- Action
xcode-project use-profiles
failed to assign code signing information to build configurations that inherited build settings fromxcconfig
files. Reported in issue #220. PR #232
Development
- Use default values for all arguments in
Keychain.add_certificates
andXcodeProject.use_profiles
. PR #226
Dependencies
This release includes changes from PR #227.
Apple has deprecated the Create an App Store Version Submission and replaced it by Review Submissions API. Changes included in this release update logic driving App Store publishing as part of actions app-store-connect publish
and app-store-connect builds submit-to-app-store
.
Features
- Add new action
app-store-connect review-submissions create
to create new review submission request for application's latest App Store Version. - Add new action
app-store-connect review-submissions get
to show review submission information. - Add new action
app-store-connect review-submission-items create
to add contents to review submission for App Store review request. - Add new action
app-store-connect review-submissions confirm
to confirm pending review submission for App Review. - Add new action
app-store-connect review-submissions cancel
to discard review submission from App Review.
Development
- Breaking: Return type for
AppStoreConnect.submit_to_app_store
changed. Instead ofAppStoreVersionSubmission
it now returns tuple(ReviewSubmission, ReviewSubmissionItem)
. - Add new resource manager properties
review_submissions
andreview_submissions_items
toAppStoreConnectApiClient
. - Update
AppStoreVersion
model with optional relationshipsappClipDefaultExperience
andappStoreVersionExperiments
. - Define new
ReviewSubmissionState
andReviewSubmissionItemState
enumerations for App Store Connect API resources. - Add model definition for resource
ReviewSubmission
. - Add model definition for resource
ReviewSubmissionItem
. - Add method new methods to
AppStoreConnect
:cancel_review_submission
,confirm_review_submission
,create_review_submission
,create_review_submission_item
.
Tests
- Update mock for
AppStoreVersion
resource test.
Docs
- Add docs for app-store-connect
review-submission-items create
- Add docs for app-store-connect
app-store-connect review-submissions cancel
- Add docs for app-store-connect
app-store-connect review-submissions confirm
- Add docs for app-store-connect
app-store-connect review-submissions create
- Add docs for app-store-connect
app-store-connect review-submissions get
This release includes changes from PR #224.
Features
- Add option
--archive-method
to actionxcode-project use-profiles
to limit code signing setup for specific profile type only. If archive method is not given, the action will attempt to use all profiles as it worked before.
Development
- Breaking: Definitions of enumeration base classes
ResourceEnum
andResourceEnumMeta
were moved from modulecodemagic.apple.resources.enums
tocodemagic.models.enums
. ArchiveMethod
enumeration parent class was changed from plainenum.Enum
toResourceEnum
.ArchiveMethod
class has new factory methodfrom_profile(profile: ProvisioningProfile)
.- Method
XcodeProject.use_profiles
has new optional keyword argumentarchive_method: Optional[ArchiveMethod] = None
.
Docs
- Update docs for action
xcode-project use-profiles
.
Improvements
- Speed up
xcresult
parsing forxcode-project
actionsrun-tests
,junit-test-results
andtest-summary
. PR #223
Fixes
- Allow defining
distributionBundleIdentifier
export option by--custom-export-options
forxcode-project use-profiles
. PR #218
Dependencies
- Add upper bound to
cryptography
Python dependency (version<37.0.0
) to persist compatibility with currently availablepyOpenSSL
version. PR #217
Changes in this release improve usability of tool google-play
. Updates are from PR #215 and PR #216.
Breaking
None of the breaking changes have an effect on command line usage, only the Python API of is affected.
- Method signature changes:
- Signature of
GooglePlay
(toolgoogle-play
) initialization was changed:- positional argument
package_name
was removed, - keyword argument
log_requests
was removed, - keyword argument
json_output
was removed, - positional argument
credentials
accepts now Google Play service account credentials both as JSONstr
and parseddict
.
- positional argument
- Signature of
GooglePlayDeveloperAPIClient
initialization was changed and simplified:- positional argument
resource_printer
was removed, - positional argument
package_name
was removed.
- positional argument
GooglePlay
methodget_latest_build_number
requirespackage_name
argument,GooglePlayDeveloperAPIClient
methodscreate_edit
anddelete_edit
requirepackage_name
argument,- property
max_version_code
ofTrack
was converted into a methodget_max_version_code()
.
- Signature of
- CLI argument definitions for
google-play
were updated and moved fromcodemagic.tools.google_play
tocodemagic.tools.google_play.arguments
. - Removed definitions:
- enumeration
codemagic.google_play.resources.TrackName
was removed. - class
codemagic.google_play.ResourcePrinter
was removed. - exception
codemagic.google_play.VersionCodeFromTrackError
was removed. - removals in
GooglePlayDeveloperAPIClient
:- method
get_track_information
was removed, - property
service
was removed.
- method
- enumeration
Features
- Update tool
google-play
:- Allow using custom release tracks with action
google-play get-latest-build-number
. - Add new action
google-play tracks get
to get information about specific release track for given package name. - Add new action
google-play tracks list
to get information about all available release tracks for given package name.
- Allow using custom release tracks with action
Development
- Module
codemagic.tools.google_play
was refactored by splitting single source file into a subpackage.- Define actions group
TracksActionGroup
for working with tracks. - Move
get_latest_build_number
action / method implementation into separate subclassGetLatestBuildNumberAction
.
- Define actions group
- Rework the internals of
GooglePlayDeveloperAPIClient
:- add context manager to handle
edit
lifecycle so that callers don't have to take care of deletion afterwards, - add new methods
get_track
andlist_tracks
, - service resource instance was removed from class instance as it wasn't thread safe.
- add context manager to handle
- Update
mypy
version. - Add more tests for
GooglePlay
tool.
Docs
- Update docs for tool
google-play
. - Update docs for action
google-play get-latest-build-number
. - Add docs for action group
google-play tracks
. - Add docs for action
google-play tracks get
. - Add docs for action
google-play tracks list
.
Fixes
- Action
google-play get-latest-build-number
crashed whenTrack
response from Google Play Developer API did not specifyincludeRestOfWorld
field forCountryTargeting
. PR #214
This release includes changes from PR #213 to improve command line usage and Python client usability for managing Android keystores.
Breaking
- Remove key password option (specified by
-l
,--ks-key-pass
or--key-pass
) from actionandroid-keystore verify
as it is not used.
Features
- Add new action
android-keystore certificates
to list information about certificates included in the keystore.
Development
- Breaking. Remove
key_password
keyword argument fromAndroidKeystore.verify
. - Breaking. Change signature of
Keytool.validate_keystore
. Instead of takingkeystore: Keystore
as the argument, nowkeystore_path: pathlib.Path
,keystore_password: str
and,key_alias: str
are taken. Method functionality remains intact. - Add new method
Keytool.get_certificates -> List[Certificate]
to extract certificates from specified android keystore. - Add new convenience methods to
codemagic.models.Certificate
:get_summary() -> Dict
to generate JSON serializable dictionary containing information about the certificate.get_text_summary() -> str
that generates a printable and user-readable string representation of the certificate's information.
Docs
- Update documentation for tool
android-keystore
. - Update documentation for action
android-keystore verify
. - Add documentation for action
android-keystore certificates
.
Fixes
- Return
True
fromCertificate.is_development_certificate
property if the certificate is Mac Development code signing certificates, as those certificates are used to sign development versions of Mac apps. PR #212
Development
- Add properties
creation_date
andexpiration_date
toProvisioningProfile
object. PR #211
This is a bugfix release from PR #210 to fix problems with tool android-keystore
that was first added in version 0.21.0.
Improvements
- Use better error message for keystore validation in case non-keystore file is passed for validation.
Fixes
- Fix debug keystore creation using action
android-keystore create-debug-keysotre
. It was using invalid keyword argument to specify keystore path. - Make keystore path argument
--keystore
required forandroid-keystore create
andandroid-keystore verify
actions.
This is a bugfix release from PR #209.
Fixes
- Fix loading code signing entitlements from Xcode archives and iOS App Store Packages (
*.xcarchive
and*.ipa
files respectively) with Xcode 13.3+. A tool calledcodesign
which is bundled with Xcode is used to extract code signing entitlements information from application packages. The version ofcodesign
included in Xcode 13.3 came with some modifications that broke the flow which is used to collect code signing entitlements.
Development
- PEP 561 compliance. Include
py.typed
marker file to indicate that this package has inline type hints. PR #207
This release contains updates from PR #206.
Features
- Add new tool
android-keystore
to Android app code signing keystores. New actions are:android-keystore create
to initialize new Android keystore,android-keystore create-debug-keystore
to initialize new debug Android keystore with default settings,android-keystore verify
to check that Android keystore alias and passwords are correct.
Development
- Add optional
env
keyword argument toCliProcess.execute
method to specify process specific environment variables. - Add dataclass
CertificateAttributes
to store certificate issuer information. - Add dataclass
Keystore
to store keystore information. - Add new module
codemagic.shell_tools
to contain Python wrappers for command line utilities. - Add minimal Python wrapper for
keytool
command line utility incodemagic.shell_tools.Keytool
.
Docs
- Add documentation for tool
android-keystore
. - Add documentation for action
android-keystore create
. - Add documentation for action
android-keystore create-debug-keystore
. - Add documentation for action
android-keystore verify
.
This release contains improvements from PR #205.
Features
- Add option
--p12-path
forapp-store-connect
actionscreate-certificate
andget-certificate
to specify PKCS#12 container save path that can be used together with--save
to specify exact file path where the container is saved. It overrides default save location, which is configured by--certificates-dir
.
Fixes
- Support certificates that do not have common name defined in subject.
Development
- Describe new common argument type
CommonArgumentType.non_existing_path
which asserts that specified file does not exist. - PKCS#12 support in
pyOpenSSL
is deprecated andcryptography
APIs should be used instead. Replace the deprecatedcrypto.load_pkcs12
inCertificate.from_p12
withcryptography
'spkcs12.load_key_and_certificates
. - Add new factory method
PricateKey.from_p12
to load private key from PKCS#12 container. - Allow using
PrivateKey
instances forAppStoreConnect
methods that takecertificate_key
argument. Before only instances ofTypes.CertificateKeyArgument
were supported. - Support
DSA
and elliptic curve private keys forPrivateKey
.
This is a bugfix release from PR #204 to address the regression introduced in PR #203.
Fixes
- Fix export options plist generation with
xcode-project use-profiles
in case provisioning profiles with wildcard identifiers (such as*
orcom.example.*
) were used.
Development
- Add new data container class
ProvisioningProfileAssignment
which can be used to track the Xcode project target onto which certain provisioning profile was assigned to. - Change
ExportOptions
factory methodfrom_used_profiles(cls, used_profiles: Sequence[ProvisioningProfile]) -> ExportOptions
tofrom_profile_assignments(cls, profile_assignments: Sequence[ProvisioningProfileAssignment])
. This will persist the actual bundle identifiers of the Xcode targets when the property list constructed, instead of possibly using wildcard identifiers from provisioning profiles.
This release includes changes from PR #203 to improve usability and feedback from xcode-project use-profiles
.
Features
- Improve
xcode-project use-profiles
log output. Highlight Xcode targets for which code signing settings were not configured, but are likely necessary for successful build. - Add
--code-signing-setup-verbose-logging
option to actionxcode-project use-profiles
which turns on detailed log output for code signing settings configuration.
Docs
- Update docs for
xcode-project use-profiles
action. Add documentation for option--code-signing-setup-verbose-logging
.
Development
- Breaking. Remove dataclass
codemagic.models.matched_profiles.MatchedProfile
and all its usages. - Breaking. Replace
ExportOptions.from_matched_profiles
withExportOptions.from_used_profiles
. Old method was relying on the removedMatchedProfile
class, while new method has more generic interface requiring only sequence ofProvisioningProfiles
as arguments. - Breaking. Change command line interface for
code_signing_manager.rb
:- Replace command line option
-u
/--used-profiles
with-r
/--result-path
to better reflect the updated contents of result file. - Results saved into file specified by
--result-path
will now include all found Xcode targets, including those that were not assigned provisioning profile. The targets for which matching provisioning profile was found and configured, the reference also includes the used provisioning profileuuid
. - The saved JSON file structure what used to be
{profile_uuid: [<target_info>, ...]}
is now[<target_info>, ...]
.
- Replace command line option
- Always multiplex
code_signing_manager.rb
verbose log output to main file log. CodeSigningManager.use_profiles
logs Xcode project targets for which provisioning profiles were not found, but are likely necessary for buildingipa
.
Fixes
- Allow using
manageAppVersionAndBuildNumber
as an export option when building withxcode-project build-ipa
. PR #201
Fixes
- When creating new provisioning profiles as part of action
app-store-connect fetch-signing-files
include only eligible devices when creating the profiles. Before the action could fail for example in case when iOS development or Ad Hoc provisioning profile was created, but an Apple TV device was included as a create parameter. PR #200
Features
-
Change default behaviour for resolving certificate type from provisioning profile type. Map
IOS_APP_ADHOC
provisioning profile type toDISTRIBUTION
certificate type instead ofIOS_DISTRIBUTION
. "Apple Distribution" certificates can be used to sign any type of application (iOS, tvOS, Mac, Universal, etc.) and as a result fewer certificates are required. Applies to the following actions:app-store-connect fetch-signing-files
,app-store-connect list-certificates
.
This change is backwards compatible in the sense that existing matching
IOS_DISTRIBUTION
certificates are still used forIOS_APP_ADHOC
provisioning profiles if found. PR #198
Development
- Behaviour of
CertificateType.from_profile_type
was changed:- calling it with
ProfileType.IOS_APP_STORE
returnsCertificateType.DISTRIBUTION
instead ofCertificateType.IOS_DISTRIBUTION
as before. PR #198
- calling it with
This is a bugfix release to fix the regression introduced in v0.17.1.
Fixes
- Consider OpenSSH private keys for
app-store-connect
argument--certificate-key
valid again. Due to changes in PR #196 only PEM encoded keys were accepted as certificate keys, but OpenSSH keys are not fully compatible with the PEM standard, and should be allowed too. PR #197
Fixes
- Validate that App Store Connect API private key specified for
app-store-connect
tool by argument--private-key
is a valid PEM encoded key. PR #196
Features
- When retrying
altool
commands as part ofapp-store-connect publish
action, kill open Xcode processes before another attempt is made. It is applicable only if the action is launched in CI environment (environment variableCI
is set to truthy value). PR #192
Fixes
- Value of test output directory, specified by argument
--output-dir
, for actionsxcode-project junit-test-results
andxcode-project run-tests
had to point to existing directory, which is too restrictive. Change it so that the specified test output directory can be either created, or it has to exist. File paths are still considered to be invalid inputs. PR #191 - Fix default test destination for
xcode-project run-tests
when tests are run for macOS SDK. Omit test destination for these cases as the tests will be launched on the host machine directly. Otherwise, the default simulator obtained byxcode-project default-test-destination
is still used as before if no devices are specified. PR #191
Docs
- Apply bold style to Markdown docs that are shown using ANSI bold in terminal help messages. PR #190
- Apply pre style to Markdown docs that are shown in bright blue color in terminal help messages. PR #190
- Update docs for
xcode-project run-tests
action. PR #191
Development
- Add function
codemagic.cli.environment.is_ci_environment() -> bool
which checks whether current process is being run in a CI environment. Check is being performed based on the value ofCI
environment variable. PR #192
Dependencies
- Add
psutil
Python dependency (version5.8.0+
) to manage ongoing system processes in a platform-agnostic way. PR #192 - Bumps
pipenv
dependency from version2021.11.23
to2022.1.8
(development only). PR #193
Fixes
- Revoke cached App Store Connect API JSON web token when unauthorized request retry attempts are exhausted. PR #188
Development
- Log for which App Store Connect API key JWT is generated or loaded from disk cache. PR #188
- Remove
reset_token
parameter fromAppStoreConnectApiClient.generate_auth_headers
. PR #188 - Add optional
revoke_auth_info: Callable[[], None]
parameter toAppStoreConnectApiSession
to reset App Store Connect API authentication information in case of unauthorized requests. PR #188
Features
-
Change default behaviour for resolving certificate type from provisioning profile type. Map both
IOS_APP_STORE
andMAC_APP_STORE
provisioning profile types toDISTRIBUTION
certificate type instead of the old approach whereIOS_DISTRIBUTION
andMAC_APP_DISTRIBUTION
certificate types were used respectively. "Apple Distribution" certificates can be used to sign any type of application (iOS, tvOS, Mac, Universal, etc.) and as a result fewer certificates are required. Applies to the following actions:app-store-connect fetch-signing-files
,app-store-connect list-certificates
.
This change is backwards compatible in the sense that existing matching
IOS_DISTRIBUTION
andMAC_APP_DISTRIBUTION
certificates are still used forIOS_APP_STORE
andMAC_APP_STORE
provisioning profiles if found. PR #185 -
Unify formatting for signing certificates, profiles and bundle IDs in
app-store-connect fetch-signing-files
log output. PR #185 -
Multiple
--type
arguments are now supported forapp-store-connect list-certificates
action. PR #185 -
When either signing certificate or provisioning profile is saved to disk (for example as part of
app-store-connect fetch-signing-files
), then the save path will include resource ID and type, which makes it possible to easily match process output to file on disk. PR #185
Dependencies
Development
- Behaviour of
CertificateType.from_profile_type
was changed:- calling it with
ProfileType.IOS_APP_STORE
returnsCertificateType.DISTRIBUTION
instead ofCertificateType.IOS_DISTRIBUTION
as before, - and calling it with
ProfileType.MAC_APP_STORE
returnsCertificateType.DISTRIBUTION
instead ofCertificateType.MAC_APP_DISTRIBUTION
. PR #185
- calling it with
- Signature of
AppStoreConnect.list_certificates
was updated. Method argumentcertificate_type: Optional[CertificateType] = None
was deprecated and replaced bycertificate_types: Optional[Union[CertificateType, Sequence[CertificateType]]] = None
. This change is fully backwards compatible in the sense that as of now both the positional usage of the argument still works, andcertificate_type
can still also be used as a keyword argument. PR #185
Docs
- Update documentation for
app-store-connect list-certificates
to reflect the possibility of multiple--type
arguments. PR #185
Features
- Add
--api-unauthorized-retries
option toapp-store-connect
actions to gracefully handle invalid401 Unauthorized
responses from App Store Connect API. In case HTTP request to App Store Connect API fails with authentication error, generate new JSON Web Token, and try to do the request again until retries are exhausted. Retry count default to3
for CLI invocations. PR #178 - Improve error messages for CLI invocations in case invalid value is provided to CLI argument that can be specified using an environment variable. PR #180
- Add option to cache App Store Connect JSON Web Token to disk so that the same token could be reused between subsequent
app-store-connect
command invocations to avoid false positive authentication errors from App Store Connect API. PR #181 - All
app-store-connect
actions have new option--disable-jwt-cache
to turn off caching App Store Connect JWT to disk. The default behaviour is to have disk cache enabled. That is JWT is loaded from disk if present and not expired, and generated tokens are cached to disk unless this feature is turned off. PR #181
Development
AppStoreConnect
,AppStoreConnectApiClient
andAppStoreConnectApiSession
classes take new optional keyword argumentunauthorized_request_retries
which defines how many times request with unauthorized response should be retried. PR #178- Use custom abstract metaclass for
TypedCliArgument
that enables class name transformation during CLI argument parsing. Pretty class name can be defined usingtype_name_in_argparse_error
attribute on classes that inherit fromTypedCliArgument
. In case pretty name is not defined, then basic types are mapped to string representation, and otherwiseCamelCase
names are convertedcamel case
. PR #180 - Extract logic that deals with App Store Connect JWT generation and lifespan from
AppStoreConnectApiClient
to standaloneJsonWebTokenManager
class. PR #181 AppStoreConnect
andAppStoreConnectApiClient
classes take new optional keyword argumentenable_jwt_cache
which configures whether the JSON web token is cached to file or not. PR #181
Docs
- Update docs for
app-store-connect
actions and include information about--api-unauthorized-retries
option. PR #179 - Update docs for
app-store-connect
actions and include information about--disable-jwt-cache
option. PR #183
Fixes
- In case updating or creating localized App Store version meta information fails for any of the provided languages, do not fail the calling action, but log the error instead. Has an effect on
app-store-connect publish
andapp-store-connect builds submit-to-app-store
. PR #175
Deprecations
- Option
--skip-package-validation
ofapp-store-connect publish
is ignored and shows a deprecation warning. PR #174
Features
- Change
app-store-connect publish
not to run package validation by default before uploading it to App Store Connect. PR #174 - Add new option
--enable-package-validation
to actionapp-store-connect publish
that turns on package validation before it is uploaded to App Store Connect. PR #174
Features
- Improve error messages for CLI invocations in case invalid value was provided for argument with
Enum
type. PR #170
Fixes
- Use correct package type for
altool
commands when publishing tvOS apps usingapp-store-connect publish
. PR #173
This is an enhancement release to further streamline the App Store review submission automation capabilities.
Additions and changes from pull request #172.
Features
- Support setting localized meta information for App Store versions when submitting build to App Store review.
- Add new actions group
app-store-version-localizations
toapp-store-connect
. - Add new action
app-store-connect app-store-version-localizations create
to add localized metadata to an App Store version. - Add new action
app-store-connect app-store-version-localizations delete
to remove localized metadata from an App Store version. - Add new action
app-store-connect app-store-version-localizations get
to read App Store version localized metadata. - Add new action
app-store-connect app-store-version-localizations modify
to edit App Store version localized metadata. - Add new action
app-store-connect app-store-versions localizations
to list App Store version localizations for an App Store version. - Change
app-store-connect publish
to support adding or updating localized version metadata when submitting build to App Store review. - Change
app-store-connect builds submit-to-app-store
to support adding or updating localized version metadata for App Store version. - Add new App Store Connect API client method
AppStoreVersionLocalizations.create
to create App Store version localization meta information. See official API method documentation. - Add new App Store Connect API client method
AppStoreVersionLocalizations.read
to obtain App Store version localization meta information. See official API method documentation. - Add new App Store Connect API client method
AppStoreVersionLocalizations.modify
to edit existing App Store version localization meta information. See official API method documentation. - Add new App Store Connect API client method
AppStoreVersionLocalizations.delete
to remove existing App Store version localization meta information. See official API method documentation. - Add new App Store Connect API client method
AppStoreVersions.list_app_store_version_localizations
to list all App Store version localizations for given App Store version. See official API method documentation. - Show more informative error messages in case CLI arguments from environment variables or files are invalid.
- Add new options to actions
app-store-connect publish
andapp-store-connect builds submit-to-app-store
:--app-store-version-info
,--description
,--keywords
,--marketing-url
,--promotional-text
,--support-url
,--app-store-version-localizations
.
Docs
- Create docs for
app-store-connect
actions groupapp-store-version-localizations
. - Create docs for action
app-store-connect app-store-version-localizations create
. - Create docs for action
app-store-connect app-store-version-localizations delete
. - Create docs for action
app-store-connect app-store-version-localizations get
. - Create docs for action
app-store-connect app-store-version-localizations modify
. - Update docs for
app-store-connect
actions groupapp-store-versions
. - Create docs for action
app-store-connect app-store-versions localizations
. - Update docs for action
app-store-connect app-store-versions create
. - Update docs for action
app-store-connect app-store-versions modify
. - Update docs for action
app-store-connect builds submit-to-app-store
. - Update docs for action
app-store-connect publish
. - Remove backticks from terminal help messages and keep them only for markdown documentation formatting.
Development
- Add option to limit number of responses in App Store Connect API client pagination method.
- Change type of
App.Attributes.locale
from plainstr
toLocale
enumeration. - Add definition for
AppStoreVersionLocalization
resource. See official resource documentation. - Reorder method signatures in
AbstractBaseAction
and unify indentation for method arguments. - Add references to implementing methods to
AbstractBaseAction
interface.
Additions and changes from pull request #164.
Features
- Add new App Store Connect API client method
AppStoreVersions.create
to create an App Store version. See official API method documentation. - Add new App Store Connect API client method
AppStoreVersions.read_build
to read associated build from an App Store version. See official API method documentation. - Add new App Store Connect API client method
AppStoreVersions.read_app_store_version_submission
to read associated App Store version submission from an App Store version. See official API method documentation. - Add new App Store Connect API client method
AppStoreVersions.modify
to edit existing App Store version details. See official API method documentation. - Add new App Store Connect API client method
AppStoreVersions.delete
to delete an App Store version. See official API method documentation. - Add ability to group optional CLI action arguments into named argument groups.
- Add new actions group
app-store-versions
toapp-store-connect
. - Add new action
app-store-connect app-store-versions create
to create a new App Store version using specified build to an app. - Add new action
app-store-connect app-store-versions modify
to update existing App Store version details. - Add new action
app-store-connect app-store-versions delete
to remove App Store version. - Add option to specify build filters for action
app-store-connect apps builds
. - Add new action
app-store-connect builds app-store-version
to get the App Store version of a specific build. - Add new action
app-store-connect builds submit-to-app-store
to submit specified build to App Store review. Optionally specify version details and release type. - Update
app-store-connect publish
action to allow automatic App Store review submission after binary upload. - Use grouped CLI arguments in action
app-store-connect publish
for better help messages and documentation. - Add new option
--skip-package-upload
toapp-store-connect publish
. - Add short aliases for CLI flags:
-su
for--skip-package-upload
,-sv
for--skip-package-validation
,-w
for--max-build-processing-wait
.
Fixes
- Fix creating
Resource
objects that do not have any attributes. - Fix
--max-build-processing-wait
CLI option validation. - Allow non-integer version numbers for
--build-version-number
.
Docs
- Update docs for tool
app-store-connect
. - Create docs for
app-store-connect
actions groupapp-store-versions
. - Create docs for action
app-store-connect app-store-versions create
. - Create docs for action
app-store-connect app-store-versions delete
. - Create docs for action
app-store-connect app-store-versions modify
. - Create docs for
app-store-connect
actions groupapps
. - Update docs for action
app-store-connect apps app-store-versions
. - Update docs for action
app-store-connect apps builds
. - Update docs for action
app-store-connect apps list
. - Create docs for
app-store-connect
actions groupbuilds
. - Create docs for action
app-store-connect builds app-store-version
. - Create docs for action
app-store-connect builds submit-to-app-store
. - Update docs for action
app-store-connect builds submit-to-testflight
. - Update docs for action
app-store-connect list-builds
. - Update docs for action
app-store-connect publish
.
Development
- Support filtering by multiple values for one parameter in
ResourceManager.filter
. - Change
ResourceManager._get_update_payload
to acceptrelationships
in addition toattributes
. Makeattributes
andrelationships
arguments keyword-only. - Add missing return type hints to resource manger methods that did not have them.
- Extract argument parser setup from
CliApp
class into separate module underArgumentParserBuilder
class. - Move
create_app_store_version_submission
anddelete_app_store_version_submission
methods fromAppStoreConnect
class toAppStoreVersionSubmissionsActionGroup
. - Collect
app-store-connect
actions arguments that are used number of times under argument groups to reduce duplication. - Refactor
PublishAction
class:- extract
publish
action arguments validation into separate method, - move decorator arguments into separate tuple,
- add dataclasses for subaction options,
- support App Store review submission.
- extract
Fixes
- Show appropriate error messages when invalid values are passed to CLI actions using environment variables. PR #168
Breaking
- Action
app-store-connect publish
option--verbose-altool-logging
was renamed to--altool-verbose-logging
. Corresponding environment variable configuration options was also changed fromAPP_STORE_CONNECT_VERBOSE_ALTOOL_LOGGING
toAPP_STORE_CONNECT_ALTOOL_VERBOSE_LOGGING
. PR #163 - Python API for
AppStoreConnect.publish
was changed: keyword argumentverbose_altool_logging
was renamed toaltool_verbose_logging
. PR #163
Features
- Action
app-store-connect pubish
will now retry package validation and upload in case of some known errors (authentication failure, timeout) for configured amount of time. PR #163 - Add new option
--altool-retries
to actionapp-store-connect pubish
to configure how many timesaltool
action will be retried on known flaky error. PR #163 - Add new option
--altool-retry-wait
to actionapp-store-connect pubish
to configure wait duration in seconds betweenaltool
action retries. PR #163
Development / Docs
- Do not use line wrapping when generating docs (new feature in
mdutils
version 1.3.1). PR #163 - Generate new docs for action
app-store-connect publish
. PR #163
Fixes
- Fix decoding undefined byte sequences while processing subprocess streams. PR #162
Features
- Add switch to use verbose logging for
altool
subcommands that are executed as part ofapp-store-connect publish
. PR #160
Development / Docs
- Update
app-store-connect publish
action docs. PR #160
Fixes
- Add validation for export options plist path on
xcode-project build-ipa
action. Handle missing files and invalid property list files gracefully PR #155.
Features
Development / Docs
- Do not import
fcntl
module globally in order to support Windows platform. PR #156 - Create
CliProcessStream
abstraction layer to handle streams on both POSIX and Windows. PR #156
Features
- Show unformatted Xcode build errors on
xcode-project build-ipa
invocations that fail due to errors onxcodebuild archive
. PR #153.
Development / Docs
- Add a generator
codemagic.utilities.backwards_file_reader.iter_backwards
that returns the lines of a file in reverse order. PR #153.
Features
- New
app-store-connect register-device
action to add new device to Apple Developer team. Registering a device allows creating a provisioning profile for app testing and ad hoc distribution.
Development / Docs
- Rename
DeviceArgument.DEVICE_NAME
CLI argument toDeviceArgument.DEVICE_NAME_OPTIONAL
. - Update docs for action
app-store-connect beta-groups add-build
. - Update docs for action
app-store-connect beta-groups remove-build
. - Update docs for action
app-store-connect list-devices
. - Add docs for action
app-store-connect register-device
.
Development / Docs
- Add
get_fingerprint
method tocodemagic.models.Certificate
class which returns certificate's hexadecimal fingerprint for requested hashing algorithm.
Fixes
- Make
codemagic.apple.resources.App
relationship forciProduct
optional.
Fixes
- Fix
codemagic.models.application_package.Ipa
initialization for packages that are compressed usingLZFSE
compression algorithm. Fix requiresunzip
to be available in system$PATH
.
Features
- New
app-store-connect beta-groups
action set to add and remove TestFlight builds from groups of beta testers. app-store-connect publish
action accepts multiple Beta group names under--beta-group
key. The uploaded TestFlight build will be made available to the specified groups of beta testers.
Development / Docs
- Update
app-store-connect publish
action docs.
Fixes
- Fail action
app-store-connect builds subtmit-to-testflight
properly using error handling in case the application is missing required test information in App Store Connect. - Support
links
field in App Store Connect API error responses.
Improvements
- Accept list of
BetaBuildInfo
objects asbeta_build_localizations
argument forAppStoreConnect.add_beta_test_info
using Python API.
Improvements
- Add new action
add-beta-test-info
to submit What's new (What to test) localized information for a beta build. - Add new action
submit-to-testflight
to submit beta build to TestFlight. - Introduce strict with match with
--strict-match-identifier
keyword when listing applications filtered by Bundle ID. - Avoid waiting for processed build when
MAX_BUILD_PROCESSING_WAIT
or--max-build-processing-wait
is set to 0.
Development
publish
command will now rely onadd-beta-test-info
andsubmit-to-testflight
tasks.- Add
read_with_include
for Builds to return an application along with a build.
Improvements
- Add missing
submittedDate
to Beta App Review Submission attributes
Fixes
- Ignore undefined model attributes in App Store Connect API responses instead of failing with
TypeError
. - Fix finding uploaded build as part of
app-store-connect publish
. - Fix
app-store-connect apps builds
action by replacing broken List All Builds of an App API endpoint by List Builds endpoint.
Development / Docs
- Add warning to method
list_builds
inApps
resource manager about malfunctioning pagination. - Add missing relationship
ciProduct
toApp
model. - Accept strings for builds filter version restriction.
Fixes
- Fix custom export option usage on
xcode-project use-profiles --custom-export-options
. Replace faulty argument unpacking usage with plain dictionary updates and iteration.
Improvements
- Double the number of attempts to find an uploaded build on App Store Connect side
Improvements
- Require API key based authentication for
app-store-connect publish
when--beta-build-localizations
is used.
Features
- Add action
codemagic-cli-tools installed-tools
to show the tools that are installed by current Codemagic CLI tools version. - Add action
codemagic-cli-tools version
to show version of currently installed Codemagic CLI tools.
Development / Docs
- Create keychains in
~/Library/codemagic-cli-tools/keychains
by default when--path
is not specified withkeychain initialize
. - Add docs for new actions from tool
codemagic-cli-tools
. - Fix typos in CLI arguments help messages/docs that can be specified using
@env:
or@file:
prefixes.
Features
- Add action
keychain use-login
to make login keychain from~/Library/Keychains
system default keychain again.
Improvements
- Save new keychain to
~/Library/Keychains/codemagic-cli-tools
instead of$TMPDIR
by default withkeychain initialize
in case the--path
option is not specified.
Development / Docs
- Add docs for action
keychain use-login
.
Features
- Make
--whats-new
option independent of--testflight
forapp-store-connect publish
since submission to external beta review is not necessary to specify notes. - Make App Store Connect application entry default locale detection more robust by using
primaryLocale
attribute instead of using the firstbetaAppLocalization
for that app. - Show more descriptive error messages for invalid inputs to CLI arguments that can be defined using
@env:<var_name>
and@file:<file_path>
notations. - Add more blue and green colors to logs to indicate the start of an activity and completion of it.
Development / Docs
- Allow
str
input forwhats_new
arguments to actions defined inBetaBuildLocalizationsActionGroup
. - Remove obsolete test which verified that
--whats-new
could only be used together with--testflight
. - Update
app-store-connect publish
action docs.
Features
- Remove default value from
--locale
option for actionsapp-store-connect beta-build-localizations create
andapp-store-connect publish
. In case it is not provided, resolve the default locale value from related application's primary test information. - Make
app-store-connect beta-build-localizations create
more forgiving and allow the cases when beta build localization already exists for the locale. On such occasions just update the resource.
Development / Docs
- Update
app-store-connect publish
action docs. - Update
app-store-connect beta-build-localizations create
action docs. - Do not use runtime enum definition generation during argument parsing.
- Fix error messages for invalid enumeration values.
- Update requests dependency requirement from version 2.22.0 to 2.25.1.
Features
- Check if application has complete test information in App Store Connect before submitting a build for external testing with
app-store-connect publish --testflight
. This will enable the submission to fail fast with descriptive message instead of waiting until build processing completes by Apple and only then failing while creating the TestFlight submission. - Add
--max-build-processing-wait
option to configure maximum time thatapp-store-connect publish
will wait for the package to be processed before failing the TestFlight submission. - Improve error message when waiting for package to be processed times out during TestFlight submission as part of
app-store-connect publish
.
Development / Docs
- Get build and related resources using App Store Connect API client directly for
app-store-connect publish
instead of reusing otherapp-store-connect
actions to reduce unnecessary repetition in the terminal output. - Extract application lookup into a separate method for finding uploaded build.
- Define new models for Apple API resources:
BetaAppLocalization
andBetaAppReviewDetail
. - Implement new App Store Connect API client methods to consume endpoints to list beta app Localizations of an app and to read the beta app review details of an app.
- Show default values for arguments of type
TypedCliArgument
. - Add documentation for action
app-store-connect builds get
. - Document
--max-build-processing-wait
option inapp-store-connect publish
action. - Show default values for arguments of type
TypedCliArgument
. - Show the long version of CLI flag first in help messages and online documentation to reduce ambiguity. For example use
--testflight
instead of-t
in help messages.
Improvements
- Explicitly mention "certificate" in
app-store-connect
error messages when--certificate-key
is missing to avoid confusion with App Store Connect API key--private-key
.
Fixes
- Submit only uploaded iOS application packages (
*.ipa
files) to TestFlight fromapp-store-connect publish
action when submission to Testflight is enabled by--testflight
flag.
Features
- Add option to submit "What's new" information along with Testflight build via
--locale
and--whats-new
arguments inapp-store-connect publish
command. - Add a set of actions for managing "What's new" information for Testflight builds
app-store-connect beta-build-localizations
- Add action
app-store-connect beta-build-localizations create
to create localized "What's new" notes for a given beta build - Add action
app-store-connect beta-build-localizations delete
to delete localized "What's new" notes by its ID - Add action
app-store-connect beta-build-localizations modify
to update "What's new" content by its ID - Add action
app-store-connect beta-build-localizations list
to list localized "What's new" notes filtered by Build ID and locale code - Add action
app-store-connect beta-build-localizations get
to retrieve localized "What's new" notes by its ID
Fixes
- Before creating Beta App Review Submission (submitting build to TestFlight) as part of
app-store-connect publish
, wait until the uploaded build processing completes.
Fixes
- Make
altool
output parsing less strict. Do not failapp-store-connect publish
action invocation ifaltool
output cannot be interpreted.
Features
- Add option to skip package validation for action
app-store-connect publish
with--skip-package-validation
flag. This allows to opt out from runningaltool --validate-app
before actual upload.
Development / Docs
- Update
app-store-connect publish
action docs to reflect new option--skip-package-validation
.
Fixes
- Do not fail actions
app-store-connect get-latest-app-store-build-number
andapp-store-connect get-latest-testflight-build-number
in case no builds were found for specified constraints.
Development / Docs
- Split monolith
AppStoreConnect
tool tests file into smaller chunks in separate test module.
Fixes
- Do not require App Store Connect API keys for
app-store-connect publish
unless--testflight
option is specified as binary upload can be done with Apple ID and App Specific password only.
Fixes
- Support non-integer (dot-separated versions such as 10.14.1) version codes for
app-store-connect get-latest-app-store-build-number
andapp-store-connect get-latest-testflight-build-number
.
Fixes
- Ignore undefined model relationships in App Store Connect API responses instead of failing with
TypeError
. - Dynamically generate enumerations for undefined values from App Store Connect API responses instead of failing with
ValueError
.
Development / Docs
- Make
SignignCertificate
model relationshippassTypeId
optional.
New features
- Add action
app-store-connect apps get
to get information about a specific app. - Add action
app-store-connect apps list
to find apps added in App Store Connect. - Add action
app-store-connect apps app-store-versions
to find App Store versions associated with a specific app. - Add action
app-store-connect apps builds
to find builds associated with a specific app. - Add action
app-store-connect apps pre-release-versions
to find prerelease versions associated with a specific app. - Add action
app-store-connect beta-app-review-submissions create
to submit an app for beta app review to allow external testing. - Add action
app-store-connect beta-app-review-submissions list
to find beta app review submissions of a build. - Add action
app-store-connect builds pre-release-version
to find the prerelease version for a specific build - Add action
app-store-connect publish
to upload application packages to App Store and submit them to Testflight. - Add action
xcode-project ipa-info
to show information about iOS App Store Package file. - Add action
xcode-project pkg-info
to show information about macOS Application Package file. - Support loading App Store Connect API key from disk using key identifier by checking predefined locations
./private_keys
,~/private_keys
,~/.private_keys
,~/.appstoreconnect/private_keys
for fileAuthKey_<key_identifier>.p8
. - Add Python wrapper to Apple's Application Loader tool and use it to publish application packages to App Store Connect.
Fixes
- Handle missing action for action group on command invocation.
- Fix initializing provisioning profiles from in-memory content.
Development / Docs
- Improve modularity by adding support to define tool actions and action groups in separate modules.
- Support strings as path argument for
Certificate.export_p12
. - Support strings as path argument for
ExportOptions.from_path
factory method. - Support strings as path argument for
PbxProject.from_path
factory method. - Extract resource management methods from
AppStoreConnect
to separate mixin class. - Generate documentation for action
app-store-connect apps get
. - Generate documentation for action
app-store-connect apps list
. - Generate documentation for action
app-store-connect apps app-store-versions
. - Generate documentation for action
app-store-connect apps builds
. - Generate documentation for action
app-store-connect apps pre-release-versions
. - Generate documentation for action
app-store-connect beta-app-review-submissions create
. - Generate documentation for action
app-store-connect beta-app-review-submissions list
. - Generate documentation for action
app-store-connect builds pre-release-version
. - Generate documentation for action
app-store-connect publish
. - Generate documentation for action
xcode-project ipa-info
. - Generate documentation for action
xcode-project pkg-info
.
Fixes
- Allow
passTypeId
relationship for Certificate model.
New features
- Add action group support for tools.
- Add action
get-profile
toapp-store-connect
to show provisioning profile based on resource identifier. - Add action
app-store-connect app-store-version-submissions create
to submit App Store Version to review. - Add action
app-store-connect app-store-version-submissions delete
to remove App Store Version from review.
Development / Docs
- Update
--profile
option default value in actionxcode-project use-profiles
docs. - Generate documentation for action groups and list groups under tool documentation pages.
- Add documentation for action
app-store-connect get-profile
. - Add documentation for action
app-store-connect app-store-version-submissions create
. - Add documentation for action
app-store-connect app-store-version-submissions delete
.
Fixes
- Accept
SERVICES
as a valid Bundle Identifier platform.
Improvements
- Bugfix: Allow Google Play releases with no name provided in
google-play
tool.
Improvements
- Bugfix: Include MacOS application's codesigning certificates in
keychain list-certificates
output. - Bugfix: Include provisioning profiles with
.provisionprofile
extension in inxcode-project use-profiles
search. - Bugfix: handle provisioning profiles entitlements keys with prefixes e.g.
com.apple.application-identifier
. - Bugfix: Improve SDK detection when setting code signing infortmation on Xcode projects instead of always defaulting to
iphoneos
.
Improvements
- CI pipeline: Use GitHub CLI tools for releases
Improvements
- Bugfix: export MacOS application's provisioning profiles with
.provisionprofile
extension instead of.mobileprovision
.
Improvements
- Feature: Add option
--platform
to specify the platform forapp-store-connect
actionsget-latest-app-store-build-number
andget-latest-testflight-build-number
.
Improvements
- Feature: Add option to strictly match bundle IDs by the identifier for
app-store-connect
actionsfetch-signing-files
andlist-bundle-ids
using flag--strict-match-identifier
.
Dependencies
- Update PyJWT Python dependency to version ~=2.0.
Improvements
- Enhancement: Include the certificate common name in
SigningCertificate
string representation when showing certificates withapp-store-connect
actions.
Improvements
- Feature: add the
warn-only
flag toxcode-project use-profiles
not to fail the action when profiles can't be applied to any of the Xcode projects
Improvements
- Feature: add tool
google-play
with actionget-latest-build-number
Improvements
- Bugfix: Fix regression introduced in 0.4.9 that excluded bundle identifiers with platform type
UNIVERSAL
from list bundle identifiers result in case platform filter (IOS
orMAC_OS
) was specified. - Bugfix: Fix check for profiles types that have devices allowed. Allow specifying devices only for ad hoc and development provisioning profiles.
Improvements
- Bugfix: Fix platform filter for listing bundle identifiers using App Store Connect API.
Improvements
- Improvement: Add support for tvOS distribution certificates.
Improvements
- Feature: Add an option to extract a certificate from PKCS12 archive.
Improvements
- Feature: Add action
list-builds
toapp-store-connect
to list Builds from Apple Developer Portal matching given constraints. - Feature: Add action
get-latest-testflight-build-number
toapp-store-connect
to get latest Testflight build number for the given application. - Feature: Add action
get-latest-app-store-build-number
toapp-store-connect
to get latest App Store build number for the given application. - Improvement: handle datetime in a format containing timezone timedelta
Improvements
- Dependency update: Bump cryptography from ~3.2 to ~3.3
- Improvement: Add options to
keychain add-certificates
to specify which applications have access to the imported certificate without warning.
Improvements
- Improvement: Reduce memory footprint for
xcode-process
by not storing xcodebuild logs in memory. Read them from file if need be.
Improvements
- Improvement: Use a single
xcpretty
process throughoutxcodebuild
invocation for log formatting instead of forking new processes for each log chunk.
Improvements
- Bugfix: PyJWT Python dependency to version 1.x since 2.0.0 has breaking API changes.
Improvements
- Bugfix: Fix converting Xcresults to Junit if testsuite duration is missing from Xcresult's ActionTestMetadata
Improvements
-
Feature: Add action
clean
toxcode-project
to clean Xcode project. -
Feature: Add action
default-test-destination
toxcode-project
to show default test destination for the chosen Xcode version. -
Feature: Add action
test-destinations
toxcode-project
to list available destinations for test runs. -
Feature: Add action
junit-test-results
toxcode-project
to convert Xcode Test Result Bundles (*.xcresult) to JUnit XML format. -
Feature: Add action
run-tests
toxcode-project
to run unit or UI tests for given Xcode project or workspace. -
Feature: Add action
test-summary
toxcode-project
to show test result summary from given Xcode Test Result Bundles (*.xcresult). -
Refactoring: Create
RunningCliAppMixin
to avoid passing around currently invoked app instance. -
Update cryptography Python dependency to version ~=3.2.
Improvements
- Bugfix: Do not fail
keychain add-certificate
action in case the added certificate already exists in keychain.
- Update cryptography Python dependency to version ~=3.2.
Improvements
- Feature: Add option to specify custom
xcodebuild
arguments and flags forarchive
and-exportArchive
actions withxcode-project build-ipa
using--archive-flags
,--archive-xcargs
,--export-flags
and--export-xcargs
modifiers.
Improvements
- Improvement: Due to invalid CoreSimulatorService state
xcodebuild
build commands can fail with errorFailed to find newest available Simulator runtime
. To overcome this, make sure that when Xcode project or workspace is archived withxcode-project build-ipa
, then CoreSimulatorService is in a clean state.
Improvements
- Improvement: Fail gracefully with appropriate error message when non-existent export options plist path is passed to
xcode-project build-ipa
.
Improvements
- Bugfix: Fix obtaining
iCloudContainerEnvironment
export option when multiple values are available.
Improvements
- Bugfix: Specify
iCloudContainerEnvironment
export option when exporting xcarchive to ipa usingxcode-project build-ipa
.
Improvements
- Update: Make removing generated xcarchive optional.
Improvements
- Bugfix: Support profile state
EXPIRED
.
Improvements
- Bugfix: Respect custom values specified by
--certificates-dir
and--profiles-dir
flags forapp-store-connect
. - Feature: Add
--profile-type
filter toapp-store-connect list-certificates
to show only certificates that can be used with given profile type. - Feature: Support new certificate types
DEVELOPMENT
andDISTRIBUTION
. - Feature: Support new profile types
MAC_CATALYST_APP_DEVELOPMENT
,MAC_CATALYST_APP_DIRECT
andMAC_CATALYST_APP_STORE
.
Improvements
- Feature: Support OpenSSH private key format for certificate private key (
--certificate-key
option forapp-store-connect
). - Bugfix: For
app-store-connect fetch-signing-files
use given platform type for listing devices on creating new provisioning profiles instead of detecting it from bundle identifier.
Improvements
- Bugfix: Improve product bundle identifier resolving for settings code signing settings.
Improvements
- Feature: Add option to specify archive directory to
xcode-project build-ipa
using--archive-directory
flag.
Improvements
- Bugfix: Improve variable resolving from Xcode projects for setting code signing settings.
Improvements
- Bugfix: Fix nullpointer on setting process stream flags.
Improvements
- Bugfix: Reading
jarsigner verify
output streams got stuck on some Android App bundles.
Improvements
- Feature: Add new command
android-app-bundle
- Feature: Include Bundletool jar in the distribution
- Bugfix: Gracefully handle Xcodeproj exceptions on saving React Native iOS project code signing settings
Deprecations
- Add deprecation notice to
universal-apk
command
- Improve error messages on invalid inputs when using argument values from environment variables.
- Add
--version
option to tools to display current version.
- Bugfix: Fix Apple Developer Portal API pagination. Avoid duplicate query parameters in subsequent pagination calls when listing resources.
- Bugfix: Fix creating iOS App Store and iOS In House provisioning profiles. Do not include devices in the create resource payload.
- Bugfix: Fix
TypeError
on Apple Developer Portal resource creation
- Bugfix: Accept
UNIVERSAL
as valid Bundle ID platform value
- Bugfix: Improve detection for Xcode managed provisioning profiles
Released 10.02.2020
- Return exit code
0
on successful invocation ofgit-changelog
- Return exit code
0
on successful invocation ofuniversal-apk
Released 31.01.2020
- Update documentation
Released 14.01.2020
- Add tool
app-store-connect
- Add tool
keychain
- Add tool
xcode-project