[sigh] add force_profile_device_udids option #21733
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.
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
We have a need to generate provisioning profiles that are restricted to specific subsets of udids rather than the default selection of large sets of matching uuids based on platform &
deviceClass
oriented.Description
The net change was a new option (optional)
--force_profile_device_udids
SIGH_FORCE_PROFILE_DEVICE_UDIDS
which lets the user specify a comma delimited list of explicit device udids to restrict the generated/downloaded profile to.Comma delimited list of specific device udids to include in the provisioning profile. If this option is specified it will override the default behavior of leveraging SIGH_PLATFORM (and optionally SIGH_INCLUDE_MAC_IN_PROFILES) when determining the devices to include in the profile based on deviceClass
Overall this involved adding support for filtering the devices returned via apple connect device API using the uuids the user presents via the new argument.
Testing Steps
See unit tests.