不想折腾python环境又想跨平台进行iOS自动化怎么办?不妨试试sib~

前言

官网文档(下载、安装、文档):Sonic - 开源云真机平台
用户社区(提bug、需求): https://sonic-cloud.wiki/
Github: https://github.com/SonicCloudOrg/sonic-ios-bridge

sib介绍

sib是以gidevice为底层实现的iOS调试工具,因为go语言特性,编译好的二进制文件可以直接运行,所以不需要额外配置python环境或者go环境,直接下载3M左右的包解压就可以使用啦!sonic组织也在持续参与建设gidevice。当前迭代了数月,到达了1.1.2版本,基础功能如下:

  1. 设备基础信息获取、设备监听
  2. App安装卸载、启动终止
  3. 查看进程信息
  4. 启动xctest相关,如:启动Wda、Fastbot_iOS
  5. 获取电池相关信息
  6. 重启关机
  7. 代理转发
  8. 崩溃信息收集
  9. 模拟定位与取消(部分App不生效)
  10. 屏幕旋转监听
  11. 系统日志获取
  12. 性能采集(Doing)
  13. 截图(Doing)

以上功能皆跨平台,即Windows、Mac、Linux都可以使用。

UI自动化的应用(Appium)

以Java为例:
先用sib启动wda(需要指定端口可以参考官网文档的参数)

sib run wda

然后在脚本里配置Driver

        DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
        desiredCapabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, Platform.IOS);
        desiredCapabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.IOS_XCUI_TEST);
        desiredCapabilities.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, 3600);
        desiredCapabilities.setCapability(IOSMobileCapabilityType.COMMAND_TIMEOUTS, 3600);
        desiredCapabilities.setCapability(MobileCapabilityType.NO_RESET, true);
        desiredCapabilities.setCapability(MobileCapabilityType.DEVICE_NAME, 【设备名称,也可以通过sib获取】);
        desiredCapabilities.setCapability(MobileCapabilityType.UDID, udId);
        desiredCapabilities.setCapability("wdaConnectionTimeout", 60000);
        desiredCapabilities.setCapability(IOSMobileCapabilityType.WEB_DRIVER_AGENT_URL, "http://127.0.0.1:8100");
        desiredCapabilities.setCapability("useXctestrunFile", false);
        desiredCapabilities.setCapability(IOSMobileCapabilityType.SHOW_IOS_LOG, false);
        desiredCapabilities.setCapability(IOSMobileCapabilityType.SHOW_XCODE_LOG, false);
        desiredCapabilities.setCapability("skipLogCapture", true);
        desiredCapabilities.setCapability(IOSMobileCapabilityType.USE_PREBUILT_WDA, false);

        new IOSDriver("http://localhost:4723/wd/hub", desiredCapabilities);

即可启动。

在Fastbot应用

sib run xctest  -b bytedance.FastbotRunner.xxxxxxx.xctrunner -e BUNDLEID=com.xxxxxx.internalapp -e duration=1 -e throttle=500

注意,因为wda和fastbot部分底层是相同,所以同时启动wda和fastbot会阻塞哦

获取App图标

加上-i参数即可获取icon,格式为base64

sib app list -i

前端渲染后效果如图

屏幕旋转监听

sib orientation

您会获得类似的输出

orientation: 1

结语

sib还在持续更新中,正在挖掘无人触碰的领域,也欢迎有能力的小伙伴参与建设 ~

1 个赞

nice