Lybic Docs

通过App ID在Android Sandbox中安装应用

我们提供了一个新的API,允许你通过App ID在Android Sandbox中直接安装应用而不需要手动下载安装。 这种方法比传统的APK安装更快捷和高效,特别适用于需要频繁安装和卸载应用的测试场景。

curl -X PUT "https://api.Lybic.cn/api/orgs/{orgId}/sandboxes/{sandboxId}/apps/{app_id}" -H "Authorization: Bearer YOUR_API_KEY"

这个接口需要PythonSDK(lybic) 版本 >= 1.4.0,才能使用install_sandbox_application方法:

method: install_sandbox_application(sandbox_id: str, app_id: str)

  • args:
  • sandbox_id: str ID of the sandbox
  • app_id: str ID of the application to install
  • return: SandboxApplicationInstallAcceptedDto containing operationId and initial status
import asyncio
from lybic import LybicClient, LybicAuth

async def install_sandbox_app_example():
  async with LybicClient(
    LybicAuth(
      org_id="ORG-xxxx",
      api_key="lysk-xxxxxxxxxxx"
    )
  ) as client:
    result = await client.tools.mobile_use.install_sandbox_application(
      sandbox_id="SBX-xxxx",
      app_id="APP-xxxx"
    )
    print(f"Operation ID: {result.operationId}")
    print(f"Initial status: {result.status}")

if __name__ == '__main__':
  asyncio.run(install_sandbox_app_example())

你可以查询应用安装的状态,直到它完成:

curl -X GET "https://api.Lybic.cn/api/orgs/{orgId}/sandboxes/{sandboxId}/operations/{operation_id}" -H "Authorization: Bearer YOUR_API_KEY"

这个接口需要PythonSDK(lybic) 版本 >= 1.4.0,才能使用get_sandbox_application_operation方法:

import asyncio
from lybic import LybicClient, LybicAuth

async def poll_install_operation_example():
  async with LybicClient(
    LybicAuth(
      org_id="ORG-xxxx",
      api_key="lysk-xxxxxxxxxxx",
      endpoint="https://api.lybic.cn/"
    )
  ) as client:
    # Start installation
    accepted = await client.tools.mobile_use.install_sandbox_application(
      sandbox_id="SBX-xxxx",
      app_id="APP-xxxx"
    )
    print(f"Installation started, operation ID: {accepted.operationId}")

    # Poll until the operation completes
    while True:
      operation = await client.tools.mobile_use.get_sandbox_application_operation(
        sandbox_id="SBX-xxxx",
        operation_id=accepted.operationId
      )
      print(f"Status: {operation.status}")
      if operation.status in ("SUCCEEDED", "FAILED", "CANCELLED"):
        print(f"Final status: {operation.status}, detail: {operation.detail}")
        break
      await asyncio.sleep(5)

if __name__ == '__main__':
  asyncio.run(poll_install_operation_example())

注意:获取 App ID 的方法

在使用 通过 App ID 安装应用 功能之前,需要先获取应用对应的 App ID。 App ID 由 Lybic 平台统一管理,每个应用对应唯一的 App ID。

请将需要安装的应用列表发送至我们的邮箱:lybic@tingyutech.com。 我们会为你生成对应的 App ID 映射关系 并返回,用于 API 调用。