Swaps deprecated instruments
cli out for xctrace
#21952
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Replace deprecated
instruments
command withxctrace list devices
Updated test spec and fixtures
Checklist
bundle exec rspec
from the root directory to see all new and existing tests passbundle exec rubocop -a
to ensure the code style is validci/circleci
builds in the "All checks have passed" section of my PR (connect CircleCI to GitHub if not)Motivation and Context
I need to retrieve information about devices connected to the machine running fastlane. I create my own action to call
FastlaneCore::DeviceManager.connected_devices("iOS")
and it caused the following error.The instruments cli tool was previously deprecated and has now been removed with the Release of Xcode 13. The deprecation notice advises:
Description
I investigated the use of
xctrace
and found it was able to list devices. Upon running the commandxctrace list devices
I was presented with a list of Devices and Simulators. The list was not too dissimilar from the previous output from instruments as can be compared in the changes to the fixtures within this PR.I updated the DeviceManager to use xctrace, updated the regex used to match the UDID and updates the test specs and fixtures appropriately.
Testing Steps
I created my own action which called into the DeviceManager code and observed the desired output.
I also ran rspec and rubocop before creating the PR.