tidevice使用

https://github.com/alibaba/taobao-iphone-device
http://www.manongjc.com/detail/60-cyzzpycghszyfxe.html

安裝 使用 手機配置 查看版本號 配對 列出連接設備 應用管理 Run XCTest Relay 運行WebDriverAgent 運行XCTest UITest 掛載開發(fā)者鏡像

安裝

pip3 install -U "tidevice[openssl]"

xxx@izhangdeMacBook-Pro ~ % pip3 install -U "tidevice[openssl]"
Collecting tidevice[openssl]
  Using cached tidevice-0.10.9-py3-none-any.whl (92 kB)
Collecting Pillow
  Downloading Pillow-10.0.0-cp311-cp311-macosx_10_10_x86_64.whl (3.4 MB)
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.4/3.4 MB 341.9 kB/s eta 0:00:00
Collecting requests
  Using cached requests-2.31.0-py3-none-any.whl (62 kB)
Collecting colored
  Downloading colored-2.2.2-py3-none-any.whl (16 kB)
Collecting packaging
  Using cached packaging-23.1-py3-none-any.whl (48 kB)
Collecting tornado
  Downloading tornado-6.3.2-cp38-abi3-macosx_10_9_x86_64.whl (422 kB)
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 422.6/422.6 kB 192.2 kB/s eta 0:00:00
Collecting simple-tornado>=0.2.2
  Using cached simple_tornado-0.2.2-py3-none-any.whl (3.3 kB)
Collecting retry
  Downloading retry-0.9.2-py2.py3-none-any.whl (8.0 kB)
Collecting simplejson
  Downloading simplejson-3.19.1-cp311-cp311-macosx_10_9_x86_64.whl (75 kB)
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 75.5/75.5 kB 165.6 kB/s eta 0:00:00
Collecting tabulate
  Using cached tabulate-0.9.0-py3-none-any.whl (35 kB)
Collecting logzero
  Downloading logzero-1.7.0-py2.py3-none-any.whl (16 kB)
Collecting loguru
  Downloading loguru-0.7.0-py3-none-any.whl (59 kB)
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 60.0/60.0 kB 200.5 kB/s eta 0:00:00
Collecting deprecation
  Downloading deprecation-2.1.0-py2.py3-none-any.whl (11 kB)
Collecting urllib3<2
  Downloading urllib3-1.26.16-py2.py3-none-any.whl (143 kB)
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 143.1/143.1 kB 195.7 kB/s eta 0:00:00
Collecting pyOpenSSL
  Downloading pyOpenSSL-23.2.0-py3-none-any.whl (59 kB)
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 59.0/59.0 kB 210.9 kB/s eta 0:00:00
Collecting pyasn1
  Downloading pyasn1-0.5.0-py2.py3-none-any.whl (83 kB)
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 83.9/83.9 kB 199.4 kB/s eta 0:00:00
Collecting cryptography!=40.0.0,!=40.0.1,<42,>=38.0.0
  Downloading cryptography-41.0.1-cp37-abi3-macosx_10_12_x86_64.whl (2.8 MB)
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.8/2.8 MB 171.1 kB/s eta 0:00:00
Collecting charset-normalizer<4,>=2
  Downloading charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_x86_64.whl (125 kB)
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 125.1/125.1 kB 139.1 kB/s eta 0:00:00
Collecting idna<4,>=2.5
  Downloading idna-3.4-py3-none-any.whl (61 kB)
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.5/61.5 kB 146.3 kB/s eta 0:00:00
Collecting certifi>=2017.4.17
  Downloading certifi-2023.5.7-py3-none-any.whl (156 kB)
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 157.0/157.0 kB 113.8 kB/s eta 0:00:00
Collecting decorator>=3.4.2
  Downloading decorator-5.1.1-py3-none-any.whl (9.1 kB)
Collecting py<2.0.0,>=1.4.26
  Downloading py-1.11.0-py2.py3-none-any.whl (98 kB)
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 98.7/98.7 kB 113.1 kB/s eta 0:00:00
Collecting cffi>=1.12
  Downloading cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl (179 kB)
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 179.2/179.2 kB 107.0 kB/s eta 0:00:00
Collecting pycparser
  Downloading pycparser-2.21-py2.py3-none-any.whl (118 kB)
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 118.7/118.7 kB 115.5 kB/s eta 0:00:00
Installing collected packages: logzero, urllib3, tornado, tabulate, simplejson, pycparser, pyasn1, py, Pillow, packaging, loguru, idna, decorator, colored, charset-normalizer, certifi, simple-tornado, retry, requests, deprecation, cffi, tidevice, cryptography, pyOpenSSL
Successfully installed Pillow-10.0.0 certifi-2023.5.7 cffi-1.15.1 charset-normalizer-3.2.0 colored-2.2.2 cryptography-41.0.1 decorator-5.1.1 deprecation-2.1.0 idna-3.4 loguru-0.7.0 logzero-1.7.0 packaging-23.1 py-1.11.0 pyOpenSSL-23.2.0 pyasn1-0.5.0 pycparser-2.21 requests-2.31.0 retry-0.9.2 simple-tornado-0.2.2 simplejson-3.19.1 tabulate-0.9.0 tidevice-0.10.9 tornado-6.3.2 urllib3-1.26.16

[notice] A new release of pip is available: 23.0.1 -> 23.1.2
[notice] To update, run: python3.11 -m pip install --upgrade pip

查看版本

tidevice version

xxxx@izhangdeMacBook-Pro ~ % tidevice version                   
tidevice version 0.10.9

查看設備信息

tidevice info
xxx@izhangdeMacBook-Pro ~ % tidevice info
MarketName:       iPhone 6s Plus
DeviceName:       6SP-13.4-64-禁止升級
ProductVersion:   13.4
ProductType:      iPhone8,2
ModelNumber:      MKVV2
SerialNumber:     C39QFU6JGRWV
PhoneNumber:      None
CPUArchitecture:  arm64
ProductName:      iPhone OS
ProtocolVersion:  2
RegionInfo:       LL/A
TimeIntervalSince1970: 1689041768.451943
TimeZone:         America/Los_Angeles
UniqueDeviceID:   407fcb77509bd47e05d8b8edcd3ce3790bb5c9d7
WiFiAddress:      fc:fc:48:a6:32:e0
BluetoothAddress: fc:fc:48:a6:32:e1
BasebandVersion:  7.51.01

tidevice info --json
xxx@izhangdeMacBook-Pro ~ % tidevice info --json
{
    "ActivationState": "Activated",
    "ActivationStateAcknowledged": true,
    "BasebandActivationTicketVersion": "V2",
    "BasebandCertId": 3840149528,
    "BasebandChipID": 9572577,
    "BasebandKeyHashInformation": {
    "AKeyStatus": 2,
    "SKeyHash": "u+/tcCwvaQ+1Y9t40I4yegCEmB28mALlaROhaIVGBWo=",
    "SKeyStatus": 0
},
"BasebandMasterKeyHash": "8CB15EE4C8002199070D9500BB8FB183B02713A5CA2A6B92DB5E75CE15536182",
"BasebandRegionSKU": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"BasebandSerialNumber": "BSaUDQ==",
"BasebandStatus": "BBInfoAvailable",
"BasebandVersion": "7.51.01",
"BluetoothAddress": "fc:fc:48:a6:32:e1",
"BoardId": 6,
"BrickState": false,
"BuildVersion": "17E255",
"CPUArchitecture": "arm64",
"CarrierBundleInfoArray": [
    {
        "CFBundleIdentifier": "com.apple.CMCC_cn",
        "CFBundleVersion": "41.0",
        "GID1": "ffffffff",
        "GID2": "ffffffff",
        "IntegratedCircuitCardIdentity": "898600c00119f0133572",
        "InternationalMobileSubscriberIdentity": "460022010477585",
        "MCC": "460",
        "MNC": "02",
        "MobileEquipmentIdentifier": "35329207068675",
        "Slot": "kOne",
        "kCTPostponementInfoAvailable": "SIMCarrierInfo"
    }
],
"CertID": 3840149528,
"ChipID": 32768,
"ChipSerialNo": "BSaUDQ==",
"DeviceClass": "iPhone",
"DeviceColor": "#272728",
"DeviceName": "6SP-13.4-64-禁止升級",
"DieID": 3538223366188,
"EthernetAddress": "fc:fc:48:a6:32:e2",
"FirmwareVersion": "iBoot-5540.102.4",
"FusingStatus": 3,
"HardwareModel": "N66AP",
"HardwarePlatform": "s8000",
"HasSiDP": true,
"HostAttached": true,
"InternationalMobileEquipmentIdentity": "353292070686759",
"MLBSerialNumber": "C0753761K9VG35WA",
"MobileEquipmentIdentifier": "35329207068675",
"MobileSubscriberCountryCode": "460",
"MobileSubscriberNetworkCode": "",
"ModelNumber": "MKVV2",
"NonVolatileRAM": {
    "auto-boot": "dHJ1ZQ==",
    "backlight-level": "MTUyNA==",
    "boot-args": "",
    "com.apple.System.boot-nonce": "0x3ab1efa457dfa01a",
    "com.apple.System.fp-state": "AAAAAD8AAAAAAAAAAAAAAAAAAAA=",
    "com.apple.System.tz0-size": "MHhFMDAwMDA=",
    "nonce-seeds": "AAAAAAAAAAC3SLEsbbW5TgQKOt9EROwjAAAAAAAAAADfupBw9UT679DuaxkMtM8cAAAAAAAAAAA7WjFYMyJhVU7f9deWB60JAAAAAAAAAACQXE7LN+jDHqFOJKTjetc0",
    "oblit-begins": "T2JsaXRUeXBlOiBPYmxpdGVyYXRlRGF0YVBhcnRpdGlvbi4gUmVhc29uOiB1bmtub3du",
    "obliteration": "aGFuZGxlX21lc3NhZ2U6IE9ibGl0ZXJhdGlvbiBDb21wbGV0ZQo="
},
"PartitionType": "GUID_partition_scheme",
"PasswordProtected": false,
"PkHash": "5OQIGNymupBn16zMKPujMp3562XDnNFkULy+gshbERM=",
"ProductName": "iPhone OS",
"ProductType": "iPhone8,2",
"ProductVersion": "13.4",
"ProductionSOC": true,
"ProtocolVersion": "2",
"ProximitySensorCalibration": "T00EAA0KQzgQA7wCsAS5ALwCTAACAKO+QgMDAKaY9QLuAkYAhPeRATKvqRsAAAAA4QCVAAECAABFAAAAAAAAAAAAAAAAAAAA",
"RegionInfo": "LL/A",
"SIMStatus": "kCTSIMSupportSIMStatusNotInserted",
"SIMTrayStatus": "kCTSIMSupportSIMTrayInsertedNoSIM",
"SerialNumber": "C39QFU6JGRWV",
"SoftwareBehavior": "EQAAAAAAAAAAAAAAAAAAAA==",
"SoftwareBundleVersion": "",
"SupportedDeviceFamilies": [
    1
],
"TelephonyCapability": true,
"TimeIntervalSince1970": 1689041882.43672,
"TimeZone": "America/Los_Angeles",
"TimeZoneOffsetFromUTC": -25200.0,
"TrustedHostAttached": true,
"UniqueChipID": 3538223366188,
"UniqueDeviceID": "407fcb77509bd47e05d8b8edcd3ce3790bb5c9d7",
"UseRaptorCerts": true,
"Uses24HourClock": true,
"WiFiAddress": "fc:fc:48:a6:32:e0",
"WirelessBoardSerialNumber": "571F6BF006C",
"kCTPostponementInfoPRLName": 0,
"kCTPostponementStatus": "kCTPostponementStatusActivated"
}

查看電池信息

xxx@izhangdeMacBook-Pro ~ % tidevice info --domain     com.apple.mobile.battery --json
{
"BatteryCurrentCapacity": 100,
"BatteryIsCharging": false,
"ExternalChargeCapable": false,
"ExternalConnected": true,
"FullyCharged": true,
"GasGaugeCapability": true,
"HasBattery": true
}

配對功能

tidevice pair
xxxx@izhangdeMacBook-Pro ~ % tidevice pair
Paired with device 530a0f8ebb699738d605e68a5c8e54b0a4bcd925 HostID: 651A4458-9D29-4AFF-92C3-CD020D17CDDB

tidevice unpair

列出設備

tidevice list

xxx@izhangdeMacBook-Pro ~ % tidevice list
UDID                                      SerialNumber    NAME              
MarketName        ProductVersion  ConnType
407fcb77509bd47e05d8b8edcd3ce3790bb5c9d7  C39QFU6JGRWV    6SP-13.4-64-禁止升級  iPhone 6s Plus              13.4  ConnectionType.USB

tidevice list --json

xxx@izhangdeMacBook-Pro ~ % tidevice list --json
[
   {
    "udid": "407fcb77509bd47e05d8b8edcd3ce3790bb5c9d7",
    "serial": "C39QFU6JGRWV",
    "name": "6SP-13.4-64-禁止升級",
    "market_name": "iPhone 6s Plus",
    "product_version": "13.4",
    "conn_type": "usb"
   }
]

安裝應用

tidevice install

xxx@izhangdeMacBook-Pro ~ % tidevice install /Users/xxx/Desktop/01提示語\ 2022-06-29\ 11-26-34/Apps/01提示語.ipa 
Copying '/Users/xxx/Desktop/01提示語 2022-06-29 11-26-34/Apps/01提示語.ipa' to device... [10.6 MB/s 0s] DONE.         
Installing 'com.dumpapp.testdev1000' '1.0'
- CreatingStagingDirectory (5%)
- ExtractingPackage (15%)
- InspectingPackage (20%)
- TakingInstallLock (20%)
- PreflightingApplication (30%)
- InstallingEmbeddedProfile (30%)
- VerifyingApplication (40%)
- CreatingContainer (50%)
- InstallingApplication (60%)
- PostflightingApplication (70%)
- SandboxingApplication (80%)
- GeneratingApplicationMap (90%)
Complete
xxx@izhangdeMacBook-Pro ~ % 


tidevice --udid 

卸載應用

tidevice uninstall  com.example.demo(包名憨栽,bundleId)

啟動應用

tidevice launch com.example.demo(包名辉阶,bundleId)

停止應用

tidevice kill com.example.demo(包名拆挥,bundleId)

查看已經(jīng)安裝的應用

tidevice applist

查看運行中的應用

tidevice ps

xxx@izhangdeMacBook-Pro ~ % tidevice ps
PID NAME                              BUNDLE_ID               DISPLAY_NAME
85460 WeChat                            com.tencent.xin         微信         
84660 com.sogou.sogouinput.BaseKeyboard                                    
85099 Spotlight                         com.apple.Spotlight     Siri搜索     
85290 EscrowSecurityAlert                                                  
85120 Siri                              com.apple.siri          Siri       
85413 Preferences                       com.apple.Preferences   設置         
85408 PPMobilePlatformDemo              com.dumpapp.testdev2    PPMobileApp
85519 01提示語                    

tidevice ps --json

xxx@izhangdeMacBook-Pro ~ % tidevice ps --json
[
{
    "pid": 85460,
    "name": "WeChat",
    "bundle_id": "com.tencent.xin",
    "display_name": "微信"
},
{
    "pid": 84660,
    "name": "com.sogou.sogouinput.BaseKeyboard",
    "bundle_id": "",
    "display_name": ""
},
{
    "pid": 85099,
    "name": "Spotlight",
    "bundle_id": "com.apple.Spotlight",
    "display_name": "Siri搜索"
},
{
    "pid": 85290,
    "name": "EscrowSecurityAlert",
    "bundle_id": "",
    "display_name": ""
},
{
    "pid": 85120,
    "name": "Siri",
    "bundle_id": "com.apple.siri",
    "display_name": "Siri"
},
{
    "pid": 85413,
    "name": "Preferences",
    "bundle_id": "com.apple.Preferences",
    "display_name": "設置"
},
{
    "pid": 85408,
    "name": "PPMobilePlatformDemo",
    "bundle_id": "com.dumpapp.testdev2",
    "display_name": "PPMobileApp"
},
{
    "pid": 85519,
    "name": "01提示語",
    "bundle_id": "com.dumpapp.testdev1000",
    "display_name": "測試的App名字"
},
{
    "pid": 84870,
    "name": "MailCacheDeleteExtension",
    "bundle_id": "",
    "display_name": ""
}
]
xxx@izhangdeMacBook-Pro ~ % 

Run XCTest

請先確保手機上已經(jīng)安裝有WebDriverAgent應用

tidevice xctest -B  com.testtools.xctrunner
tidevice xctest -B  com.testtools.xctrunner -e USB_PORT:8200 --debug

文件操作

tidevice fsync ls  /DCIM/

查看性能數(shù)據(jù)

tidevice perf -B com.beeasy.shopee.id.enterprise -o fps
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末淀零,一起剝皮案震驚了整個濱河市格带,隨后出現(xiàn)的幾起案子桅咆,更是在濱河造成了極大的恐慌膝舅,老刑警劉巖谊迄,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異豆励,居然都是意外死亡夺荒,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門良蒸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嫩痰,你說我怎么就攤上這事剿吻±雎茫” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵纺棺,是天一觀的道長榄笙。 經(jīng)常有香客問我,道長祷蝌,這世上最難降的妖魔是什么茅撞? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮巨朦,結果婚禮上米丘,老公的妹妹穿的比我還像新娘。我一直安慰自己糊啡,他們只是感情好拄查,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著棚蓄,像睡著了一般靶累。 火紅的嫁衣襯著肌膚如雪腺毫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天挣柬,我揣著相機與錄音潮酒,去河邊找鬼。 笑死邪蛔,一個胖子當著我的面吹牛急黎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播侧到,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼勃教,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了匠抗?” 一聲冷哼從身側(cè)響起故源,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎汞贸,沒想到半個月后绳军,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡矢腻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年门驾,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片多柑。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡奶是,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出竣灌,到底是詐尸還是另有隱情聂沙,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布初嘹,位于F島的核電站及汉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏削樊。R本人自食惡果不足惜漫贞,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一迅脐、第九天 我趴在偏房一處隱蔽的房頂上張望豪嗽。 院中可真熱鬧豌骏,春花似錦窃躲、人聲如沸蒂窒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽荧嵌。三九已至,卻和暖如春完丽,著一層夾襖步出監(jiān)牢的瞬間逻族,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工薄辅, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留站楚,地道東北人搏嗡。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓采盒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親磅氨。 傳聞我的和親對象是個殘疾皇子烦租,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容