codemagic-ci-cd / cli-tools

Various utilities to managing Android and iOS app builds, code signing, and deployment.
https://codemagic.io/start/
GNU General Public License v3.0
243 stars 42 forks source link

Bugfix: Support Apple Vision Pro device type #357

Closed priitlatt closed 11 months ago

priitlatt commented 11 months ago

Read Device Information and List Devices App Store Connect API endpoints can return devices whose deviceClass attribute value is APPLE_VISION_PRO.

As of now such a device class is not supported and causes issues when the device class info is used, such as

[07:54:38 02-10-2023] ERROR cli_app.py:116 > Exception traceback:
Traceback (most recent call last):
  File "/Users/builder/.pyenv/versions/3.8.13/lib/python3.8/site-packages/codemagic/cli/cli_app.py", line 206, in invoke_cli
    CliApp._running_app._invoke_action(args)
  File "/Users/builder/.pyenv/versions/3.8.13/lib/python3.8/site-packages/codemagic/cli/cli_app.py", line 163, in _invoke_action
    return cli_action(**action_args)
  File "/Users/builder/.pyenv/versions/3.8.13/lib/python3.8/site-packages/codemagic/cli/cli_app.py", line 458, in wrapper
    return func(self, *args, **kwargs)
  File "/Users/builder/.pyenv/versions/3.8.13/lib/python3.8/site-packages/codemagic/tools/app_store_connect.py", line 1058, in fetch_signing_files
    profiles = self._get_or_create_profiles(
  File "/Users/builder/.pyenv/versions/3.8.13/lib/python3.8/site-packages/codemagic/tools/app_store_connect.py", line 1212, in _get_or_create_profiles
    profiles.extend(created_profiles)
  File "/Users/builder/.pyenv/versions/3.8.13/lib/python3.8/site-packages/codemagic/tools/app_store_connect.py", line 1148, in _create_missing_profiles
    device_ids = [d.id for d in devices if d.attributes.deviceClass.is_compatible(profile_type)]
  File "/Users/builder/.pyenv/versions/3.8.13/lib/python3.8/site-packages/codemagic/tools/app_store_connect.py", line 1148, in <listcomp>
    device_ids = [d.id for d in devices if d.attributes.deviceClass.is_compatible(profile_type)]
AttributeError: 'GracefulDeviceClass' object has no attribute 'is_compatible'

This PR defines APPLE_VISION_PRO value for enumeration codemagic.apple.resources.enums.DeviceClass.