免安装免配置环境的免费 ios 调试工具 sib 来啦

SIB是一个基于gidevice的iOS调试工具,无需额外配置环境,支持Windows、Mac、Linux。功能包括设备信息获取、App安装卸载、进程管理、XCTest相关操作、性能采集等。可通过Java与Appium结合进行UI自动化,如启动WDA。还提供屏幕旋转监听、设备信息查询等。示例代码展示了如何使用SIB启动WDA并配置Appium。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

设备基础信息获取、设备监听
App安装卸载、启动终止
查看进程信息
启动xctest相关,如:启动Wda、Fastbot_iOS
获取电池相关信息
重启关机
代理转发
崩溃信息收集
模拟定位与取消(部分App不生效)
屏幕旋转监听
系统日志获取
性能采集(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

前端渲染后效果如图

App的管理还有很多,例如安装、卸载、启动、强杀

sib app install
sib app uninstall
sib app launch
sib app kill

屏幕旋转监听

sib orientation

您会获得类似的输出

orientation: 1

928×354 15.7 KB

获取设备信息

sib devices -d -f

你会获得类似输出

{
        "deviceList": [
                {
                        "deviceId": 1,
                        "connectionSpeed": 0,
                        "connectionType": "USB",
                        "locationId": 0,
                        "productId": 4776,
                        "serialNumber": "0000****-001****6F****E",
                        "status": "online",
                        "deviceDetail": {
                                "generationName": "iPhone 13 Pro",
                                "deviceName": "iPhone",
                                "deviceColor": "1",
                                "deviceClass": "iPhone",
                                "productVersion": "15.4.1",
                                "productType": "iPhone14,2",
                                "productName": "iPhone OS",
                                "passwordProtected": true,
                                "modelNumber": "*****",
                                "serialNumber": "*****",
                                "simStatus": "kCTSIMSupportSIMStatusReady",
                                "phoneNumber": "+86 *****",
                                "cpuArchitecture": "arm64e",
                                "protocolVersion": "2",
                                "regionInfo": "CH/A",
                                "telephonyCapability": true,
                                "timeZone": "Asia/Shanghai",
                                "uniqueDeviceID": "*****",
                                "wifiAddress": "*****",
                                "wirelessBoardSerialNumber": "*****",
                                "bluetoothAddress": "*****",
                                "buildVersion": "*****"
                        }
                }
        ]
}


相关功能还有很多很多,这里就不全部放出来啦,推荐前往官方文档查看更多详细信息哦!

sib run wda -b your.wda.bundleId
sib run xctest -b your.wda.bundleId
sib app list
sib app launch
sib devices listen
sib app uninstall
sib screenshoot
sib ps
sib crash
sib location
sib oritation
sib battery
sib info
...

### 配置 SIB19 后连接态下的切换情况 在配置系统信息块19 (SIB19)之后,对于处于连接状态的设备而言,从长期演进技术(LTE)到窄带物联网(NB-IoT)的切换过程涉及多个方面。 #### 切换机制概述 当网络侧通过广播信道下发了包含有NB-IoT相关信息在内的SIB19消息给用户设备(UE),这使得支持双模操作的UE能够在满足一定条件下执行跨制式的重选或切换动作。然而,在具体实现过程中需要注意: - **时间与频率同步**:NPSS为NB-IoT终端提供了必要的时间和频率同步参考信号[^1]。由于这些信号的存在,即使是在不同的无线接入技术之间移动时,UE也能够保持良好的同步性能。 - **控制面优化(CCO)** 或者 **非连续接收模式(DRX)** 的设置会影响实际切换行为。通常情况下,为了减少功耗并提高效率,CCO允许UE更快速地完成从LTE到NB-IoT的操作;而合适的DRX参数可以确保UE不会因为长时间监听下行链路而导致不必要的延迟。 #### 实际应用中的注意事项 尽管理论上讲,只要正确设置了SIB19及相关参数,UE应该可以在两种标准间平滑过渡,但在实践中还需要考虑如下因素: - UE的能力和支持程度; - 当前所在位置的服务质量(QoS)需求以及运营商策略; - 特定场景下可能存在的干扰或其他外部影响。 因此,虽然大多数时候配置SIB19后的切换应该是正常的,但仍需依据具体情况来评估最终效果。 ```python # 假设有一个函数用于模拟切换逻辑 def simulate_handover(lte_signal_strength, nb_iot_coverage_area): if lte_signal_strength < threshold and is_within(nb_iot_coverage_area): return "Switch to NB-IoT" else: return "Stay on LTE" # 参数定义 threshold = -100 # dBm阈值 nb_iot_coverage_area = True # 是否位于覆盖区内 print(simulate_handover(-105, nb_iot_coverage_area)) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值