全部产品

命令行工具

更新时间:2020-09-18 11:08:06

用于轻应用的辅助开发,以简单的命令行方式运行在Mac或Windows电脑上的工具,我们称之为命令行工具。命令行工具主要是用来推送设备应用脚本到设备端,并拥有一套完整的命令,可以完成设备的应用热更新、运维服务、日志服务等。

工具包

├── amp							# 命令行工具
├── app							# 应用脚本
│   ├── app.json
│   └── app.js
└── bindings.node		# 本地更新库

打开app.js,这里就运行了我们的业务应用代码,默认打印系统信息。

命令行

命令名称

$ amp

IoT轻应用命令行工具可以对设备进行热更新操作,支持 本地热更新在线热更新 功能。

Mac版需要设置执行权限:chmod +x ./amp

Mac上执行amp命令时会遇到 权限问题

命令总览

命令

说明

示例

login

命令行登录

amp login <your-token>

device list

列出绑定的设备

amp device list

put

推送应用代码到设备端

(在线热更新)

amp put <app-dir> [device-name]

seriallist

列出电脑的所有串口

amp seriallist

serialput

通过串口更新应用

(本地更新)

amp serialput <app-dir> <port> -t <type>

version

版本号

amp --version

help

帮助

amp --help

命令详解

login - 登录

参数

amp login <your-token>

说明

使用在线热更新前,需要获取<your-token>,该命令用于登录和绑定用户的唯一token,仅需执行一次。

使用本地热更新时,无需绑定用户token。

token及其SDK包请通过公测申请获取。

示例

$ amp login b8805cfefe8b2dd2f069e638a0162d0e

device list - 列出绑定的设备

参数

amp device list

说明

amp login <your-token>成功后,使用该命令可列出您账号下已绑定的设备名称,建议使用IMEI号作为设备名称<device-name>

示例

$ amp device list
Your bound devices:
8675*******3456
8675*******4321
3522*******7456

put - 在线热更新

参数

amp put <app-dir> <device-name>

<app-dir>指当前目录下app目录,包含板级配置文件和JS脚本文件

device_name 指绑定列表中的设备名称

说明

注意:使用前,请参考在线热更新确定模组固件版本、设备绑定及设备联网等是否已完成。

通过该命令可远程推送轻应用到指定的设备,其中 app-dir<device-name> 以实际为准。

该命令会消耗网络流量,推送应用到蜂窝模组时请按需使用。

示例

$ amp device list
Your bound devices:
8675*******3456
$ ./amp put ./app 8675*******3456
device:8675*******3456 ONLINE.
generate app package
push app package SUCCESS

若出现OFFLINE,可能由于设备尚未联网成功。

seriallist - 列出电脑串口

参数

amp seriallist

说明

列出电脑上的所有串口,确定本地热更新的串口号<serial-port>

示例

// Mac
$ amp seriallist
/dev/tty.usbserial-AK08LNMO
/dev/tty.usbserial-AK08LNMM

// Win
$ amp seriallist
COM59
COM60

serialput - 通过串口推送轻应用到设备(本地热更新)

参数

amp serialput <app-dir> <serial-port>

amp serialput <app-dir> <serial-port> -t <type>

说明

注意:使用前,请参考应用热更新确定硬件连接、模组固件和是否进入下载模式

通过串口推送轻应用到设备(本地更新)。

type:

  • ymodem(默认)

示例

$ amp seriallist
COM59
// usb口以实际情况为准
$ amp serialput ./app COM59 -t ymodem
device type: ymodem
generate app package
put complete!

version - 查看版本号

// 版本号以实际为准
$ ./amp --version
1.0.3

help - 帮助

$ ./amp --help
Usage: amp [options]
AliOS Things Mini Program PC CLI tool
Options:
 -V, --version                          output the version number
 -h, --help                             output usage information
Commands:
 login <token>                          login
 device list                                list bind devices
 put <filepath> <deviceName>            upload file to device
 seriallist                             list serial port
 serialput [options] <filepath> <port>  put file to device via serial port

FAQ

A:在运行amp命令时,Mac系统可能会出现应用信任问题,在运行命令时可能会报出如下错误。

1

点击取消,然后进入系统偏好设置,打开安全性隐私,选择仍然允许,如下图所示:

3

再次运行amp命令,出现如下提示,点击打开即可完成对amp的信任。

3

此时,系统又会弹出bindings.node无法验证的对话框,跟amp同样的问题,再次验证即可

4

点击取消,然后进入系统偏好设置,打开安全性隐私,选择仍然允许,如下图所示

5

此时命令行工具可能会报如下错误,不用理会。

Error: dlopen(/Users/ljh/Downloads/amp-macos/bindings.node, 1): no suitable image found.  Did find:
    /Users/ljh/Downloads/amp-macos/bindings.node: code signature in (/Users/ljh/Downloads/amp-macos/bindings.node) not valid for use in process using Library Validation: library load disallowed by system policy
    at Object.Module._extensions..node (internal/modules/cjs/loader.js:805:18)
    at Module.load (internal/modules/cjs/loader.js:651:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:591:12)
    at Function.Module._load (internal/modules/cjs/loader.js:583:3)
    at Module.require (internal/modules/cjs/loader.js:690:17)
    at Module.require (pkg/prelude/bootstrap.js:1225:31)
    at require (internal/modules/cjs/helpers.js:25:18)
    at bindings (/snapshot/amp-cli/node_modules/bindings/bindings.js:112:48)
    at Object.<anonymous> (/snapshot/amp-cli/node_modules/@serialport/bindings/lib/darwin.js:2:36)
    at Module._compile (pkg/prelude/bootstrap.js:1320:22)

再次运行amp命令,出现如下提示,点击打开即可完成对bindings.node的信任。

6