giDevice

package module
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 26, 2023 License: GPL-3.0 Imports: 27 Imported by: 0

README

🎉Library of Communicate with iOS devices implemented with Golang

Installation

go get github.com/Frank-Fiona/sonic-gidevice

License

LICENSE

  • This repo was fork from gidevice license: MIT Lincese. We will optimize and customize based on this, and we will also provide our pr to the original repo by branch feat/contribute_to_repo after testing.

Documentation

Overview

* sonic-gidevice Connect to your iOS Devices. * Copyright (C) 2022 SonicCloudOrg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>.

* sonic-gidevice Connect to your iOS Devices. * Copyright (C) 2022 SonicCloudOrg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>.

* sonic-gidevice Connect to your iOS Devices. * Copyright (C) 2022 SonicCloudOrg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>.

Index

Constants

View Source
const (
	CoordinateSystemWGS84 = libimobiledevice.CoordinateSystemWGS84
	CoordinateSystemBD09  = libimobiledevice.CoordinateSystemBD09
	CoordinateSystemGCJ02 = libimobiledevice.CoordinateSystemGCJ02
)
View Source
const (
	ApplicationTypeSystem   = libimobiledevice.ApplicationTypeSystem
	ApplicationTypeUser     = libimobiledevice.ApplicationTypeUser
	ApplicationTypeInternal = libimobiledevice.ApplicationTypeInternal
	ApplicationTypeAny      = libimobiledevice.ApplicationTypeAny
)
View Source
const LockdownPort = 62078

Variables

View Source
var ErrAfcStatNotExist = errors.New("afc stat: no such file or directory")

Functions

func DeviceVersion

func DeviceVersion(version ...int) int

func NewRemoteConnect

func NewRemoteConnect(ip string, port int, timeout int) (*device, error)

func SetDebug

func SetDebug(debug bool, libDebug ...bool)

SetDebug sets debug mode

Types

type Afc

type Afc interface {
	DiskInfo() (diskInfo *AfcDiskInfo, err error)
	ReadDir(dirname string) (names []string, err error)
	Stat(filename string) (info *AfcFileInfo, err error)
	Open(filename string, mode AfcFileMode) (file *AfcFile, err error)
	Remove(filePath string) (err error)
	Rename(oldPath string, newPath string) (err error)
	Mkdir(path string) (err error)
	Link(oldName string, newName string, linkType AfcLinkType) (err error)
	Truncate(filePath string, size int64) (err error)
	SetFileModTime(filePath string, modTime time.Time) (err error)
	// Hash sha1 algorithm
	Hash(filePath string) ([]byte, error)
	// HashWithRange sha1 algorithm with file range
	HashWithRange(filePath string, start, end uint64) ([]byte, error)
	RemoveAll(path string) (err error)

	WriteFile(filename string, data []byte, perm AfcFileMode) (err error)
}

type AfcDiskInfo

type AfcDiskInfo struct {
	Model      string
	TotalBytes uint64
	FreeBytes  uint64
	BlockSize  uint64
}

type AfcFile

type AfcFile struct {
	// contains filtered or unexported fields
}

func (*AfcFile) Close

func (f *AfcFile) Close() (err error)

func (*AfcFile) Lock

func (f *AfcFile) Lock(lockType AfcLockType) (err error)

func (*AfcFile) Read

func (f *AfcFile) Read(b []byte) (n int, err error)

func (*AfcFile) Seek

func (f *AfcFile) Seek(offset int64, whence int) (ret int64, err error)

func (*AfcFile) Tell

func (f *AfcFile) Tell() (n uint64, err error)

func (*AfcFile) Truncate

func (f *AfcFile) Truncate(size int64) (err error)

func (*AfcFile) Unlock

func (f *AfcFile) Unlock() (err error)

func (*AfcFile) Write

func (f *AfcFile) Write(b []byte) (n int, err error)

type AfcFileInfo

type AfcFileInfo struct {
	// contains filtered or unexported fields
}

func (*AfcFileInfo) CreationTime

func (f *AfcFileInfo) CreationTime() time.Time

func (*AfcFileInfo) IsDir

func (f *AfcFileInfo) IsDir() bool

func (*AfcFileInfo) ModTime

func (f *AfcFileInfo) ModTime() time.Time

func (*AfcFileInfo) Name

func (f *AfcFileInfo) Name() string

func (*AfcFileInfo) Size

func (f *AfcFileInfo) Size() int64

type AfcFileMode

type AfcFileMode uint32
const (
	AfcFileModeRdOnly   AfcFileMode = 0x00000001
	AfcFileModeRw       AfcFileMode = 0x00000002
	AfcFileModeWrOnly   AfcFileMode = 0x00000003
	AfcFileModeWr       AfcFileMode = 0x00000004
	AfcFileModeAppend   AfcFileMode = 0x00000005
	AfcFileModeRdAppend AfcFileMode = 0x00000006
)

type AfcLinkType

type AfcLinkType int
const (
	AfcLinkTypeHardLink AfcLinkType = 1
	AfcLinkTypeSymLink  AfcLinkType = 2
)

type AfcLockType

type AfcLockType int
const (
	AfcLockTypeSharedLock    AfcLockType = 1 | 4
	AfcLockTypeExclusiveLock AfcLockType = 2 | 4
	AfcLockTypeUnlock        AfcLockType = 8 | 4
)

type AppLaunchOption

type AppLaunchOption func(option *appLaunchOption)

func WithAppPath

func WithAppPath(appPath string) AppLaunchOption

func WithArguments

func WithArguments(arguments []interface{}) AppLaunchOption

func WithEnvironment

func WithEnvironment(environment map[string]interface{}) AppLaunchOption

func WithKillExisting

func WithKillExisting(b bool) AppLaunchOption

func WithOptions

func WithOptions(options map[string]interface{}) AppLaunchOption

type AppListOption

type AppListOption func(option *appListOption)

func WithAppsMatching

func WithAppsMatching(appsMatching map[string]interface{}) AppListOption

func WithUpdateToken

func WithUpdateToken(updateToken string) AppListOption

type Application

type Application struct {
	AppExtensionUUIDs         []string `json:"AppExtensionUUIDs,omitempty"`
	BundlePath                string   `json:"BundlePath"`
	CFBundleIdentifier        string   `json:"CFBundleIdentifier"`
	ContainerBundleIdentifier string   `json:"ContainerBundleIdentifier,omitempty"`
	ContainerBundlePath       string   `json:"ContainerBundlePath,omitempty"`
	DisplayName               string   `json:"DisplayName"`
	ExecutableName            string   `json:"ExecutableName,omitempty"`
	Placeholder               bool     `json:"Placeholder,omitempty"`
	PluginIdentifier          string   `json:"PluginIdentifier,omitempty"`
	PluginUUID                string   `json:"PluginUUID,omitempty"`
	Restricted                int      `json:"Restricted"`
	Type                      string   `json:"Type"`
	Version                   string   `json:"Version"`
}

type ApplicationType

type ApplicationType = libimobiledevice.ApplicationType

type CPUInfo

type CPUInfo struct {
	Pid            string  `json:"PID,omitempty"`                   // 进程ID
	CPUCount       int     `json:"SystemCpuCount"`                  // CPU总数
	TimeStamp      int64   `json:"TimeStamp"`                       // 时间戳
	CPUUsage       float64 `json:"ProcessCpuUsage,omitempty"`       // 单个进程的CPU使用率
	SysCpuUsage    float64 `json:"SystemCpuUsage,omitempty"`        // 系统总体CPU占用
	AttrCtxSwitch  int64   `json:"ProcessAttrCtxSwitch,omitempty"`  // 上下文切换数
	AttrIntWakeups int64   `json:"ProcessAttrIntWakeups,omitempty"` // 唤醒数
	Mess           string  `json:"ProcessInfo,omitempty"`           // 提示信息,当PID没输入或者信息错误时提示
}

type CoordinateSystem

type CoordinateSystem = libimobiledevice.CoordinateSystem

type CrashReportMover

type CrashReportMover interface {
	Move(hostDir string, opts ...CrashReportMoverOption) (err error)
	// contains filtered or unexported methods
}

type CrashReportMoverOption

type CrashReportMoverOption func(opt *crashReportMoverOption)

func WithExtractRawCrashReport

func WithExtractRawCrashReport(b bool) CrashReportMoverOption

func WithKeepCrashReport

func WithKeepCrashReport(b bool) CrashReportMoverOption

func WithWhenMoveIsDone

func WithWhenMoveIsDone(whenDone func(filename string)) CrashReportMoverOption

type Device

type Device interface {
	Properties() DeviceProperties

	NewConnect(port int, timeout ...time.Duration) (InnerConn, error)
	ReadPairRecord() (pairRecord *PairRecord, err error)
	SavePairRecord(pairRecord *PairRecord) (err error)
	DeletePairRecord() (err error)

	QueryType() (LockdownType, error)
	GetValue(domain, key string) (v interface{}, err error)
	Pair() (pairRecord *PairRecord, err error)

	Images(imgType ...string) (imageSignatures [][]byte, err error)
	MountDeveloperDiskImage(dmgPath string, signaturePath string) (err error)

	Screenshot() (raw *bytes.Buffer, err error)

	SimulateLocationUpdate(longitude float64, latitude float64, coordinateSystem ...CoordinateSystem) (err error)
	SimulateLocationRecover() (err error)

	InstallationProxyBrowse(opts ...InstallationProxyOption) (currentList []interface{}, err error)
	InstallationProxyLookup(opts ...InstallationProxyOption) (lookupResult interface{}, err error)

	AppLaunch(bundleID string, opts ...AppLaunchOption) (pid int, err error)
	AppKill(pid int) (err error)
	AppRunningProcesses() (processes []Process, err error)
	AppList(opts ...AppListOption) (apps []Application, err error)
	DeviceInfo() (devInfo *DeviceInfo, err error)

	AfcService() (afc Afc, err error)
	AppInstall(ipaPath string) (err error)
	AppUninstall(bundleID string) (err error)

	HouseArrestService() (houseArrest HouseArrest, err error)

	Syslog() (lines <-chan string, err error)
	SyslogStop()

	PcapdService() (pcapd Pcapd, err error)
	Pcap() (packet <-chan []byte, err error)
	PcapStop()

	Reboot() error
	Shutdown() error
	PowerSource() (powerInfo map[string]interface{}, err error)

	MoveCrashReport(hostDir string, opts ...CrashReportMoverOption) (err error)

	XCTest(bundleID string, opts ...XCTestOption) (out <-chan string, cancel context.CancelFunc, err error)

	GetIconPNGData(bundleId string) (raw *bytes.Buffer, err error)
	GetInterfaceOrientation() (orientation OrientationState, err error)

	PerfStart(opts ...PerfOption) (data <-chan []byte, err error)
	PerfStop()

	WebInspectorService() (webInspector WebInspector, err error)

	Share(port int) error
	// contains filtered or unexported methods
}

type DeviceInfo

type DeviceInfo struct {
	Description       string `json:"_deviceDescription"`
	DisplayName       string `json:"_deviceDisplayName"`
	Identifier        string `json:"_deviceIdentifier"`
	Version           string `json:"_deviceVersion"`
	ProductType       string `json:"_productType"`
	ProductVersion    string `json:"_productVersion"`
	XRDeviceClassName string `json:"_xrdeviceClassName"`
}

type DeviceProperties

type DeviceProperties = libimobiledevice.DeviceProperties

type DiagnosticsRelay

type DiagnosticsRelay interface {
	Reboot() error
	Shutdown() error
	PowerSource() (powerInfo map[string]interface{}, err error)
}

type FPSData

type FPSData struct {
	PerfDataBase     // fps
	FPS          int `json:"fps"`
}

type FPSInfo

type FPSInfo struct {
	FPS       int   `json:"FPS"`
	TimeStamp int64 `json:"TimeStamp"` // 时间戳
}

type GPUData

type GPUData struct {
	PerfDataBase              // gpu
	TilerUtilization    int64 `json:"tiler_utilization"`    // 处理顶点的 GPU 时间占比
	DeviceUtilization   int64 `json:"device_utilization"`   // 设备利用率
	RendererUtilization int64 `json:"renderer_utilization"` // 渲染器利用率
}

type GPUInfo

type GPUInfo struct {
	TilerUtilization    int64 `json:"TilerUtilization"`    // 处理顶点的GPU时间占比
	TimeStamp           int64 `json:"TimeStamp"`           // 时间戳
	DeviceUtilization   int64 `json:"DeviceUtilization"`   // 设备利用率
	RendererUtilization int64 `json:"RendererUtilization"` // 渲染器利用率
}

type HouseArrest

type HouseArrest interface {
	Documents(bundleID string) (afc Afc, err error)
	Container(bundleID string) (afc Afc, err error)
}

type ImageMounter

type ImageMounter interface {
	Images(imgType string) (imageSignatures [][]byte, err error)
	UploadImage(imgType, dmgPath string, signatureData []byte) (err error)
	Mount(imgType, devImgPath string, signatureData []byte) (err error)

	UploadImageAndMount(imgType, devImgPath, dmgPath, signaturePath string) (err error)
}

type InnerConn

type InnerConn = libimobiledevice.InnerConn

type InstallationProxy

type InstallationProxy interface {
	Browse(opts ...InstallationProxyOption) (currentList []interface{}, err error)
	Lookup(opts ...InstallationProxyOption) (lookupResult interface{}, err error)
	Install(bundleID, packagePath string) (err error)
	Uninstall(bundleID string) (err error)
}

type InstallationProxyOption

type InstallationProxyOption func(*installationProxyOption)

func WithApplicationType

func WithApplicationType(appType ApplicationType) InstallationProxyOption

func WithBundleIDs

func WithBundleIDs(BundleIDs ...string) InstallationProxyOption

func WithMetaData

func WithMetaData(b bool) InstallationProxyOption

func WithReturnAttributes

func WithReturnAttributes(attrs ...string) InstallationProxyOption

type Instruments

type Instruments interface {
	AppLaunch(bundleID string, opts ...AppLaunchOption) (pid int, err error)
	AppKill(pid int) (err error)
	AppRunningProcesses() (processes []Process, err error)
	AppList(opts ...AppListOption) (apps []Application, err error)
	DeviceInfo() (devInfo *DeviceInfo, err error)
	// contains filtered or unexported methods
}

type Lockdown

type Lockdown interface {
	QueryType() (LockdownType, error)
	GetValue(domain, key string) (v interface{}, err error)
	SetValue(domain, key string, value interface{}) (err error)
	Pair() (pairRecord *PairRecord, err error)
	EnterRecovery() (err error)

	ImageMounterService() (imageMounter ImageMounter, err error)
	ScreenshotService() (screenshot Screenshot, err error)
	SimulateLocationService() (simulateLocation SimulateLocation, err error)
	InstallationProxyService() (installationProxy InstallationProxy, err error)
	InstrumentsService() (instruments Instruments, err error)
	TestmanagerdService() (testmanagerd Testmanagerd, err error)
	AfcService() (afc Afc, err error)
	HouseArrestService() (houseArrest HouseArrest, err error)
	SyslogRelayService() (syslogRelay SyslogRelay, err error)
	DiagnosticsRelayService() (diagnostics DiagnosticsRelay, err error)
	CrashReportMoverService() (crashReportMover CrashReportMover, err error)
	SpringBoardService() (springBoard SpringBoard, err error)
	WebInspectorService() (webInspector WebInspector, err error)
	// contains filtered or unexported methods
}

type LockdownType

type LockdownType = libimobiledevice.LockdownType

type MEMInfo

type MEMInfo struct {
	Anon       int64  `json:"AnonMemory"`            // 虚拟内存
	PhysMemory int64  `json:"PhysMemory"`            // 物理内存
	Rss        int64  `json:"Rss"`                   // 总内存
	Vss        int64  `json:"Vss"`                   // 虚拟内存
	TimeStamp  int64  `json:"TimeStamp"`             // 时间戳
	Mess       string `json:"ProcessInfo,omitempty"` // 提示信息,当PID没输入或者信息错误时提示
}

type NetWorkingInfo

type NetWorkingInfo struct {
	RxBytes   int64 `json:"RxBytes"`
	RxPackets int64 `json:"RxPackets"`
	TxBytes   int64 `json:"TxBytes"`
	TxPackets int64 `json:"TxPackets"`
	TimeStamp int64 `json:"TimeStamp"` // 时间戳
}

type NetworkDataConnectionDetected

type NetworkDataConnectionDetected struct {
	PerfDataBase
	LocalAddress   string `json:"local_address"`    // 0
	RemoteAddress  string `json:"remote_address"`   // 1
	InterfaceIndex int64  `json:"interface_index"`  // 2
	Pid            int64  `json:"pid"`              // 3
	RecvBufferSize int64  `json:"recv_buffer_size"` // 4
	RecvBufferUsed int64  `json:"recv_buffer_used"` // 5
	SerialNumber   int64  `json:"serial_number"`    // 6
	Kind           int64  `json:"kind"`             // 7
}

network-connection-detected

type NetworkDataConnectionUpdate

type NetworkDataConnectionUpdate struct {
	PerfDataBase
	RxBytes          int64 `json:"rx_bytes"`          // 0
	RxPackets        int64 `json:"rx_packets"`        // 1
	TxBytes          int64 `json:"tx_bytes"`          // 2
	TxPackets        int64 `json:"tx_packets"`        // 3
	RxDups           int64 `json:"rx_dups,omitempty"` // 4
	RxOOO            int64 `json:"rx_000,omitempty"`  // 5
	TxRetx           int64 `json:"tx_retx,omitempty"` // 6
	MinRTT           int64 `json:"min_rtt,omitempty"` // 7
	AvgRTT           int64 `json:"avg_rtt,omitempty"` // 8
	ConnectionSerial int64 `json:"connection_serial"` // 9
}

network-connection-update

type NetworkDataInterfaceDetection

type NetworkDataInterfaceDetection struct {
	PerfDataBase
	InterfaceIndex int64  `json:"interface_index"` // 0
	Name           string `json:"name"`            // 1
}

network-interface-detection

type OrientationState

type OrientationState = libimobiledevice.OrientationState

type PairRecord

type PairRecord = libimobiledevice.PairRecord

type Pcapd

type Pcapd interface {
	Packet() <-chan []byte
	Stop()
}

type PerfDataBase

type PerfDataBase struct {
	Type      string `json:"type"`
	TimeStamp int64  `json:"timestamp"`
	Msg       string `json:"msg,omitempty"` // message for invalid data
}

type PerfOption

type PerfOption func(*PerfOptions)

func WithPerfBundleID

func WithPerfBundleID(bundleID string) PerfOption

func WithPerfFPS

func WithPerfFPS(b bool) PerfOption

func WithPerfGPU

func WithPerfGPU(b bool) PerfOption

func WithPerfNetwork

func WithPerfNetwork(b bool) PerfOption

func WithPerfOutputInterval

func WithPerfOutputInterval(intervalMilliseconds int) PerfOption

func WithPerfPID

func WithPerfPID(pid int) PerfOption

func WithPerfProcessAttributes

func WithPerfProcessAttributes(attrs ...string) PerfOption

func WithPerfSystemAttributes

func WithPerfSystemAttributes(attrs ...string) PerfOption

func WithPerfSystemCPU

func WithPerfSystemCPU(b bool) PerfOption

func WithPerfSystemDisk

func WithPerfSystemDisk(b bool) PerfOption

func WithPerfSystemMem

func WithPerfSystemMem(b bool) PerfOption

func WithPerfSystemNetwork

func WithPerfSystemNetwork(b bool) PerfOption

type PerfOptions

type PerfOptions struct {
	// system
	SysCPU     bool `json:"sys_cpu,omitempty" yaml:"sys_cpu,omitempty"`
	SysMem     bool `json:"sys_mem,omitempty" yaml:"sys_mem,omitempty"`
	SysDisk    bool `json:"sys_disk,omitempty" yaml:"sys_disk,omitempty"`
	SysNetwork bool `json:"sys_network,omitempty" yaml:"sys_network,omitempty"`

	FPS     bool `json:"fps,omitempty" yaml:"fps,omitempty"`
	Network bool `json:"network,omitempty" yaml:"network,omitempty"`
	// process
	BundleID string `json:"bundle_id,omitempty" yaml:"bundle_id,omitempty"`
	Pid      int    `json:"pid,omitempty" yaml:"pid,omitempty"`
	// config
	OutputInterval    int      `json:"output_interval,omitempty" yaml:"output_interval,omitempty"` // ms
	SystemAttributes  []string `json:"system_attributes,omitempty" yaml:"system_attributes,omitempty"`
	ProcessAttributes []string `json:"process_attributes,omitempty" yaml:"process_attributes,omitempty"`
	// contains filtered or unexported fields
}

type Perfd

type Perfd interface {
	Start() (data <-chan []byte, err error)
	Stop()
}

type PerfmonOption

type PerfmonOption struct {
	PID             string
	OpenChanGPU     bool
	OpenChanFPS     bool
	OpenChanCPU     bool
	OpenChanMEM     bool
	OpenChanNetWork bool
}

type Process

type Process struct {
	IsApplication bool      `json:"isApplication"`
	Name          string    `json:"name"`
	Pid           int       `json:"pid"`
	RealAppName   string    `json:"realAppName"`
	StartDate     time.Time `json:"startDate"`
}

type Screenshot

type Screenshot interface {
	Take() (raw *bytes.Buffer, err error)
	// contains filtered or unexported methods
}

type SimulateLocation

type SimulateLocation interface {
	Update(longitude float64, latitude float64, coordinateSystem ...CoordinateSystem) (err error)
	// Recover try to revert back
	Recover() (err error)
}

type SpringBoard

type SpringBoard interface {
	GetIconPNGData(bundleId string) (raw *bytes.Buffer, err error)
	GetInterfaceOrientation() (orientation OrientationState, err error)
}

type SyslogRelay

type SyslogRelay interface {
	Lines() <-chan string
	Stop()
}

type SystemCPUData

type SystemCPUData struct {
	PerfDataBase         // system cpu
	CpuCoreNum   uint64  `json:"cpu_core"`
	NiceLoad     float64 `json:"nice_load"`
	SystemLoad   float64 `json:"system_load"`
	TotalLoad    float64 `json:"total_load"`
	UserLoad     float64 `json:"user_load"`
}

type SystemDiskData

type SystemDiskData struct {
	PerfDataBase       // disk
	DataRead     int64 `json:"data_read"`
	DataWritten  int64 `json:"data_written"`
	ReadOps      int64 `json:"reads_in"`
	WriteOps     int64 `json:"writes_out"`
}

type SystemMemData

type SystemMemData struct {
	PerfDataBase          // mem
	TotalMemory     int64 `json:"total_memory"`
	FreeMemory      int64 `json:"free_memory"`
	UsedMemory      int64 `json:"used_memory"`
	WiredMemory     int64 `json:"wired_memory"`
	Purgeablememory int64 `json:"purgeable_memory"`
}

type SystemNetworkData

type SystemNetworkData struct {
	PerfDataBase       // network
	BytesIn      int64 `json:"bytes_in"`
	BytesOut     int64 `json:"bytes_out"`
	PacketsIn    int64 `json:"packets_in"`
	PacketsOut   int64 `json:"packets_out"`
}

type Testmanagerd

type Testmanagerd interface {
	// contains filtered or unexported methods
}

type Usbmux

type Usbmux interface {
	Devices() ([]Device, error)
	ReadBUID() (string, error)
	Listen(chan Device) (context.CancelFunc, error)
}

func NewUsbmux

func NewUsbmux() (Usbmux, error)

type WebInspector

type WebInspector interface {
	SetPartialsSupported(isCompleteSupported bool)
	SetPartialsMaxLength(maxLent int)

	SendWebkitMsg(selector string, args interface{}) error

	ReceiveWebkitMsg() (response interface{}, err error)
}

type XCTestManagerDaemon

type XCTestManagerDaemon interface {
	// contains filtered or unexported methods
}

type XCTestOption

type XCTestOption func(opt *xcTestOption)

func WithXCTestEnv

func WithXCTestEnv(env map[string]interface{}) XCTestOption

func WithXCTestOpt

func WithXCTestOpt(appOpt map[string]interface{}) XCTestOption

Directories

Path Synopsis
pkg
ipa
libimobiledevice
* sonic-gidevice Connect to your iOS Devices.
* sonic-gidevice Connect to your iOS Devices.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL