It provides the complete list of devices found in Xcode's databases.
For every Xcode instance installed, there is a /Developer directory where relevant development tools are located, including the command-line tool.
/Applications/Xcode.app/Contents/Developer
The public databases of Apple devices are organized by device traits and can be found inside this /Developer folder, under the /Platforms directory:
/Applications/Xcode.app/Contents/Developer/Platforms/{platform}/usr/standalone/device_traits.db
... where platform is any of:
iPhoneOS.platformAppleTVOS.platformWatchOS.platform
Internally, this package takes the path of the selected Xcode's command-line tool by executing the command:
xcode-select -p
... this way, it is ensured to always work over the selected development environment.
Developers can switch among different command-line tools installed by using the
xcode-selectCLI.xcode-select --switch <path>
To provide the information on the Xcode version used during the code generation, it is being used the xcodebuild CLI by executing the command:
xcodebuild -version
The all-apple-devices CLI provides the information of all the devices available in the selected command-line tool database.
Simply run make install within a local copy of the AllAppleDevices repo:
git clone https://github.com/EmilioOjeda/AllAppleDevices.git
cd AllAppleDevices
make install
cd ../
rm -rf AllAppleDevices
When getting a Permissions Denied error, i.e.:
install .build/release/all-apple-devices /usr/local/bin/all-apple-devices
install: /usr/local/bin/all-apple-devices: Permission denied
make: *** [install] Error 71
... execute sudo make install instead.
The generate command triggers the code generation of the Device.swift file.
The file's content may vary depending on the Platform IDs set to the --platforms option. This option can be omitted, and by doing so, the data of all the platforms are generated.
And the file generated is written out to the path set to the --output option.
Command help documentation can be read by executing all-apple-devices generate -h.
OVERVIEW: Generates the 'Device.swift' file for the given 'platforms' at the given 'path'.
USAGE: all-apple-devices generate [--platforms <platforms> ...] --output <output>
OPTIONS:
-p, --platforms <platforms>
The platform traits to produce -- i.e., '--platforms iphoneos tvos watchos'. (default: iphoneos, tvos, watchos)
-o, --output <output> The path where the 'Device.swift' file is going to be written.
-h, --help Show help information.