实战ios远程控制(已实现地铁共享二维码)

58 阅读2分钟

参考:Mac 安装 appium 并在 iOS 真机运行 blog.kelu.org/tech/2023/0…

基础安装:

brew install node      # get node.js
npm install -g appium  # get appium
npm install wd         # get appium client
appium &   # 这个执行不了也没关系,这个必须安装:Appium-Server-GUI-mac-1.22.3-4 
brew install java
再把这部分内容塞到 /etc/profile 文件去。
JAVA_HOME=/opt/homebrew/opt/openjdk
export JAVA_HOME
然后source一下:
source /etc/profile
Carthage是一个依赖管理器,WebDriverAgent 需要它
brew install carthage
7. appium-desktop 和 appium-inspector
https://github.com/appium/appium-desktop
https://github.com/appium/appium-inspector
检查 iOS依赖有没有安装好
appium-doctor --ios
1. libimobiledevice & ideviceinstaller
brew install libimobiledevice 
brew install ideviceinstaller 
idevice_id
instruments -s devices # 列出设备包括模拟器、真机及 mac 电脑本身 
ideviceinfo # 可以在返回的数据中找到 udid 

ideviceinstaller --list-apps # 列出app 
ideviceinstaller -l  # 列出app 
idevicenotificationproxy -h
  1. 自己编译webdriveragent并运行在真机上 首先手机要在 设置> 隐私与安全性 下找到 “开发者模式”开关 开启开发者模式。

我看到有的教程直接使用 appium 自带的 webdriveragent代码,因为我的xcode版本比较新,使用这些老代码 编译 都不过,所以还是直接使用最新的源码代替了。

github.com/appium/WebD… 下载源码

双击 WebDriverAgent.xcodeproj 后打开: 然后修改WebDriverAgentRunner和 WebDriverAgentLib证书为自己的证书 选择 Product->Scheme->WebDriverAgentRunner,

编译OK后运行test:

本机访问 127.0.0.1:8100/status

设置->显示与亮度->自动锁定->永不

安装python 驱动
pip3 install Appium-Python-Client
图片压缩:
pngquant 
测试代码
from appium import webdriver
from appium.options.common.base import AppiumOptions
from appium.webdriver.common.appiumby import AppiumBy

# For W3C actions
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.actions import interaction
from selenium.webdriver.common.actions.action_builder import ActionBuilder
from selenium.webdriver.common.actions.pointer_input import PointerInput

options = AppiumOptions()
options.load_capabilities({
	"platformName": "iOS",
	"appium:platformVersion": "16.1",
	"appium:deviceName": "200053",
	"appium:automationName": "XCUITest",
	"appium:udid": "00008101-000E61EE0228001E",
	"appium:bundleId": "com.ziroom.ZDProject",
	"appium:xcodeSigningId": "iPhone Developer",
	"appium:useNewWDA": False,
	"appium:noReset": True,
	"appium:newCommandTimeo": "60",
	"appium:includeSafariInWebviews": True,
	"appium:newCommandTimeout": 3600,
	"appium:connectHardwareKeyboard": True
})

driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", options=options)
driver.quit()

实现地铁共享二维码

公司电脑使用frp穿透(有一台阿里云99元服务器)。使用django服务端写接口,调用appium来启动wda,wda打开亿通行app获取到二维码,家里成员共享一个二维码,这样就可以很快八折五折的价格坐地铁!