Proto commits in facebook/idb

These 93 commits are when the Protocol Buffers files have changed:

Commit:b930660
Author:Maru Berezin
Committer:Facebook GitHub Bot

Rename option to --enable-continuous-coverage-collection Summary: Renamed the option to `--enable-continuous-coverage-collection` to avoid leaking too many implementation details of idb_companion to the idb client API. Reviewed By: jbardini Differential Revision: D48605430 fbshipit-source-id: 202f72309e49ce48739c4dae25027daecea481dd

The documentation is generated from this commit.

Commit:011e53a
Author:Maru Berezin
Committer:Facebook GitHub Bot

Add --coverage-file-suffix option Summary: Added the option `--coverage-file-suffix` to add a suffix to the .profraw coverage file names generated after a test run. Reviewed By: Nekitosss Differential Revision: D48095797 fbshipit-source-id: d51104a711050d62d501c8b5cc2df2a92b526cf3

Commit:70fb9cb
Author:Ron Mordechai
Committer:Facebook GitHub Bot

Allow configuring key frame rate for video streams Summary: Jest E2E videos are setting some terrible corruption mid stream: https://www.internalfb.com/intern/testinfra/diagnostics/5348024748728738.844425029855635.1691590430/. Probably a result of a missing frame or something—increasing the frequency of key frames should alleviate the issue. Reviewed By: Nekitosss Differential Revision: D48195347 fbshipit-source-id: cdd8de5f9c58d3ae06a97d710e7e8b83559810f3

Commit:9550c4c
Author:Ivan Smetanin
Committer:Facebook GitHub Bot

Add an option to skip signing xctest bundles Reviewed By: jbardini, Nekitosss Differential Revision: D45392837 fbshipit-source-id: 7aaefedb7c1fab32c886f18f29c7578644b1e14e

Commit:a8239a0
Author:Mark Bridges
Committer:Facebook GitHub Bot

Reporting Additional Test Failure Assertions Summary: See D42416051 Reviewed By: Nekitosss Differential Revision: D42412171 fbshipit-source-id: 7fff78ababf0e2f4f3b3aa67330f0443e6a3e1ab

Commit:f05a91e
Author:Alex Beals
Committer:Facebook GitHub Bot

Add in new command to revoke permissions Summary: This adds in the ability to reset permissions as a complement to `approve`. This naming mirrors the similar `adb` command `pm revoke` which is the opposite of `pm grant`. While this more closely mirrors `xcrun simctl privacy reset` than `xcrun simctl privacy revoke`, `reset` is a little too vague to be used as a top-level `idb` command, so here we are. Reviewed By: Nekitosss Differential Revision: D37928629 fbshipit-source-id: 4495baf39163209a3bd927a892c60e701ee3e9f8

Commit:631f47d
Author:Nikita Patskov
Committer:Facebook GitHub Bot

Add userInfo to XCTAttachment in proto Summary: Created new property to pass attachment user info Reviewed By: lawrencelomax Differential Revision: D37454753 fbshipit-source-id: 9171c9b57c7d770e20fbb14611e19edcfbd8dad3

Commit:b8d8837
Author:Jakub Grzmiel
Committer:Facebook GitHub Bot

Allow not returning bundle results from running xctest Summary: Do not send back the bundle results if client does not want to fetch it. Reviewed By: Nekitosss Differential Revision: D36494548 fbshipit-source-id: da11a608abd145457750d4465b405352b29a9b0e

Commit:dcd17cf
Author:Johnny Souza
Committer:Facebook GitHub Bot

Add flag to app install to ignore mtime in .ipa archives Summary: The instalation process of an `.ipa` on a simulator consists of idb decompressing the archive (ipa is a zip) and then calling `-[SimDevice installApplication:withOptions:error:]` which in turn will request the installation to `installd` (a process that belongs to the simulator). When a previous version of the app is already installed in the simulator, `installd` performs an "incremental install" (or "Delta patch update" as it shows in the logs). Since `installd` incremental patch update seems to be based on each file's modified date and size, it not work well when your `.ipa` is produced by a building system that normalises the timestamps of files contained in archive-like artefacts (all the content of all `.ipa`s have mtime set to a specific date in the past -- regardless of _when_ the build actually happened). This often results on a corrupted app installation with some files from the previous version and some files of the newer version. The files that are not updated are files which had their content changed but without a change in size. As the files from both builds have the same mtime, `installd` skip them. So we mitigate this issue by ignoring the mtime stored within the `.ipa` when decompressing it. So all the files in the app bundle have the current time as mtime, which will differ from the files previously installed, and `installd` will be able to install the newer version of the app properly. Since we are, in theory, forcing a full install, it can result in longer install times. There is also the possibility of unforeseen issues with applications that happen to depend on the mtime of specific resources within it's bundle, so we are making this new behaviour opt-in. Reviewed By: ronmrdechai, Nekitosss Differential Revision: D36341632 fbshipit-source-id: 53e48ae7b915c9a4e67a6ebe92dac507f27e3da8

Commit:82a6701
Author:Ruijie Chen
Committer:Facebook GitHub Bot

Adding support for test bundle_id Summary: Adding support for test bundle in idb_companion when installing dsym and link next to xctest bundle Reviewed By: Nekitosss Differential Revision: D34523586 fbshipit-source-id: 208c0c85a794fad2bd4bc1467acb091b291477d2

Commit:d0ca124
Author:Andrey Kateshov
Committer:Facebook GitHub Bot

add microphone permissions in cli Summary: this adds a new future: support for granting microphone permissions. Reviewed By: jbardini Differential Revision: D34445262 fbshipit-source-id: 29370eeb66738f8183a603ce2e7d19a311682429

Commit:ad2d747
Author:Yerken Tussupbekov
Committer:Facebook GitHub Bot

Add avg_bitrate to VideoStream request Summary: This will allow us to control encoder bitrate for IDB companion video-streaming through GRPC API Reviewed By: jamescoggan Differential Revision: D34213517 fbshipit-source-id: 4c04f33e1181ab5e618e44ea9842bb5b0ec6e3e4

Commit:33147af
Author:Andrea Tullis
Committer:Facebook GitHub Bot

Support non string values for default values Summary: This diff adds support for non string values to the `idb set` family of commands. Reviewed By: ideahitme Differential Revision: D34144910 fbshipit-source-id: 7cef44beb521833dc2a1398fe320d6e9bc70b12b

Commit:84ff882
Author:Stefan Petrov
Committer:Facebook GitHub Bot

Add I420 video format flag to IDB companion GRPC Summary: Add I420 as a video format that can be requested from IDB companion through GRPC. Reviewed By: ideahitme Differential Revision: D34110642 fbshipit-source-id: af3d527476159ec0ff6a924e250b295e93d8698f

Commit:fea9e0f
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Add FileContainer.SYMBOLS for idb companion Summary: Now that we have a base implementation, this can be wrapped up in a file container Reviewed By: jbardini Differential Revision: D33187470 fbshipit-source-id: aab304581b83d7bf764316804d2797e21efb7ffd

Commit:43a3ecc
Author:Andres Suarez
Committer:Facebook GitHub Bot

Update copyright headers from Facebook to Meta Reviewed By: aaronabramov Differential Revision: D33357161 fbshipit-source-id: 3e27660d7eb63fd4a40c366d6b226cac694396d5

Commit:11cfdd7
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Add grpc interface for inspecting the companion's internal storage Summary: Another file container, this time for the files that idb uses to internally manage a number of different mechanisms. These only exist within idb itself, rather than the underlying frameworks Reviewed By: fgasperij Differential Revision: D32696566 fbshipit-source-id: 84fa4e8a6745a967adbee5a49aab541dbae22b7d

Commit:a02bf34
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Remove deprecated fields from LaunchResponse proto Summary: No longer used and has been unused for over two weeks in D31992199 (https://github.com/facebook/idb/commit/a47216f0cc943c94696d636af7921176b5e388af) , let's remove it from the protocol since it's no longer used and increasing transfer size due to the doubnling up. Reviewed By: jamescoggan Differential Revision: D31992217 fbshipit-source-id: 90bfe9e6cd4e27d74b8fb85b3c4b8d93dd94ba6d

Commit:0ed5f89
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Add AUXILLARY container Summary: This is going to be helpful for commands that wish to use the aux dir internally Differential Revision: D32022253 fbshipit-source-id: 80a371dd69208d4f5ba1d03b85ec868cadf2fa2d

Commit:a3254fa
Author:Yerken Tussupbekov
Committer:Facebook GitHub Bot

Add bundle_id to InstallRequest Reviewed By: fgasperij Differential Revision: D32098488 fbshipit-source-id: b21accb16ae2cc75684822bb303ee00fa8a404c3

Commit:560a67f
Author:Juan Chaparro
Committer:Facebook GitHub Bot

Add simulate memory warning command Reviewed By: jbardini Differential Revision: D32203544 fbshipit-source-id: 3b7d90fa929b4e469ac148aa881d2fc3c08d067e

Commit:8f0914b
Author:Ruijie Chen
Committer:Facebook GitHub Bot

Implement dap command in idb companion Summary: Implement dap command to spawn a dap protocol server for remote debugging. Reviewed By: jbardini Differential Revision: D31856353 fbshipit-source-id: 7e1931e7761b50e23cdc6b6faf0df372ebb7cbfa

Commit:c99d071
Author:Callum Ryan
Committer:Facebook GitHub Bot

Send notification command Reviewed By: jbardini Differential Revision: D32019332 fbshipit-source-id: f597bedbbe1ce55fc69785345795171e9a5292a1

Commit:e3ba6f1
Author:Yerken Tussupbekov
Committer:Facebook GitHub Bot

Add and populate DebuggerInfo in LaunchResponse Summary: This is required for implementing debugging for apps, where we launch a suspended app and use return process id to attach via lldb A follow-up is processing DebuggerInfo to be printed as a JSON struct via idb cli Reviewed By: jbardini Differential Revision: D32054698 fbshipit-source-id: a559f06f9b7432c5d4c397d6215b3eaafbe773cb

Commit:e5cb063
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Make app debuggability optional on install, off by default Summary: Right now we "persist" apps, even if we don't wish to debug them. This is hideously suboptimal and a waste of storage space in the general case. So I'm making this have to be flagged on the install, the default is off. Reviewed By: jbardini Differential Revision: D31685386 fbshipit-source-id: e00bfe259146898e0739c7e757bcf63d05cace79

Commit:7c3fb9d
Author:Andres Suarez
Committer:Facebook GitHub Bot

Enable CLANGFORMAT Differential Revision: D31464478 fbshipit-source-id: 7bd403f6faef8eec8565621c6814032afe0f897f

Commit:c598e69
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Add Application Container Support for Simulators Summary: The way that group containers are implemented has a number of advantages that I want to use in Application containers also. This approach will eventually replace the usage of `--bundle-id` in file commands: - The root of the application container-of-containers allows discovery of all application containers that can be interacted with. - We can use this as a way of getting rid of the `:` syntax for `--bundle-id` that's inconsistent with every other container - It allows for copying across containers, without pulling then pushing. Reviewed By: fgasperij Differential Revision: D30535532 fbshipit-source-id: 4c7a34077cbbf63dbff751085d8a448fc77326cb

Commit:dc72b3d
Author:Johnny Souza
Committer:Facebook GitHub Bot

Add code coverage format to GRPC definition Summary: API changes to specify code coverage data format idb_companion should return. Reviewed By: lawrencelomax Differential Revision: D30961625 fbshipit-source-id: 557abafcfe3cfc5538b3c699e04cfc1493743787

Commit:5385c72
Author:Yerken Tussupbekov
Committer:Facebook GitHub Bot

idb.proto: add Setting.ANY and allow to pass preference name,domain Summary: This diff introduced necessary parameters into Get and Set requests for supporting random name,value preferences Reviewed By: lawrencelomax Differential Revision: D30768086 fbshipit-source-id: b0a16e99834af3470075c5175da84e52a872b096

Commit:d4cbc74
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Add -[FBFileCommands fileCommandsForGroupContainers] Summary: Adds the necessary definitions and wiring into a new file container type. Reviewed By: jbardini Differential Revision: D30219099 fbshipit-source-id: d2775abb7e859ea0a3469e26f1a6fa7f0292d585

Commit:259bb58
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Add ProcessOutput so that it can be used elsewhere Summary: This factors out a `ProcessOutput` message that can then be used in a `spawn` call. At the moment this means that we need to send both the old and the new way of representing a process's output in `LaunchResponse`. Once this has been rolled out fully, we can remove this handling within the companion Reviewed By: jamescoggan Differential Revision: D30097348 fbshipit-source-id: 8508c8bf1e83bc951bdfafd72311453cb299cc99

Commit:99cdb39
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Add tail grpc call & companion implementation Summary: Now that we have an interface for this it is implementable. Using a bidirectional stream, since stopping writing based on a client hangup is very error prone (see the implementation of the `log` command). This means that we can immediately detect that a client is gone and teardown afterwards. Reviewed By: fgasperij Differential Revision: D30015732 fbshipit-source-id: 41a70a98ec3679e224270ccdf1611b9902b80cd3

Commit:4a2f063
Author:Ruijie Chen
Committer:Facebook GitHub Bot

Change grpc definition for debugger integration Summary: XCTestRunRquest: Addding wait_for_debugger field XCTestRunResponse: Adding debugger message to return pid or debugger server host and port. Reviewed By: jamescoggan Differential Revision: D29160632 fbshipit-source-id: 840dca74af85e8850bf21a2a3bb42f3ad0058b41

Commit:03e8f14
Author:Yerken Tussupbekov
Committer:Facebook GitHub Bot

Add Compression option to InstallRequest Summary: This is to add ZSTD compression support for idb install command and corresponding support on the companion side. Right now we only support GZIP (and gzip-like) compression algorithm, however according to my tests ZSTD outperforms it when working on large files, for example it could give a large boost when doing `idb install Facebook.app` over the wire Reviewed By: c-ryan747 Differential Revision: D27846177 fbshipit-source-id: b6b2bcbc37fe19d4323990c2f0c0c0810b866929

Commit:26204f2
Author:Johnny Souza
Committer:Facebook GitHub Bot

Add 'log_directory' to grpc definiton Summary: As title Reviewed By: fgasperij Differential Revision: D27361185 fbshipit-source-id: fbcad3a67a58bd182229ce053c54ee83fae08327

Commit:3390002
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Remove client side sending of bundle_id (D24078439 Redux) Summary: We originally needed to revert D24078439 (https://github.com/facebook/idb/commit/3cb4a89e8f66ce37db03ff188dec3caa42101b70) due to a breakage elsewhere. Re-doing it now Reviewed By: zeyadsalloum Differential Revision: D24215531 fbshipit-source-id: ab6d7dcf0f280a4e25d0ff5e2d6de17e0ea3a3b0

Commit:09f1d6c
Author:Cheng Chang
Committer:Facebook GitHub Bot

add `xctrace record` command Summary: The Instruments CLI tool is deprecated in Xcode 12. Apple released the `xctrace` command instead. The `record` subcommand outputs a .trace file and `xctrace record` could replace the deprecated Instruments CLI. So in this diff, add the `xctrace record` command. The goal is to make `idb xctrace record` a remote version of the official `xctrace record` command. The options for `idb xctrace record` should be a superset of `xctrace record` so that users could simply append `idb` in front of `xctrace record <options>` and it would work properly. The hope is that `xctrace record` is more stable than the old Instruments CLI tool, so the "launch retry timeout" and the "launch error timeout" hacks in `idb instruments` are not implemented in `idb xctrace record`. I did see from local testing that xctrace got stuck when stopping recording so the "stop timeout" is reserved. We will test `idb xctrace record` in Mobile Lab and see how it works. ``` $ xcrun xctrace help usage: xctrace <command> [options] global options: -q, --quiet commands: record perform new recording using specified template import import file of a supported format into .trace file export export .trace file content to an external format list [devices|templates] list capabilities of the current running environment version print version of the tool further help: xctrace help <command> $ xcrun xctrace help record usage: xctrace record [<options>] [--attach | --all-processes | --launch -- command ] description: Perform a new recording on the specified device and target with the given template options: --output <path> Output .trace file to the given path --append-run Appends a new run to an existing trace file --template <path|name> Record using given trace template name or path --device <name|UDID> Record on device with the given name or UDID --time-limit <time[ms|s|m|h]> Limit recording time to the specified value --package <file> Load Instruments Package from given path for duration of the command --all-processes Record all processes --attach <pid|name> Attach and record process with the given name or pid --launch < -- command [arguments] Launch process with the given name or path --target-stdin <name> Redirect standard input of the launched process --target-stdout <name> Redirect standard output of the launched process --env <VAR=value> Set specified environment variable for the launched process notes: If an output path is not specified, a uniquely named file will be created in the current directory. If the output path is a directory, then a unique file is created in it. If the path contains the .trace extension, a file will be created at the specified path. If trace file already exists, then --append-run needs to be specified to add a run to it. In this case, specified template will be ignored and the one used to record original trace file will be used. If target device UDID or name is not specified — host device is used for the recording Specifying environment variables or stream redirection is only available when using launch option examples: xctrace record --template 'Time Profiler' --all-processes --time-limit 5s xctrace record --template 'Time Profiler' --all-processes --output 'recording.trace' xctrace record --all-processes --append-run --output 'existing.trace' xctrace record --template 'System Trace' --attach 4215 xctrace record --template 'Time Profiler' --device-name "Chad's iPhone" --attach 'Trailblazer' xctrace record --template 'Allocations' --env KEY=VALUE --launch -- MyApp.app xctrace record --template 'Time Profiler' --target-stdout - --launch -- /tmp/tool arg1 arg2 ``` Reviewed By: lawrencelomax Differential Revision: D26194417 fbshipit-source-id: 6ab5f27dd34f86a6b09410403e4cac280dfe8a6c

Commit:d4baf66
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Add Locale Set/Get/List to Companion Summary: Adds the ability to set/get/list locale identifiers for an iOS Simulator. This means a number of new APIs. The methodology here is to use the defaults commands directly rather than using plists. This is vastly preferable as it doesn't require reading and writing of files. The listing is convenient as it means that it's possible to understand what is supported before sending a request. Reviewed By: c-ryan747 Differential Revision: D25974670 fbshipit-source-id: 7e9320f931237e90a1dcbe1ce155a9ea2573a127

Commit:80e7a46
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Add scaling to proto and configuration Summary: Adds a scale factor to the proto and configuration Reviewed By: ideahitme Differential Revision: D25923927 fbshipit-source-id: e66b18299bbb80221f61ead53bc78aa54ec6db0e

Commit:59315ed
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Add CompressionQuality to FBVideoStreamConfiguration Summary: Adds a compression quality value to the configuration. Also adds it to the idb grpc definition. Here the value is always defaulted to 0.2 if not provided. This is done because we can't guarantee that clients are sending this value yet. In time we will be able to remove the nullability in the constructor Reviewed By: ideahitme Differential Revision: D24724914 fbshipit-source-id: ec4aa892290f5f335cb247e6ae23af6ad0851592

Commit:140cc6d
Author:Aleksandr Sasha Sergeev
Committer:Facebook GitHub Bot

Add idb "--wait-for-debugger" argument for `launch` command Summary: idb "--wait-for-debugger" argument for launch command suspends application right after the launch to facilitate attaching of a debugger (ex, lldb). Example, `idb --companion localhost:10882 launch -w com.facebook.Wilde` Reviewed By: lawrencelomax Differential Revision: D25669812 fbshipit-source-id: 8c57f5ecfa491b8c2d263cf7adb72d9af3e5af48

Commit:463517b
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Add File Container for Disk Images Summary: Exposes a new FileContainer for Disk Images. The semantics are as follows: - Listing will list all of the available disk images that should be mounted - If a disk is mounted it will be exposed as "Developer" - Listing "Developer" will expose the path of the mounted disk - rm on "Developer" will unmount the drive. - mv to "Developer" will mount the drive. Reviewed By: c-ryan747 Differential Revision: D24702412 fbshipit-source-id: d4788742713d5e377466e119148ee898c6b89065

Commit:41536c3
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Add Minicap for Devices Summary: Implementing the minicap protocol is very easy indeed https://github.com/openstf/minicap, it's essentially a stream of JPEGs with some header information sent out first. Based on this, this implementation becomes not so hard. We're just re-using the MJPEG approach, but with the additional headers Reviewed By: c-ryan747 Differential Revision: D24502720 fbshipit-source-id: 8701768457a2aaf41c34542108797f1145092b07

Commit:595a5ae
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Add MJPEG for Devices Summary: Implementing MJPEG is pretty easy since there is support for JPEGs in the encoder, and the wire format is just a stream of JPEGs itself. This is vastly more efficient when compared to using CoreImage with RGBA in-memory buffers. Here we get a JPEG back in the buffer itself, so which results in using substantially less memory overall. To do this we just need to configure the video output correctly and then enumerate the block buffer that we get from it. Reviewed By: c-ryan747 Differential Revision: D24475330 fbshipit-source-id: 65aebe8fc73d096e94a2bd0637e0e92552be3f05

Commit:b8e105f
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Optionally avoid fetching process state Summary: This is useful if you only care about whether is installed rather than installed and running. For devices this can be quicker since there's no dev image mounting. We need to have the default case in the proto mean "please fetch" as this is the default for older clients that aren't yet providing this information. Reviewed By: c-ryan747 Differential Revision: D24358710 fbshipit-source-id: 9b7498b9264ea7f1d1a030b7e5c5ecdef2e657c5

Commit:9cd0148
Author:Jakub Grzmiel
Committer:Facebook GitHub Bot

Revert D24078439: Remove client side sending of bundle_id Differential Revision: D24078439 (https://github.com/facebook/idb/commit/3cb4a89e8f66ce37db03ff188dec3caa42101b70) Original commit changeset: c480222df39a fbshipit-source-id: 927a711425d5813dff857f1136f77f4ebd00734a

Commit:42deaf2
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Add Icon Container, MDM Profiles & Wallpaper to idb grpc interface Summary: Now that we have 3 new file containers defined, this just hooks them up over GRPC. Reviewed By: c-ryan747 Differential Revision: D24014003 fbshipit-source-id: a54de4c026ac7cf91b34bf35a3b286ec1ca07fc9

Commit:3cb4a89
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Remove client side sending of bundle_id Summary: This is now no longer present in the companion handling, so let's remove it from the proto Reviewed By: c-ryan747 Differential Revision: D24078439 fbshipit-source-id: c480222df39a7232b2793862ac6b59bd9b6ee0bc

Commit:9e4a8b6
Author:Dmytro Kasianchuk
Committer:Facebook GitHub Bot

ls supports multiple files on the backend Summary: `ls` now support listing of multiple files at the same time, bringing it inline with the other commands and `ls` more generally. In this case we have to preserve compatibility with older clients sending a single path and populate this data. The data is populated for both, so newer clients can do the multi-listing Reviewed By: c-ryan747 Differential Revision: D24078335 fbshipit-source-id: 2d378eb063c9b8ace7002099105eca3a5d89b0fd

Commit:a802792
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Add grpc call for Settings, implement it for hardware keyboard Summary: Adds an API for enabling/disabling the hardware keyboard Reviewed By: c-ryan747 Differential Revision: D24049663 fbshipit-source-id: 81654eac2d583179e1e2761506b104476231b05a

Commit:daebc8d
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Group methods by functionality (again) Summary: This helps with eyeballing Reviewed By: c-ryan747 Differential Revision: D24049328 fbshipit-source-id: 2e9c4e9f5a16681d89d0843ca1971ec1b0d5bb5d

Commit:2ac50c0
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Return companion info in describe Summary: Getting meta on the client side with a describe means that we don't need to use a `connect` needlessly Reviewed By: zeyadsalloum Differential Revision: D23475369 fbshipit-source-id: 5dcaf868942315924f3ab7df1b079292940696c0

Commit:7025aba
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Add provisioning profile file overlay to grpc Summary: Adds the listing of provisioning profiles via a file overlay to grpc, which calls the underlying file container methods to do the appropriate work Reviewed By: fejese Differential Revision: D22117884 fbshipit-source-id: 97bb8969afc31132c359da25efcc6c13caa19f70

Commit:0dcf545
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Remove disconnect from idb proto Summary: This is no longer used since disconnection is a client side concept. There's been no caller of this inside the idb client whatsoever Reviewed By: c-ryan747 Differential Revision: D23474313 fbshipit-source-id: 70e1a8b787009bc67661b616e5dde07f5161d072

Commit:89454fd
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Return remote logging metadata Summary: This will return things such as the remote metadata Reviewed By: c-ryan747 Differential Revision: D23473822 fbshipit-source-id: f41183a9490d93ad607a1842791be502a3c59632

Commit:1d3d1e9
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Remove Host/Port from CompanionInfo Summary: This shouldn't be used as it's no longer used as of the changes to connect that we made to the client ages ago. Let's remove it for good Reviewed By: c-ryan747 Differential Revision: D23473819 fbshipit-source-id: d1d99b1b8825dc557bc05e2853811608962e66ba

Commit:0cb576e
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Add support for different containers Summary: This makes concrete the various kinds of containers for targets: 1) An application container by bundle id 2) A "root" container 3) A "media" container 4) A "crash" container. This opens up the ability for our idb file commands to support different kinds of containers so that crashes can be queried as a filesystem just the same as any other container Reviewed By: c-ryan747 Differential Revision: D23026636 fbshipit-source-id: 70d1b24dc01b908f1e0f9569955a22b83f4a7b91

Commit:e838723
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Remove boot from proto Summary: This isn't used, because booting must be done using the companion cli directly. This is intentional to not expose destructive commands over grpc Reviewed By: zeyadsalloum Differential Revision: D23002180 fbshipit-source-id: a42119e2aa59403bfbb49cdd7f4508cd96ffc3b1

Commit:d33c938
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Easier to grok grouping in proto Summary: $TITLE Reviewed By: c-ryan747 Differential Revision: D23002181 fbshipit-source-id: bc8c45943a999815097d98fbf26fa1daa32764dd

Commit:073e8c4
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Remove deprecated fields Summary: These values have not been used for a while and can be fully removed from the proto Reviewed By: yancouto Differential Revision: D22763931 fbshipit-source-id: a81950aa240b7b07ecc6620a45080b3928cb58a1

Commit:76ab825
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Add extended information to TargetDescription Summary: Adds a field for the extended information. This is the same data as is returned when listing and does not require any IO to occur to get this prepopulated state. Reviewed By: zeyadsalloum Differential Revision: D22789072 fbshipit-source-id: 90cd69db800be159b8464706dd853ae069402b7f

Commit:940ccf4
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Add diagnostic information in idb describe (when requested) Summary: Now plumb through the additional diagnostic information, so that it is returned (if requested) For targets where this isn't implemented (for example in the case of Simulators) this field is just an empty dictionary. Reviewed By: zeyadsalloum Differential Revision: D22790767 fbshipit-source-id: 95daa08288c16ccea9e39df40bc21c73acfadf31

Commit:cf21ad3
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Add stream implementation in the backend Summary: This adds the corresponding companion call and implementation Reviewed By: c-ryan747 Differential Revision: D22374444 fbshipit-source-id: 86100ef4d416cd3347bde97fdc1d6ef4945b1f0d

Commit:2568230
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Add option to switch over to the newer nested format Summary: This adds the option to switch to the newer format. This will work with older clients since this requires strict matching on the new format, if the value is undefined then it is the legacy format. There's an additional API on the executor that's also no longer needed so this has been deleted Reviewed By: c-ryan747 Differential Revision: D22256035 fbshipit-source-id: 0e2f64c6970f695f14b1f592f0555b73e69e2081

Commit:16e1a19
Author:Dmytro Kasianchuk
Committer:Facebook GitHub Bot

Added notifications approval to client Summary: Adds a way to approve notifications from idb Reviewed By: lawrencelomax, DiZy Differential Revision: D22123213 fbshipit-source-id: 8cdee658a5a7890e1a717b89c97732f312b94d73

Commit:59473f4
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Remove list_targets in GRPC Summary: This is never called and not used. All notions of where targets are, are local to the client (on purpose) Reviewed By: c-ryan747 Differential Revision: D22092525 fbshipit-source-id: 8e286935a0661dbba7da6e75b214f3eec7897dbe

Commit:74afb1a
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Remove ConnectionDestination in GRPC Summary: This was only needed in the bad old days of daemons. No such need for them anymore Reviewed By: c-ryan747 Differential Revision: D22091915 fbshipit-source-id: 8ee7d49e862179bc724f5a4a187d22d15bac3cad

Commit:c1697be
Author:Callum Ryan
Committer:Facebook GitHub Bot

Add option to retrieve attachment data Summary: Making this optional as its a very expensive operation (~4x execution time for a short test). Differential Revision: D22043883 fbshipit-source-id: 62ed9d2102ed8eb648726158fa9fa8b5193f1a65

Commit:b66cd2a
Author:Dmytro Kasianchuk
Committer:Facebook GitHub Bot

Added location to approve arguments to client Summary: Added an option to approve location Reviewed By: lawrencelomax Differential Revision: D21968864 fbshipit-source-id: 9a9b5c0b14ec0f3f8323e14ede0363234086086b

Commit:ba62dc0
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Remove deprecated fields in idb proto Summary: These are no longer used and have long since been removed. This will allow us to re-use slots, or at the very least ignore them from now on Reviewed By: c-ryan747 Differential Revision: D21640268 fbshipit-source-id: 47e30a09c93695e65916d416e21d673c493f2e15

Commit:f46720c
Author:Lawrence Lomax
Committer:Facebook GitHub Bot

Deprecate CompanionInfo in TargetDescription GRPC Summary: This is useless since the client's understanding of the location of the companion is the correct one. If the client has tunnels to the companion then it's going to be more accurate. Reviewed By: c-ryan747 Differential Revision: D21640408 fbshipit-source-id: 3f8cacafd54487b6a538cc5da609bc072cfd1962

Commit:7e9fd99
Author:Dmytro Kasianchuk
Committer:Facebook GitHub Bot

Added deeplink approve to companion Summary: We need to modify `data/Library/Preferences/com.apple.launchservices.schemeapproval.plist` to add an entry in form of `com.apple.CoreSimulator.CoreSimulatorBridge--><scheme>`: `<bundle id>` This allows to skip "Open in <App>" confirmation popup when using `idb open <deeplink>" Reviewed By: lawrencelomax Differential Revision: D21680855 fbshipit-source-id: 06135ee1cf38b7d8d203be2727587d94f8befad5

Commit:525f7f7
Author:Callum Ryan
Committer:Facebook GitHub Bot

Collect coverage data Summary: Add an option the companion to report coverage data in the llvm json format Theres a couple of commands that I need to run to convert the coverage data into a readable format, I'm just not sure where they're best placed cc lawrencelomax --- This is following the llvm docs here: https://fburl.com/i1krmri2 and the format of the json can be found here: https://stackoverflow.com/a/56792192 Reviewed By: lawrencelomax Differential Revision: D20993755 fbshipit-source-id: 2a07c2e99d92fbb5f27e44843e8284510f7bf3ed

Commit:09d1277
Author:Callum Ryan
Committer:Facebook GitHub Bot

parse new activity data Summary: Adding to the data about activities that we return from idb to return pretty much everything that xcode does. I'm returning them in a stacked fashion, so that a sub activity is contained within a top level activity. I figure this is a more useful form to consume the information in. When this option is enabled execution does become slower as xctest will pause to take screenshots etc, but thats an acceptable sacrifice for the people that want this extra data Reviewed By: lawrencelomax Differential Revision: D20986561 fbshipit-source-id: 909b6aaab93665537d24c212bc8c15ba57bfb30c

Commit:9a18664
Author:Callum Ryan
Committer:Facebook GitHub Bot

Add option to report activities Summary: Adding a boat load of plumbing so that we can enable the report activities option on xctest if the client specifies that they want to collect activity data Reviewed By: lawrencelomax Differential Revision: D20986558 fbshipit-source-id: 9f4026853d265113e779c0e2b4325fcece117575

Commit:00a4edd
Author:Callum Ryan
Committer:Facebook Github Bot

Add swipe duration logic to companion Summary: Currently the swipe logic is held both in the companion and the client. By adding the duration logic to the companion we can remove the duplicated code from the client Reviewed By: lawrencelomax Differential Revision: D19372687 fbshipit-source-id: 927d2a0f7aa524c52a7058286e70a987f7a7d36b

Commit:68dc6fd
Author:Andres Suarez
Committer:Facebook Github Bot

Yearless license header Differential Revision: D18292977 fbshipit-source-id: 726c66fe753450cc6500180bb8e158e66713ebd0

Commit:d2cae06
Author:Nathan Slingerland
Committer:Facebook Github Bot

Make instruments command extensible Summary: Update instruments command to support additional tooling. Reviewed By: thegreatwallfb Differential Revision: D18108001 fbshipit-source-id: 687a200608ed2e9c2c1c5b89e3db98d7daad963d

Commit:b3ba989
Author:Carla Cosenza
Committer:Facebook Github Bot

Adding message field in the install response Summary: Making the cli also receive messages for the install in order to have the progress of the install command. Reviewed By: zeyadsalloum Differential Revision: D17685598 fbshipit-source-id: ba316f7bfb3c58ea36a2ca511481d6d4cb0e26db

Commit:7c73ba2
Author:Zeyad Salloum
Committer:Facebook Github Bot

add missing headers Reviewed By: c-ryan747 Differential Revision: D17550202 fbshipit-source-id: 3811810bfbb79c01b77d8df7d3f988f5bddae9d7

Commit:86d83c1
Author:Carla Cosenza
Committer:Facebook Github Bot

Adding app path for xctest list-bundle Reviewed By: zeyadsalloum Differential Revision: D17367792 fbshipit-source-id: 7f39384bb2dc7c1c73dceb612e262004be2e5818

Commit:14943c9
Author:George Liu
Committer:Facebook Github Bot

Revert D17365192: [idb_companion] Adding app path for xctest list-bundle Differential Revision: D17365192 Original commit changeset: 51f1e0aa7cf3 fbshipit-source-id: abfae144c797bcdf0de521e8afe1d83926698646

Commit:b85c94a
Author:Carla Cosenza
Committer:Facebook Github Bot

Adding app path for xctest list-bundle Summary: xctest list-bundle was not working for app tests because it also needs the app path. This diff adds this part in the companion. Will put a diff up with the cli part soon. Reviewed By: zeyadsalloum Differential Revision: D17365192 fbshipit-source-id: 51f1e0aa7cf351f8c727520dc009a5e218cea9a0

Commit:8e19878
Author:Zeyad Salloum
Committer:Facebook Github Bot

deprecate daemon fields Summary: the idb daemon is no longer used Reviewed By: c-ryan747 Differential Revision: D17155160 fbshipit-source-id: ff00172190a20e304ee6ab98463dc8b9f8527bc6

Commit:ef4dda3
Author:Zeyad Salloum
Committer:Facebook Github Bot

fix port 0 in list-targets Summary: the daemon was using the wrong port when it's mapping from py to grpc to forward the list-targets response to the client Reviewed By: c-ryan747 Differential Revision: D16665874 fbshipit-source-id: 8ebff0cb244983bfd59215f0f4010b9c73b510a4

Commit:8bfe6f3
Author:Carla Cosenza
Committer:Facebook Github Bot

Changing the return of the install function Summary: Now the install function can return a stream instead of just one message. This will be used later to show progress in the download. Reviewed By: zeyadsalloum Differential Revision: D16493302 fbshipit-source-id: 5b269181cbab4991e9bac1a45990568008e259bf

Commit:e1af990
Author:Cheng Chang
Committer:Facebook Github Bot

make all time configurable Summary: See D16452852 Reviewed By: lawrencelomax Differential Revision: D16452900 fbshipit-source-id: c922eee1abd371b3f390e259f3574acf0ffe758a

Commit:6033915
Author:Lawrence Lomax
Committer:Facebook Github Bot

Return UUID and Name in grpc Summary: If the UUID is parsed from a binary it can also be used in place of the name of the bundle. We only currently expose the "bundle_id" but this is actually incorrect as it will fallback to some other name if not present. In future we can re-name the proto so that it's clear that this is a generic name identifier and an (optional) UUID that can be derived from the binary itself. Reviewed By: zeyadsalloum Differential Revision: D15822521 fbshipit-source-id: abcab24d457b02dca29cd8602857a048e715d5f4

Commit:f780b99
Author:Lawrence Lomax
Committer:Facebook Github Bot

Add companion logger interace Summary: This allows re-use of the log command, except getting companion logs instead of the target logs. This will currently always fallback to the target if not set. The next change will add handling for this on the client side. Reviewed By: zeyadsalloum Differential Revision: D15803175 fbshipit-source-id: 11c8ddaae7abc82d5f8f33bce06642fa3dff0b55

Commit:ddbf999
Author:Lawrence Lomax
Committer:Facebook Github Bot

Add framework install to companion Summary: Adds framework install, this is going to help with Detox usage Reviewed By: zeyadsalloum, cs01 Differential Revision: D15371564 fbshipit-source-id: 9abbb551f0fa81b3676b762c517799b76b8ae868

Commit:43c671a
Author:Cheng Chang
Committer:Facebook Github Bot

add "idb install-dsym" command Summary: See D15315200 Reviewed By: zeyadsalloum Differential Revision: D15315228 fbshipit-source-id: b4b462502a4695a5080c0785ae3768a912e6c962

Commit:7d630bb
Author:Lawrence Lomax
Committer:Facebook Github Bot

Add downloading from url payload type Summary: Adds a payload type for downloading from a url. This can take advantage of `bsdtar`s archive detection, which means that it's easy to bridge a data stream task to the same way we'd stream data over grpc. This does require that the companion-side has access to the url, but failure still occurs if the extract fails for any reason, for instance a garbage input, or 404 Reviewed By: zeyadsalloum Differential Revision: D15117099 fbshipit-source-id: 97d6b6f03783c4d76f2a85a2bbcdb8f5e969ed5d

Commit:4120b5c
Author:Lawrence Lomax

ℌ𝔢𝔩𝔩𝔬 𝔦𝔡𝔟 fbshipit-source-id: 937f6a25ec354a25e895912a0d5ee26997b6030c