Mac下用終端工具libimobiledevice管理iPhone

Homebrew是Mac下最常用的包管理工具,并且是開源的(官網(wǎng)https://brew.sh)。如果Mac上沒有,先安裝HomeBrew:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

1. 安裝libimobiledevice

brew install --HEAD libimobiledevice -g

libimobiledevice中并不包含ipa的安裝命令,所以還需要安裝ideviceinstaller

brew install --HEAD ideviceinstaller -g

2. 測試過有效的其他命令

一些要用到的信息:

// 手機的UDID
bf76c991995e61c5c783f3441bff4a18605bc7ba
// 桌面測試ipa的文件路徑
/Users/ypf/Desktop/SmartTest.ipa
// 桌面測試ipa的BundleID
com.CSS.app.SmartTest
2.1 列出當(dāng)前所有設(shè)備,包括連接到mac的真機、模擬器、這臺mac電腦本身
instruments -s devices
2.2 列出當(dāng)前連接到mac的設(shè)備的UDID,包括通過usb和wifi連接的
idevice_id -l
2.3 安裝mac上的ipa到手機
ideviceinstaller -u [udid] -i [xxx.ipa]

// 舉例子
ideviceinstaller --udid bf76c991995e61c5c783f3441bff4a18605bc7ba --install /Users/ypf/Desktop/SmartTest.ipa
2.4 卸載手機應(yīng)用
ideviceinstaller -u [udid] -U [bundleId]

// 舉例子
ideviceinstaller --udid bf76c991995e61c5c783f3441bff4a18605bc7ba --uninstall com.chinasoft.app.SmartTest
2.5 屏幕截圖

這個截圖的路徑暫時不知道怎么設(shè)置,默認(rèn)會存放在/users/ypf

idevicescreenshot
2.6 獲取實時系統(tǒng)日志
idevicesyslog
2.7 獲取指定設(shè)備的信息
ideviceinfo -u [udid]

// 舉例子
ideviceinfo --udid bf76c991995e61c5c783f3441bff4a18605bc7ba
2.8 獲取指定設(shè)備的名稱
ideviceinfo -u [udid] -k DeviceName
// 舉例子1
ideviceinfo --udid bf76c991995e61c5c783f3441bff4a18605bc7ba -k DeviceName

idevicename -u [udid]

舉例子2
idevicename --udid bf76c991995e61c5c783f3441bff4a18605bc7ba
2.9 獲取指定設(shè)備的系統(tǒng)版本
ideviceinfo -u [udid] -k ProductVersion

// 舉例子
ideviceinfo --udid bf76c991995e61c5c783f3441bff4a18605bc7ba -k ProductVersion
2.10 獲取指定設(shè)備的型號
ideviceinfo -u [udid] -k ProductType

// 舉例子
ideviceinfo --udid bf76c991995e61c5c783f3441bff4a18605bc7ba -k ProductType
2.11 獲取指定設(shè)備的系統(tǒng)名稱
ideviceinfo -u [udid] -k ProductName

// 舉例子
ideviceinfo --udid bf76c991995e61c5c783f3441bff4a18605bc7ba -k ProductName
2.12 獲取設(shè)備時間
idevicedate
2.13 獲取設(shè)備名稱
idevicename
2.14 查看和操作設(shè)備的描述文件
ideviceprovision list
2.15 查看指定設(shè)備安裝的所有應(yīng)用,包括系統(tǒng)和第三方
ideviceinstaller -u [udid] -l -o list_all

// 舉例子
ideviceinstaller --udid bf76c991995e61c5c783f3441bff4a18605bc7ba -l -o list_all
2.16 查看指定設(shè)備安裝的第三方應(yīng)用
ideviceinstaller -u [udid] -l 

// 舉例子1
ideviceinstaller --udid bf76c991995e61c5c783f3441bff4a18605bc7ba -l

ideviceinstaller -u [udid] -l -o list_user

// 舉例子2
ideviceinstaller --udid bf76c991995e61c5c783f3441bff4a18605bc7ba -l -o list_user
2.17 查看指定設(shè)備安裝的系統(tǒng)應(yīng)用
ideviceinstaller -u [udid] -l -o list_system

// 舉例子
ideviceinstaller --udid 64af3bfaf93e6a0e97d75aeac8fbb8610732c150 -l -o list_system
2.18 設(shè)置代理 / 端口轉(zhuǎn)發(fā)

(舉個端口轉(zhuǎn)發(fā)的例子)
先將iPhone用數(shù)據(jù)線連接到Mac,在終端執(zhí)行如下命令:

// 第1個是Mac端口,第2個是iPhone端口
iproxy 7999 8100

此時會將iPhone上的8100端口的數(shù)據(jù)轉(zhuǎn)發(fā)到Mac的7999端口,這個在做自動化測試時會用到(因為iOS自動化測試現(xiàn)有的主流框架大都是基于WebDriver協(xié)議的實現(xiàn)的,F(xiàn)acebook自家封裝了一個開源框架WebDriverAgent,這里其實是有一個不小的坑,需要好好說道說道,詳見我的另一篇文章xxx)

3. 待測試的命令

3.1 掛載DeveloperDiskImage

用于調(diào)試……

ideviceimagemounter
3.2 調(diào)試程序(需要預(yù)先掛載DeveloperImage)
idevicedebug

4. 用xcodebuild從源碼構(gòu)建應(yīng)用安裝包

$ cd /source-folder/
$ PROJECT=<your-project-name>
$ xcodebuild clean -project $PROJECT.xcodeproj -configuration Debug -alltargets
$ xcodebuild archive -project $PROJECT.xcodeproj -scheme $PROJECT -archivePath $PROJECT.xcarchive

# 注意,末尾的 exportProvisioningProfile 參數(shù)值是在 Xcode 的 Performance->Accounts->Apple ID->View Details 窗口的下半部分看到的名稱。如 iOS Team Provisioning Profile: chj.ToDoList
$ xcodebuild -exportArchive -archivePath $PROJECT.xcarchive -exportPath $PROJECT -exportFormat ipa -exportProvisioningProfile "your provision profile"

# build 完的 ipa 包直接就放在當(dāng)前目錄

5. 解決ideviceinstaller報錯:Could not connect to lockdownd. Exiting.

brew uninstall ideviceinstaller -g
brew uninstall libimobiledevice -g
brew install --HEAD libimobiledevice -g
brew install --HEAD ideviceinstaller -g
sudo chmod -R 777 /var/db/lockdown

待測試的解決方法:

brew uninstall ideviceinstaller
brew uninstall libimobiledevice
brew install --HEAD libimobiledevice
brew link --overwrite libimobiledevice
brew install ideviceinstaller
brew link --overwrite ideviceinstaller
sudo chmod -R 777 /var/db/lockdown

PS:暫時沒測試的http://www.itdecent.cn/p/6423610d3293

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 文章圖片上傳不正常,如需文檔,可聯(lián)系微信:1017429387 目錄 1 安裝... 4 1.1 配置探針... ...
    Mrhappy_a7eb閱讀 6,903評論 0 5
  • feisky云計算、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 4,272評論 0 5
  • 有些人能決定自己成為什么樣的人,有些人則不能。這不是不公平,而是現(xiàn)實。 我以前總以為能在人生的某一個階段將人生的奧...
    Andylee閱讀 601評論 2 3
  • 獵鷹火箭的光 無論是在大漠戈壁、汪洋大海或是在喧鬧都市,無論是在夜幕降臨、華燈初上的傍晚,還是在夜...
    不落的太陽pure閱讀 275評論 1 1

友情鏈接更多精彩內(nèi)容