In #76: Importing Many Test Photos into iOS Simulator, I wrote about how you can built custom iOS apps to bulk load photos into the simulator. There is another way to do this. The simctl
utility that comes with your Xcode installation lets you control the iOS simulator. Unless you have added it to your path, you'll have to use the full path to refer to it.
If you run it without any arguments, it will show you the commands available:
$ /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/simctl
Usage: simctl [--noxpc] [--set <set path>] <subcommand> ... | help [subcommand]
Command line utility to control the iOS Simulator
For subcommands that require a <device> argument, you may specify a device UDID
or the special "booted" string which will cause simctl to pick a booted device.
If multiple devices are booted when the "booted" device is selected, simctl
will choose one of them.
Subcommands:
create Create a new device.
delete Delete a device.
erase Erase a device's contents and settings.
boot Boot a device.
shutdown Shutdown a device.
rename Rename a device.
getenv Print an environment variable from a running device.
openurl Open a URL in a device.
addphoto Add a photo to the photo library of a device.
install Install an app on a device.
uninstall Uninstall an app from a device.
launch Launch an application by identifier on a device.
spawn Spawn a process on a device.
list List available devices, device types, or runtimes.
notify_post Post a darwin notification on a device.
icloud_sync Trigger iCloud sync on a device.
help Prints the usage for a given subcommand.
E.g. simctl list devices
will list the simulators you have installed:
$ /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/simctl list devices
== Devices ==
-- iOS 7.0 --
-- iOS 7.1 --
iPhone 4s-7.1 (CD87A880-494C-44C8-AF94-D316EB391BB6) (Shutdown)
iPhone 5 (B937671C-5C95-4978-8425-C5EEA1849001) (Shutdown)
iPhone 5s (F6CB1E39-A871-4044-92B7-3B1D92C64649) (Shutdown)
iPad 2 (FF3F0C5E-FB6B-452C-BB6C-4226503EB287) (Shutdown)
iPad Retina (6FE5DDD4-5899-44BD-B5BA-2E476800AC62) (Shutdown)
iPad Air (402BBCCF-750F-4962-872C-74AC447E757D) (Shutdown)
-- iOS 8.1 --
iPhone 4s (17484BC7-1DDE-4C9D-B678-A55ECAE86D50) (Shutdown)
iPhone 5 (FD3A2930-DA6E-4316-B6AA-9EE8925D3780) (Shutdown)
iPhone 5s (1979F6BD-0DC8-4B1D-A400-DEBB5B2A476A) (Booted)
iPhone 6 Plus (6EB44A5F-ACCD-4751-B84C-C1904D18CE7D) (Shutdown)
iPhone 6 (C9E7226E-7E34-470C-A76F-9EA153C15FFD) (Shutdown)
iPad 2 (69447CBA-98F4-4624-A2D5-B521F966BC63) (Shutdown)
iPad Retina (C90AA28D-405E-451A-B857-1CA0F52EC7DB) (Shutdown)
iPad Air (4F8A5BF9-418B-43B0-B92C-80C8493653FF) (Shutdown)
Resizable iPhone (E953192F-3EBA-432F-B6A9-B060BB5E599C) (Shutdown)
Resizable iPad (F1D962E3-CF33-432A-8B57-18B48A02CA02) (Shutdown)
What we are interested here is the addphoto
command, like so:
$ /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/simctl addphoto "1979F6BD-0DC8-4B1D-A400-DEBB5B2A476A" ~/Desktop/some-photo1.jpg
The simulator has to be running for addphoto
to work. You can easily script this to bulk load multiple photos.
In fact, I built a command line tool to do it, see ios-simtool.
Your feedback is valuable: Do you want more nuggets like this? Yes or No
.
.