What if you don’t want to mess with the python environment but want to automate iOS across platforms? Might as well try sib~

Time:2022-11-25

foreword

Official website documentation (download, installation, documentation): https://sonic-cloud.gitee.io/…
User community (provide bugs, requirements): https://sonic-cloud.wiki/
Github: https://github.com/SonicCloud…

sib introduction

sib is an iOS debugging tool implemented with gidevice as the bottom layer. Because of the Go language feature, the compiled binary file can be run directly, so there is no need to configure the python environment or the Go environment. You can directly download and decompress the package of about 3M and use it! The sonic organization is also continuing to participate in the construction of gidevice. It has been iterated for several months and has reached version 1.1.2. The basic functions are as follows:

  1. Device basic information acquisition, device monitoring
  2. App installation and uninstallation, startup termination
  3. View process information
  4. Start xctest related, such as: start Wda, Fastbot_iOS
  5. Get battery related information
  6. restart shutdown
  7. proxy forwarding
  8. Crash Information Collection
  9. Simulate positioning and cancellation (some apps do not take effect)
  10. Screen rotation monitoring
  11. System log acquisition
  12. Performance Collection (Doing)
  13. Screenshot (Doing)

The above functions are all cross-platform, that is, Windows, Mac, and Linux can all be used.

Application of UI automation (Appium)

Take Java as an example:
Start wda with sib first (you need to specify the port, you can refer to the parameters of the official website document)

sib run wda

Then configure the Driver in the script

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, [device name, can also be obtained through 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);

to start.

App in Fastbot

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

Note that because the bottom layer of wda and fastbot are the same, starting wda and fastbot at the same time will block

Get App Icon

Add the -i parameter to get the icon, the format is base64

sib app list -i

The effect after front-end rendering is shown in the figure

What if you don't want to mess with the python environment but want to automate iOS across platforms? Might as well try sib~

Screen rotation monitoring

sib orientation

you get output like

orientation: 1

What if you don't want to mess with the python environment but want to automate iOS across platforms? Might as well try sib~

epilogue

sib is still being updated continuously, and is exploring untouched areas, and capable partners are welcome to participate in the construction ~

Recommended Today

[antlr] antlr installation tutorial, Windows10+Ubuntu

Install Antlr4 on Ubuntu 1. Download the jar packageexistdownload link, select the file named antlr-4.*.1-complete.jar to download Move to the specified directory, this tutorial is /root/ 2. Modify .bashrcIn the ~ directory, view the hidden .bashrc file ps -a Open the .bashrc file vim .bashrc add after export CLASSPATH=”.:/root/antlr-4.10.1-complete.jar:$CLASSPATH” alias antlr4=’java -jar /root/antlr-4.10.1-complete.jar’ alias grun=’java […]