├── CHANGELOG.md ├── LICENSE ├── README.md ├── specs ├── Makefile └── simctl.txt └── src ├── _dyldinfo ├── _genstrings ├── _instruments ├── _lipo ├── _nm ├── _plutil ├── _simctl ├── _strings ├── _swift ├── _swift-demangle ├── _xcode-select ├── _xcodebuild └── _xcrun /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## master 2 | 3 | ### Added 4 | 5 | - `plutil` completion 6 | 7 | ### Changed 8 | 9 | None. 10 | 11 | ### Fixed 12 | 13 | None. 14 | 15 | ## 1.2.0 16 | 17 | ### Added 18 | 19 | - `swift-demangle` shim 20 | - `--without-shims` homebrew flag 21 | - `swift-demangle` completion 22 | - `xcrun` completion 23 | 24 | ### Changed 25 | 26 | None. 27 | 28 | ### Fixed 29 | 30 | None. 31 | 32 | ## 1.1.0 33 | 34 | ### Added 35 | 36 | - `genstrings` completion 37 | - `nm` completion 38 | - `strings` completion 39 | - `swift` completion 40 | 41 | ### Changed 42 | 43 | None. 44 | 45 | ### Fixed 46 | 47 | None. 48 | 49 | ## 1.0.0 50 | 51 | ### Added 52 | 53 | - `xcode-select` completion 54 | - `xcodebuild` completion 55 | - Homebrew support 56 | 57 | ### Changed 58 | 59 | None. 60 | 61 | ### Fixed 62 | 63 | None. 64 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015 Keith Smiley (http://keith.so) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of 4 | this software and associated documentation files (the 'Software'), to deal in 5 | the Software without restriction, including without limitation the rights to 6 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 7 | the Software, and to permit persons to whom the Software is furnished to do so, 8 | subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 15 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 16 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 17 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 18 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 19 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # zsh-xcode-completions 2 | 3 | Zsh completions for some of the Xcode command line tools. Currently: 4 | 5 | - [`genstrings`](https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/genstrings.1.html) 6 | - [`nm`](https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/nm.1.html) 7 | - [`plutil`](https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/plutil.1.html) 8 | - [`xcode`-select](https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/xcode-select.1.html) 9 | - [`xcodebuild`](https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/xcodebuild.1.html) 10 | - [`xcrun`](https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/xcrun.1.html) 11 | - `simctl` 12 | - `strings` 13 | - `swift-demangle` 14 | - `swift` 15 | - `lipo` 16 | 17 | # Installation 18 | 19 | ```sh 20 | brew install keith/formulae/zsh-xcode-completions 21 | ``` 22 | 23 | # TODO: 24 | 25 | - otool 26 | - pkgutil 27 | - pmset 28 | 29 | ### Resources 30 | 31 | 32 | -------------------------------------------------------------------------------- /specs/Makefile: -------------------------------------------------------------------------------- 1 | all: simctl.txt 2 | 3 | %.txt: FORCE 4 | $(MAKE) "$(basename $@)" &>$@ 5 | 6 | FORCE: 7 | 8 | simctl: 9 | xcrun simctl || true 10 | @for command in $$(xcrun simctl | grep '^\t' | awk '{print $$1}'); do \ 11 | echo; \ 12 | echo xcrun simctl help $$command; \ 13 | xcrun simctl help $$command; \ 14 | done 15 | @# Undocumented/internal commands: 16 | @echo 17 | xcrun simctl help addphoto 18 | @echo 19 | xcrun simctl help addvideo 20 | @echo 21 | xcrun simctl help pbinfo 22 | @echo 23 | xcrun simctl help notify_post 24 | @echo 25 | xcrun simctl help notify_get_state 26 | @echo 27 | xcrun simctl help notify_set_state 28 | @echo 29 | xcrun simctl help register 30 | @echo 31 | xcrun simctl help unregister 32 | @echo 33 | xcrun simctl help keyboard 34 | @echo 35 | xcrun simctl help monitor 36 | @echo 37 | xcrun simctl help appinfo 38 | @echo 39 | xcrun simctl help listapps 40 | @echo 41 | xcrun simctl help bootstatus 42 | @echo 43 | xcrun simctl help darwinup 44 | @echo 45 | xcrun simctl help legacyruntime 46 | @echo 47 | xcrun simctl help reset 48 | -------------------------------------------------------------------------------- /specs/simctl.txt: -------------------------------------------------------------------------------- 1 | xcrun simctl || true 2 | usage: simctl [--set ] [--profiles ] ... 3 | simctl help [subcommand] 4 | Command line utility to control the Simulator 5 | 6 | For subcommands that require a argument, you may specify a device UDID 7 | or the special "booted" string which will cause simctl to pick a booted device. 8 | If multiple devices are booted when the "booted" device is selected, simctl 9 | will choose one of them. 10 | 11 | Subcommands: 12 | addmedia Add photos, live photos, videos, or contacts to the library of a device. 13 | boot Boot a device or device pair. 14 | clone Clone an existing device. 15 | create Create a new device. 16 | delete Delete specified devices, unavailable devices, or all devices. 17 | diagnose Collect diagnostic information and logs. 18 | erase Erase a device's contents and settings. 19 | get_app_container Print the path of the installed app's container 20 | getenv Print an environment variable from a running device. 21 | help Prints the usage for a given subcommand. 22 | icloud_sync Trigger iCloud sync on a device. 23 | install Install an app on a device. 24 | install_app_data Install an xcappdata package to a device, replacing the current contents of the container. 25 | io Set up a device IO operation. 26 | keychain Manipulate a device's keychain 27 | launch Launch an application by identifier on a device. 28 | list List available devices, device types, runtimes, or device pairs. 29 | location Control a device's simulated location 30 | logverbose enable or disable verbose logging for a device 31 | openurl Open a URL in a device. 32 | pair Create a new watch and phone pair. 33 | pair_activate Set a given pair as active. 34 | pbcopy Copy standard input onto the device pasteboard. 35 | pbpaste Print the contents of the device's pasteboard to standard output. 36 | pbsync Sync the pasteboard content from one pasteboard to another. 37 | privacy Grant, revoke, or reset privacy and permissions 38 | push Send a simulated push notification 39 | rename Rename a device. 40 | runtime Perform operations on runtimes 41 | shutdown Shutdown a device. 42 | spawn Spawn a process by executing a given executable on a device. 43 | status_bar Set or clear status bar overrides 44 | terminate Terminate an application by identifier on a device. 45 | ui Get or Set UI options 46 | uninstall Uninstall an app from a device. 47 | unpair Unpair a watch and phone pair. 48 | upgrade Upgrade a device to a newer runtime. 49 | 50 | xcrun simctl help addmedia 51 | Add photos, live photos, videos, or contacts to the library of a device. 52 | Usage: simctl addmedia [... ] 53 | 54 | You can specify multiple files including a mix of photos, videos, and contacts. 55 | 56 | You can also specify multiple live photos by providing the photo and video files. They will automatically be discovered and imported correctly. 57 | 58 | Contacts support the vCard format. 59 | 60 | xcrun simctl help boot 61 | Boot a device or device pair. 62 | Usage: simctl boot [--arch=] [--disabledJob=] [--enabledJob=] 63 | 64 | --arch= Specify the architecture to use when booting the simulator (eg: 'arm64' or 'x86_64') 65 | --disabledJob= Disables the given launchd job. Multiple jobs can be disabled by passing multiple flags. 66 | --enabledJob= Enables the given launchd job when it would normally be disabled. 67 | Multiple jobs can be enabled by passing multiple flags. 68 | 69 | 70 | If you want to set environment variables in the resulting environment, set them in the calling environment with a SIMCTL_CHILD_ prefix. 71 | 72 | xcrun simctl help clone 73 | Clone an existing device. 74 | Usage: simctl clone [] 75 | 76 | xcrun simctl help create 77 | Create a new device. 78 | Usage: simctl create [] 79 | 80 | A valid available device type. Find these by running "xcrun simctl list devicetypes". 81 | Examples: ("iPhone X", "com.apple.CoreSimulator.SimDeviceType.iPhone-X") 82 | A valid and available runtime. Find these by running "xcrun simctl list runtimes". 83 | If no runtime is specified the newest runtime compatible with the device type is chosen. 84 | Examples: ("watchOS3", "watchOS3.2", "watchOS 3.2", "com.apple.CoreSimulator.SimRuntime.watchOS-3-2", 85 | "/Volumes/path/to/Runtimes/watchOS 3.2.simruntime") 86 | 87 | 88 | xcrun simctl help delete 89 | Delete specified devices, unavailable devices, or all devices. 90 | Usage: simctl delete [... ] | unavailable | all 91 | 92 | Specifying unavailable will delete devices that are not supported by the current Xcode SDK. 93 | 94 | 95 | xcrun simctl help diagnose 96 | Collect diagnostic information and logs. 97 | Usage: simctl diagnose [-bX] [--timeout=] [--output=] [--no-archive] [--all-logs] [--data-containers] [--udid= [--udid= [...]]] 98 | 99 | -b Do NOT show the resulting archive in a Finder window upon completion. 100 | -X Run all diagnostics with no timeout. It ignores the --timeout value if it is specified. 101 | --timeout Specify a duration (in seconds) to wait for the log collection before timeout. 102 | --output Specify the output directory. 103 | If not provided the temporary directory is used. 104 | --no-archive Do not create an archive, leave the collected files uncompressed. 105 | --all-logs Include all device logs, even for non-booted devices. 106 | --data-container Include booted device(s) data directory. 107 | Warning: May include private information, app data containers, 108 | and increases the size of the archive! 109 | Default is NOT to collect the data container. 110 | --udid Collect diagnostics only from the specified device. This option 111 | may be specified more than once to consider multiple devices. 112 | The --all-logs option causes all --udid options to be ignored. 113 | 114 | Please provide simctl diagnose output when filing bugs. 115 | 116 | NOTE: If there are booted devices only logs from those devices are collected by default, otherwise --all-logs is assumed. More information can be collected from a booted device so you should prefer leaving affected simulators booted when running simctl diagnose. 117 | 118 | NOTE: You can run 'simctl logverbose enable' to enable verbose logging and reboot the device before reproducing the problem and running 'simctl diagnose'. 119 | 120 | 121 | xcrun simctl help erase 122 | Erase a device's contents and settings. 123 | Usage: simctl erase [... ] | all 124 | 125 | Specifying all will erase all existing devices. 126 | 127 | xcrun simctl help get_app_container 128 | Print the path of the installed app's container 129 | Usage: simctl get_app_container [] 130 | 131 | container Optionally specify the container. Defaults to app. 132 | app The .app bundle 133 | data The application's data container 134 | groups The App Group containers 135 | A specific App Group container 136 | 137 | 138 | 139 | xcrun simctl help getenv 140 | Print an environment variable from a running device. 141 | Usage: simctl getenv 142 | 143 | xcrun simctl help help 144 | Prints the usage for a given subcommand. 145 | Usage: simctl help 146 | 147 | xcrun simctl help icloud_sync 148 | Trigger iCloud sync on a device. 149 | Usage: simctl icloud_sync 150 | 151 | xcrun simctl help install 152 | Install an app on a device. 153 | Usage: simctl install 154 | 155 | xcrun simctl help install_app_data 156 | Install an xcappdata package to a device, replacing the current contents of the container. 157 | Usage: simctl install_app_data 158 | This will replace the current contents of the container. If the app is currently running it will be terminated before the container is replaced. 159 | 160 | xcrun simctl help io 161 | Set up a device IO operation. 162 | Usage: simctl io 163 | 164 | Supported operations: 165 | enumerate [--poll] 166 | Lists all available IO ports and descriptor states. 167 | --poll Poll after enumeration. 168 | 169 | poll 170 | Polls all available IO ports for events. 171 | 172 | recordVideo [--codec=] [--display=] [--mask=] [--force] 173 | Records the display to a QuickTime movie at the specified file or url. 174 | --codec Specifies the codec type: "h264" or "hevc". Default is "hevc". 175 | 176 | --display iOS: supports "internal" or "external". Default is "internal". 177 | tvOS: supports only "external" 178 | watchOS: supports only "internal" 179 | 180 | --mask For non-rectangular displays, handle the mask by policy: 181 | ignored: The mask is ignored and the unmasked framebuffer is saved. 182 | alpha: Not supported, but retained for compatibility; the mask is rendered black. 183 | black: The mask is rendered black. 184 | 185 | --force Force the output file to be written to, even if the file already exists. 186 | 187 | simctl writes 'Recording started' to stderr once the first video frame has been processed. Look for this 188 | if you want to wait for the recording to start. 189 | Send SIGINT (Control + C) to stop recording. simctl exits once the in-flight frames are processed 190 | and the video file is finalized. 191 | 192 | screenshot [--type=] [--display=] [--mask=] 193 | Saves a screenshot as a PNG to the specified file or url(use "-" for stdout). 194 | --type Can be "png", "tiff", "bmp", "gif", "jpeg". Default is png. 195 | 196 | --display iOS: supports "internal" or "external". Default is "internal". 197 | tvOS: supports only "external" 198 | watchOS: supports only "internal" 199 | 200 | You may also specify a port by UUID 201 | --mask For non-rectangular displays, handle the mask by policy: 202 | ignored: The mask is ignored and the unmasked framebuffer is saved. 203 | alpha: The mask is used as premultiplied alpha. 204 | black: The mask is rendered black. 205 | 206 | Example: 207 | Save a screenshot of the booted device to screenshot.png: 208 | simctl io booted screenshot screenshot.png 209 | 210 | 211 | 212 | xcrun simctl help keychain 213 | Manipulate a device's keychain 214 | Usage: simctl keychain [arguments] 215 | 216 | add-root-cert [path] 217 | Add a certificate to the trusted root store. 218 | 219 | add-cert [path] 220 | Add a certificate to the keychain. 221 | 222 | reset 223 | Reset the keychain. 224 | 225 | 226 | 227 | xcrun simctl help launch 228 | Launch an application by identifier on a device. 229 | Usage: simctl launch [-w | --wait-for-debugger] [--console|--console-pty] [--stdout=] [--stderr=] [--terminate-running-process] [ ... ] 230 | 231 | --console Block and print the application's stdout and stderr to the current terminal. 232 | Signals received by simctl are passed through to the application. 233 | (Cannot be combined with --stdout or --stderr) 234 | --console-pty Block and print the application's stdout and stderr to the current terminal via a PTY. 235 | Signals received by simctl are passed through to the application. 236 | (Cannot be combined with --stdout or --stderr) 237 | --stdout= Redirect the application's standard output to a file. 238 | --stderr= Redirect the application's standard error to a file. 239 | --terminate-running-process Terminate any running copy of the application. 240 | Note: Log output is often directed to stderr, not stdout. 241 | 242 | If you want to set environment variables in the resulting environment, set them in the calling environment with a SIMCTL_CHILD_ prefix. 243 | 244 | xcrun simctl help list 245 | List available devices, device types, runtimes, or device pairs. 246 | Usage: simctl list [-j | --json] [-e | --no-escape-slashes] [-v] [devices|devicetypes|runtimes|pairs] [|available] 247 | -j Print as JSON 248 | -e Encode slashes without escapes in JSON output 249 | -v More verbose output 250 | 251 | Specify one of 'devices', 'devicetypes', 'runtimes', or 'pairs' to list only items of that type. If a type filter is specified you may also specify a search term. Search terms use a simple case-insensitive contains check against the item's description. You may use the search term 'available' to only list available items. 252 | 253 | 254 | xcrun simctl help location 255 | Control a device's simulated location 256 | Usage: simctl location [arguments] 257 | 258 | list 259 | List available simulation scenarios. 260 | 261 | clear 262 | Stop any running scenario and clear any simulated location. 263 | 264 | set , 265 | Set the location to a specific latitude and longitude. 266 | 267 | run 268 | Run a simulated location scenario (use the list action to get a list of scenarios). 269 | 270 | start [--speed=] [--distance=|--interval=] , ,... 271 | Set the location to a series of waypoints specified as 'lat,lon' pairs, interpolating between them over time. 272 | At least two waypoints are required. Use '-' to read waypoints from stdin, one waypoint per line. 273 | 274 | Speed specifies how quickly to move between waypoints in meters per second. If not specified 20m/s is used. 275 | 276 | The system will issue location updates along the path between each pair of waypoints. Use distance or interval to 277 | control how often those updates are issued. Distance will issue an update every travelled without regard 278 | for the time between updates. Interval will issue updates at fixed times without regard for how much 279 | the location moves between updates. 280 | If neither are specified an interval of 1.0 seconds is used. If both are specified the system picks ones. 281 | 282 | Example simulating a direct line between San Francisco and New York City, with updates every km: 283 | start --distance=1000 --speed=260 37.629538,-122.395733 40.628083,-73.768254 284 | 285 | Latitude and longitude pairs must be specified using '.' as the decimal separator and ',' as the field separator. 286 | 287 | 288 | 289 | xcrun simctl help logverbose 290 | enable or disable verbose logging for a device 291 | Usage: simctl logverbose [] (enable | disable) 292 | The device. If not provided all booted devices are affected. 293 | enable Enables verbose logging 294 | disable Disables verbose logging 295 | 296 | NOTE: You may need to reboot the affected device before logging changes will be effective. 297 | 298 | 299 | xcrun simctl help openurl 300 | Open a URL in a device. 301 | Usage: simctl openurl 302 | 303 | xcrun simctl help pair 304 | Create a new watch and phone pair. 305 | Usage: simctl pair 306 | 307 | xcrun simctl help pair_activate 308 | Set a given pair as active. 309 | Usage: simctl pair_activate 310 | 311 | xcrun simctl help pbcopy 312 | Copy standard input onto the device pasteboard. 313 | Usage: simctl pbcopy [-v] 314 | 315 | xcrun simctl help pbpaste 316 | Print the contents of the device's pasteboard to standard output. 317 | Usage: simctl pbpaste [-v] 318 | 319 | xcrun simctl help pbsync 320 | Sync the pasteboard content from one pasteboard to another. 321 | Usage: simctl pbsync [-pv] 322 | 323 | -p causes simctl to use promise data for secondary types. simctl will continue to run to provide that promise data until something else replaces it on the pasteboard. 324 | 325 | xcrun simctl help privacy 326 | Grant, revoke, or reset privacy and permissions 327 | Usage: simctl privacy [] 328 | 329 | action 330 | The action to take: 331 | grant - Grant access without prompting. Requires bundle identifier. 332 | revoke - Revoke access, denying all use of the service. Requires bundle identifier. 333 | reset - Reset access, prompting on next use. Bundle identifier optional. 334 | Some permission changes will terminate the application if running. 335 | service 336 | The service: 337 | all - Apply the action to all services. 338 | calendar - Allow access to calendar. 339 | contacts-limited - Allow access to basic contact info. 340 | contacts - Allow access to full contact details. 341 | location - Allow access to location services when app is in use. 342 | location-always - Allow access to location services at all times. 343 | photos-add - Allow adding photos to the photo library. 344 | photos - Allow full access to the photo library. 345 | media-library - Allow access to the media library. 346 | microphone - Allow access to audio input. 347 | motion - Allow access to motion and fitness data. 348 | reminders - Allow access to reminders. 349 | siri - Allow use of the app with Siri. 350 | bundle identifier 351 | The bundle identifier of the target application. 352 | 353 | Examples: 354 | reset all permissions: privacy reset all 355 | grant test host photo permissions: privacy grant photos com.example.app.test-host 356 | 357 | Warning: 358 | Normally applications must have valid Info.plist usage description keys and follow the API guidelines to request access to services. Using this command to bypass those requirements can mask bugs. 359 | 360 | 361 | 362 | xcrun simctl help push 363 | Send a simulated push notification 364 | Usage: simctl push [] ( | -) 365 | 366 | bundle identifier 367 | The bundle identifier of the target application 368 | If the payload file contains a 'Simulator Target Bundle' top-level key this parameter may be omitted. 369 | If both are provided this argument will override the value from the payload. 370 | json file 371 | Path to a JSON payload or '-' to read from stdin. The payload must: 372 | - Contain an object at the top level. 373 | - Contain an 'aps' key with valid Apple Push Notification values. 374 | - Be 4096 bytes or less. 375 | 376 | Only application remote push notifications are supported. VoIP, Complication, File Provider, and other types are not supported. 377 | 378 | 379 | 380 | xcrun simctl help rename 381 | Rename a device. 382 | Usage: simctl rename 383 | 384 | xcrun simctl help runtime 385 | Perform operations on runtimes 386 | Usage: simctl runtime 387 | 388 | Supported Operations: 389 | add [-ma] 390 | Add a runtime disk image to the secure storage area. The image will be staged, verified, and mounted. 391 | When possible the image file will be cloned so no additional disk space will be used. 392 | If stdout is a terminal and a copy is required then progress will be reported. 393 | 394 | --move | -m 395 | Remove the original file if the image is added successfully. If the image cannot be staged 396 | or the add fails the original is not removed. 397 | --async | -a 398 | Print the UUID of the new image then exit, do not wait on the results of the add operation. 399 | 400 | delete (|--notUsedSinceDays ) [--dry-run] 401 | Delete a simulator runtime from the secure storage area. If runtime is a disk image 402 | any booted simulators are shutdown and the disk is unmounted first. 403 | Use the alias 'all' to delete all images. 404 | 405 | --notUsedSinceDays | -d 406 | Delete images not used within the past days. 407 | --dry-run | -n 408 | Print what images would be deleted without actually deleting anything. 409 | 410 | verify 411 | Re-verify the signature of a given runtime. 412 | 413 | list [-v] [-j | --json] 414 | List runtime disk images, optionally outputting JSON to stdout. 415 | -v 416 | Print more verbose output 417 | -j 418 | Print as JSON 419 | 420 | match list [-v] [-j | --json] 421 | List the SDK build to runtime build mapping rules for the selected Xcode. 422 | Preferred means the runtime was either bundled with Xcode, exactly matched your SDK version, 423 | or the downloadable index indicated a better match for your SDK 424 | . Manual overrides using 'match set' have the highest priority. 425 | 426 | -v 427 | Verbose mode. Includes the full preferred build map, user override map, and known SDK names. 428 | -j 429 | Print as JSON 430 | 431 | match set ( || --default) [--sdkBuild ] 432 | Override the SDK to runtime build mapping. This controls which build of a given runtime 433 | Xcode will prefer for building and running when using that SDK. This matters most 434 | often during Beta releases when there are multiple builds for a given OS version. 435 | If --sdkBuild is not specified it is assumed you mean the SDK build for the currently selected Xcode. 436 | 437 | Note: Remember this is about build numbers, not semantic versions. When using the iOS 16.0 SDK Xcode 438 | will always prefer an iOS 16.0 runtime. Matching policy controls what to do when there are multiple 439 | iOS 16.0 runtimes available, 440 | eg if the iOS 16.0 SDK is 20A245 and the available runtimes are (20A248, 20A252, 20A254) which one 441 | should Xcode use for building, SwiftUI Previews, and when launching iOS 16.0 Simulators? 442 | They are all iOS 16.0 runtimes so a policy must decide which one is selected. 443 | 444 | --default 445 | Clear the override for the given SDK and revert to default behavior. 446 | --sdkBuild 447 | Explicitly specify the SDK build, eg for an Xcode other than the selected Xcode. 448 | 449 | 450 | 451 | xcrun simctl help shutdown 452 | Shutdown a device. 453 | Usage: simctl shutdown | all 454 | 455 | Specifying all will shut down all running devices 456 | 457 | xcrun simctl help spawn 458 | Spawn a process by executing a given executable on a device. 459 | Usage: simctl spawn [-w | --wait-for-debugger] [-s | --standalone] [-a | --arch=] [ ... ] 460 | -w Start the process suspended. 461 | -s Use a NULL mach bootstrap port, meaning the process cannot connect to other services and does not require a booted device. (deprecated) 462 | -a Specify an architecture (x86_64 or arm64) to use when spawning a universal binary. 463 | 464 | The path to the executable is searched using the following rules: 465 | contains no / characters: search the device's $PATH. This is similar to how most shells work, but searches the device's path instead of the host's path. 466 | starts with /: Assume a literal path to the binary. This must start from the host's root. 467 | contains non-leading / characters: search relative to the current directory first, then relative to the device's $SIMULATOR_ROOT. 468 | 469 | If you want to set environment variables in the resulting environment, set them in the calling environment with a SIMCTL_CHILD_ prefix. 470 | 471 | xcrun simctl help status_bar 472 | Set or clear status bar overrides 473 | Usage: simctl status_bar [list | clear | override ] 474 | 475 | Supported Operations: 476 | list 477 | List existing overrides. 478 | 479 | clear 480 | Clear all existing status bar overrides. 481 | 482 | override 483 | Set status bar override values, according to these flags. 484 | You may specify any combination of these flags (at least one is required): 485 | 486 | --time 487 | Set the date or time to a fixed value. 488 | If the string is a valid ISO date string it will also set the date on relevant devices. 489 | --dataNetwork 490 | If specified must be one of 'hide', 'wifi', '3g', '4g', 'lte', 'lte-a', 'lte+', '5g', '5g+', '5g-uwb', or '5g-uc'. 491 | --wifiMode 492 | If specified must be one of 'searching', 'failed', or 'active'. 493 | --wifiBars 494 | If specified must be 0-3. 495 | --cellularMode 496 | If specified must be one of 'notSupported', 'searching', 'failed', or 'active'. 497 | --cellularBars 498 | If specified must be 0-4. 499 | --operatorName 500 | Set the cellular operator/carrier name. Use '' for the empty string. 501 | --batteryState 502 | If specified must be one of 'charging', 'charged', or 'discharging'. 503 | --batteryLevel 504 | If specified must be 0-100. 505 | 506 | 507 | 508 | xcrun simctl help terminate 509 | Terminate an application by identifier on a device. 510 | Usage: simctl terminate 511 | 512 | xcrun simctl help ui 513 | Get or Set UI options 514 | Usage: simctl ui