iOS-Tagent 上新了,iOS17 的 wda 的部署小技巧你 get 了嗎

fishfish-yu發表於2024-11-08

此文章來源於專案官方公眾號:“AirtestProject”\
版權宣告:允許轉載,但轉載必須保留原連結;請勿用作商業或者非法用途

一、前言

之前有很多同學一直在問如何在 iOS17 的裝置上安裝 wda?其實我們 iOS-Tagent 已經更新相容 iOS17 以上的裝置啦,雖然無法直接透過 AirtestIDE 進行連線,但是可以先安裝 iOS-Tagent 後,使用 Airtest 進行連線去跑指令碼的~

二、部署步驟

2.1 WDA 專案地址

我們比較推薦使用 Airtest 的iOS-Tagent,在 iOS 裝置上點選/滑動效率更高,地址如下:

Airtest 的 iOS-Tagent:https://github.com/AirtestProject/IOS-Tagent(master 分支,目前是推薦 iOS17 的裝置使用)

如果是 iOS12~16.7.1 的裝置,比較推薦使用 ios-16-and-below 這個 tag 下的 wda 版本:

git fetch git checkout ios-16-and-below

當然,大家也可以使用 appium 的 wda,地址如下:

appium 的 webdriveragent:https://github.com/appium/WebDriverAgent(master 分支)

2.2 WDA 安裝(iOS 17 及以上)

2.2.1 xcode 版本需求

需要 xcode15 或者以上版本(對應 macOS 版本為 14.2.1 及其以上),在安裝的時候,需要注意在 xcode15 以上的版本除了 macOS 的 Components,其他都需要動態下載安裝,否則提示 iOS 17 Simulator Not Installed

其中安裝 iOS 17 模擬器方式如下:

  1. 先根據官網指導下載 iOS_17_Simulator_Runtime.dmg。官網地址:https://links.jianshu.com/go?to=https%3A%2F%2Fdeveloper.apple.com%2Fdownload%2Fall%2F%3Fq%3DSimulator%2520Runtime
  2. 雙擊 iOS_17_Simulator_Runtime.dmg 檔案,等待開啟後,逐層找到 Runtimes 資料夾。
  3. 選擇 Xcode 15 App,然後右擊選擇 顯示包內容,透過這整個路徑 Contents —> Developer —> Platforms —> iPhoneOS.platform —> Library —> Developer —> CoreSimulator,找到 Profiles 資料夾。
  4. 將第 2 步的 Runtimes 資料夾複製到第 3 步的 Profiles 資料夾中。
  5. 最後開啟/重啟 Xcode 15,此時模擬器已成功安裝。

2.2.2 WDA 安裝流程

1、 檢查裝置是否在開發者賬號中註冊

  • 在 Apple 官方網站登入開發者賬號(https://developer.apple.com
  • 在 device 處查詢對應裝置的 udid 是否在列表中。若未在列表中,則代表沒有在該開發者賬號下注冊,需要註冊;若在列表中,則代表註冊過了,此步驟可以跳過。
  • 裝置 udid 查詢方式:

1. 開啟 訪達 - 選中手機 - 點選裝置型號位置 - 即會切換顯示

2、製作 WDA

  • 準備好可以安裝 xcode15 的 mac 電腦(參考 macOS 版本為 14.2.1 及其以上);
  • 下載或者透過執行下方命令,獲取 wda 的程式碼到 mac 電腦上後解壓;(程式碼倉庫連結為:https://github.com/AirtestProject/IOS-Tagent,分支為 master) git clone git@github.com:AirtestProject/iOS-Tagent.git
  • 用 xcode 15 開啟下載好的iOS-Tagent專案程式碼,按照如下步驟配置 xcode15 的專案編譯環境:

1. 首先先點選一下左側的專案名,在 TARGETS 中選擇名為WebDriverAgentRunner的選項;
2. 接著選擇General,選擇Deployment Info下的 iOS 下拉框內容為 17.0;
3. 然後切換Signing&Capabilities頁面,如果Signing裡面需要登入一下賬號,就使用註冊裝置的開發者賬號登入一下;若是已經註冊了,就將Team一欄中選擇與開發者賬號使用者名稱一致的賬號;
4. 再在 xcode 最頂部選擇需要操作的裝置,多注意下 iOS 裝置上的一些文字提示,可能裝置需要點選信任框,或者需要在裝置的設定內開啟開發者模式等。若信任框已點選或開發者模式已開啟,xcode 上裝置狀態仍然不對,可以選擇重新拔插一下裝置。
5. 最後若最頂部的顯示Test Completed,就代表當前裝置已準備就緒,可以進行 wda 編譯了。配置好的效果參考下面兩張圖:

6. 開始編譯 wda。在編譯前,建議先從終端內進入到目錄~/Library/Developer/Xcode/DerivedData,將字首為WebDriverAgen-的資料夾先刪掉。完成後在 mac 頂部選擇Product,點選 Test 選項,等待 wda 編譯完成。提示Build successfully代表成功。
7. 開啟 mac 的終端,進入到~/Library/Developer/Xcode/DerivedData目錄下,找到時間與自己編譯 wda 成功時間符合的WebDriverAgen-開頭的資料夾。接著點選進入到該目錄後,再透過進入到/Build/Products/Debug-iphoneos地址下,檢視是否有WebDriverAgentRunner-Runner.app,如果沒有的話就需要在 xcode 裡面選擇 relase 模式重新編譯一下。

# 跳轉到 Debug-iphoneos 目錄
cd /Build/Products/Debug-iphoneos
# 檢視目錄下的檔案
ls
8. 然後使用cp命令將WebDriverAgentRunner-Runner.app複製到名為 Payload 的資料夾下(Payload 目錄最好不要與 xcode 編譯的內容建立在一起,建議在桌面或者其他專用目錄內建立,不包含中文);建立資料夾的命令參考:

mkdir Payload && cp -r path/*.app Payload
9. 複製成功後,再進到 Payload 中內的目錄 WebDriverAgentRunner-Runner.app/Frameworks 中把帶有XC開頭的檔案全部刪掉後,使用 zip 命令將整個 Payload 資料夾壓縮:

zip -r WDA.ipa Payload。
10. 其次是下載iOS App Resigner進行重簽名,下載地址為:https://dantheman827.github.io/ios-app-signer/。在使用該工具重籤時,只需要最後把重籤後的WDA.ipa儲存成其他名字即可,如WDA-resign.ipa
11. 最後把製作完成的 wda 包,安裝到裝置上,可以使用命令tidevice -u udid install path/wda。每個裝置單獨對應自己的 wda,若其他裝置想使用 wda,可以如法炮製。

上架注意事項:

  • 編譯 wda 包時使用了哪個開發者賬號, 最後重籤時候需要用同一個開發者賬號重籤。
  • 如果在開啟 Xcode 後,出現run destination裡面沒有出現裝置的話,可以檢查一下是否安裝更新了對應模擬器,可以點選這個 Get 去獲取安裝,安裝後即可繼續部署 wda 了

三、小結

本週我們介紹了關於 iOS17 的 wda 安裝方式,跟 iOS17 以下版本的安裝方式有一些不同,透過上述方式我們可以安裝好 iOS-Tagent,可以正常接入 Airtest 等測試庫進行跑測的,但是需要注意的是 AirtestIDE 還未相容好 iOS17 的裝置,暫時是沒辦法看到裝置畫面的噢~ 我們也會盡快新增該相容的。

如果大家在使用過程中有一些新的使用方式或者遇到了問題,又或者有任何想要深入瞭解的知識點,歡迎在官方交流群(526033840)裡告訴我們或者提交 issue。


AirtestIDE 下載:airtest.netease.com/\
Airtest 教程官網:airtest.doc.io.netease.com/\
搭建企業私有云服務:airlab.163.com/b2b

官方答疑 Q 群:526033840

暫無回覆。

相關文章