Copy app files using devicectl

Hi, I'm trying to retrieve app icons from an iOS device by using devicectl.

Unfortunately, the appIcon command was broken when I first tried it, it worked for the last couple of months, but with the new macOS/Xcode, it is no longer working. Reference: https://developer.apple.com/forums/thread/738793

As a result, I'm now looking for alternative ways to fetch and app icon.

When retrieving a list of apps using devicectl, the app file location is returned, e.g. /private/var/containers/Bundle/Application/57ABEEB5-D488-4215-8C9B-8951BA401B33/WhatsApp.app for WhatsApp on my iPhone.

The .app file contains the app icon and therefore I'm wondering if it's possible to copy this file to my Mac.

xcrun devicectl device info files -h mentions file options:

FILE OPTIONS:
  --username <username>   The username of the user we should target. Only relevant for certain domains.
  --domain-type <domain-type>
                          The file service domain. Valid values are: temporary, appDataContainer,
                          appGroupDataContainer, systemCrashLogs. You must specify a valid domain and identifier
                          pair. Certain domains must be accompanied by an identifier that provides additional
                          context. For example, if the domain is an app data container, the identifier is the
                          bundle ID of the app. For temporary directories, the identifier is a unique
                          client-provided string which is used to get your own space, separate from those of
                          other clients.
  --domain-identifier <domain-identifier>
                          A unique string used to provide additional context to the domain.

The domain types are:

  • temporary: for temporary directories, only to get your own space
  • appDataContainer: container identified by app identifier
  • appGroupDataContainer: container identified by app group identifier
  • systemCrashLogs: crash logs

The .app file is located in the /private/var/containers/Bundle/Application directory.

The available domain types do not seem to include a way to access this file?

Is there a way to copy .app files using devicectl?

How can I effectively use the .app paths returned by the apps command?

Answered by DTS Engineer in 807407022
The available domain types do not seem to include a way to access this file?

Right. devicectl isn’t intended to be a way to access arbitrary file system locations on the iOS device. Those domains exist to cover specific cases that are likely to be useful during app development.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Accepted Answer
The available domain types do not seem to include a way to access this file?

Right. devicectl isn’t intended to be a way to access arbitrary file system locations on the iOS device. Those domains exist to cover specific cases that are likely to be useful during app development.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Copy app files using devicectl
 
 
Q