抖音开放平台Logo
控制台

IDE 命令行工具
收藏
我的收藏

IDE 命令行工具​

介绍​

开发者工具提供了命令行供外部调用,开发者可以通过命令行工具进行登录、预览、上传等操作。​
小游戏命令行工具已升级至 2.0.0 版本,在命令行使用方式上同 1.x.x 版本一致。默认情况下自 2.0.0 版本起,会采集部分行为数据以帮助我们了解如何更好地改进产品,您也可以通过 set-config 命令来禁止该行为。​
命令行工具安装方式:​
js
复制
npm install -g tt-minigame-ide-cli

使用​

项目对象​

项目对象是本模块主要的入参,可以依据下边的定义自行实现。​
TypeScript
复制
interface TtMinigameIdeCli {
setConfig: (
config: { proxy: string; allowReportEvent?: boolean },
useDefault?: boolean,
) => void;
open: (options: {
project: { path: string; mode?: 'full' | 'lite' };
}) => Promise<void>;
loginByEmail: (options: { email: string; password: string }) => Promise<void>;
logout: () => Promise<void>;
preview: (options: {
project: {
path: string; // 小游戏项目地址
};
page: {
path: ''; // 不需要填,但是必须要写上一个默认值
};
qrcode?: {
format: 'imageFile'; // 以文件形式保存二维码
output: string; // 二维码保存地址
};
cache: boolean; // 是否使用本地缓存获取二维码
}) => Promise<{
shortUrl: string;
expireTime: number;
originSchema: string;
}>;
upload: (options: {
project: {
path: string; // 小游戏项目地址
};
qrcode?: {
format: 'imageFile'; // 以文件形式保存二维码
output: string; // 二维码保存地址
};
changeLog: string; // 此版本的版本日志
version: string; // 发布的小游戏版本
}) => Promise<{
shortUrl: string;
expireTime: number;
originSchema: string;
}>;
}

设置全局配置​

主要用于配置工具的全局代理。​

命令行调用​

bash
复制
Usage: tmg set-config [options]
Set tt-ide-cli config
Options:
-p, --proxy <proxy> Set global proxy(配置全局代理)
--default Use default(恢复为默认配置)
-r, --allow-report-event 允许采集使用行为(yes|no),默认为 yes
示例:
Bash
复制
tmg set-config -p http://localhost:8888 # 配置全局代理为http://localhost:8888
tmg set-config --default # 恢复为默认配置
tmg set-config -r no # 允许采集使用行为no

代码调用​

JavaScript
复制
const { setConfig } = require('tt-minigame-ide-cli');
setConfig(
{
proxy: 'http://localhost:888', // 配置全局代理为http://localhost:8888
allowReportEvent: false, // 是否允许采集使用行为
},
false, // 是否使用默认的配置
);

唤起抖音开发者工具​

唤起抖音开发者工具,并打开一个小游戏项目。​

命令行调用​

Bash
复制
Usage: tmg open [options] <project-path>
Open target project by path
Options:
--mode <proxy> lite | full(使用抖音开发者Lite模式 or 完整模式打开项目)
示例:
Bash
复制
tmg open /YOUR/PROJECT/PATH --mode lite # 使用lite模式打开一个小游戏项目

代码调用​

JavaScript
复制
const { open } = require('tt-minigame-ide-cli');
open({
project: {
path: '/YOUR/PROJECT/PATH', // 项目路径
mode: 'lite', // 打开模式 lite or full
},
});

登录​

登录到开发者平台。支持代理设置。​

命令行调用​

Bash
复制
Usage: tmg login [options]
Login to the developer platform
Options:
-m, --mobile Login by mobile
-e, --email Login by email
-p, --proxy <proxy> Login with proxy
-h, --help output usage information
示例:
Bash
复制
tmg login -m # 使用手机号登录
tmg login -e # 使用邮箱登录
tmg login -m -p http://localhost:8888 # 使用手机号登录且设置代理为 http://localhost:8888

代码调用​

手机号登录暂不支持使用代码方式。​
JavaScript
复制
const { loginByEmail } = require('tt-minigame-ide-cli');
loginByEmail({
email: 'xxxx@email.com',
password: '123456',
})

通过 email 登录​

命令行调用​

js
复制
Usage: tmg login-e [email] [password]
Login to the developer platform by E-mail
Options:
-p, --proxy <proxy> Login with proxy
-h, --help Output usage information

代码调用​

同上。​

登出(清除本地 session)​

命令行调用​

bash
复制
Usage: tmg logout
Logout and clear the session.

代码调用​

JavaScript
复制
const { logout } = require('tt-minigame-ide-cli');
logout();

预览小游戏​

将项目上传后,扫码二维码来预览小游戏。​

命令行调用​

js
复制
Usage: tmg preview [options] [entry]
preview project by remote
Options:
-f, --force Preview project without local cache(deprecated)
--disable-cache Preview project without local cache
-s, --small Use small QR Code, but it does not take effect in some environments
-u, --copy Copy remote url to clipboard
-p, --proxy <proxy> Preview with proxy
-h, --help output usage information
-o, --output <path> QRCode image output path
示例:
Bash
复制
tmg preview /YOUR/PROJECT/PATH \
-f \ # 不使用本地缓存获取二维码
--disable-cache \ # 不使用本地缓存获取二维码
-s \ # 展示小的二维码,在某些环境下不生效
-u \ # 是否粘贴二维码的url到剪切板
-p http://localhost:8888 \ # 预览时使用代理http://localhost:8888
-o /OUTPUR/QRCODE # 将二维码保存为本地文件

代码调用​

JavaScript
复制
const { preview, setConfig } = require('tt-minigame-ide-cli');
(async () => {
// 如果需要使用代理,先调用setConfig
setConfig(
{
proxy: 'http://localhost:888', // 配置全局代理为http://localhost:8888
},
false // 是否使用默认的配置
);
const res = await preview({
project: {
path: '/YOUR/PROJECT/PATH', // 小游戏项目地址
},
page: {
path: '',
},
qrcode: {
format: 'imageFile', // 以文件形式保存二维码
output: './xxxx.png', // 二维码保存地址
},
cache: false, // false:不使用本地缓存获取二维码
});
console.log(res); // res中包含的shortUrl即为预览二维码字符串
})();

上传项目​

把项目上传到开发者平台进行发布。​

命令行调用​

js
复制
Usage: tmg upload [options] [entry]
upload project to the developer platform
Options:
-v, --app-version <version> App version (eg: [major].[minor].[patch])
-c, --app-changelog <log> Changelog for this version
-p, --proxy <proxy> Update request proxy
-u, --copy Copy remote url to clipboard
-h, --help output usage information
-o, --output <path> QRCode image output path
--channel <channel> Test Channel
示例:
Bash
复制
tmg upload /YOUR/PROJECT/PATH \
-v 0.0.1 \ # 发布的小游戏版本
-c "update change log" \ # 此版本的版本日志
-u \ # 是否粘贴二维码的url到剪切板
-p http://localhost:8888 \ # 预览时使用代理http://localhost:8888
-o /OUTPUR/QRCODE # 将上传后的二维码保存为本地文件
--channel 1 # 测试通道参数,允许多个测试版本小游戏同时存在。需要传入1-24的整数,不传为默认通道。上传后 可在开发者管理后台的版本管理界面查看多个测试版本

代码调用​

JavaScript
复制
const { upload } = require('tt-minigame-ide-cli');
(async () => {
const res = await upload({
project: {
path: '/YOUR/PROJECT/PATH', // 小游戏项目地址
},
qrcode: {
format: 'imageFile', // 以文件形式保存二维码
output: './xxxx.png', // 二维码保存地址
},
changeLog: 'xxxxxxxx', // 此版本的版本日志
version: '1.0.4', // 发布的小游戏版本
channel: '1', // 测试通道,需要传入1-24的整数字符串,不传为默认通道
});
console.log(res);
})();

注:​

    1.测试版本最多允许 25 个版本存在。需要传入 1-24 的整数字符串;如果不传入 channel 参数,为默认通道。​
    2.上传多测试版本,需要保证 tt-minigame-ide-cli 版本为 2.0.12 及以上。​

获取项目版本​

获取项目线上版本号,暂不支持代码调用方式获取项目版本号。​

命令行使用​

js
复制
Usage: tmg version [entry]
Get latest released version of project

Unity 小游戏​

    使用 tt-minigame-ide-cli 预览或上传 Unity 项目,请确保 tt-minigame-ide-cli 版本为 2.0.10 或以上。​
    当选择安卓 Native 相关方案时,编译时间较长,请耐心等待。​
    Unity依赖项目文件夹下的project.config.jsongame.json文件。​
project.config.json:
JSON
复制
{
"appid": "ttf1*********07", // unity appid
"projectname": "sc-test2",
"unity": {
"build": {
"webgl": "/Users/bytedance/Downloads/testapp/webgl_package-20240615_123123.zip", // webgl产物文件
"native": {
"il2cpp": "/Users/bytedance/Downloads/testapp/upload/il2cppOutput.zip", // native 产物文件,上传时使用
"apk": "/Users/bytedance/Downloads/testapp/upload/launcher-release.apk",// native 产物文件,上传时使用
"fullApk": "/Users/bytedance/Downloads/testapp/upload/launcher-release.apk" // 预览调试时使用的安卓 native apk文件
},
"instantGame": "/Users/bytedance/Downloads/testapp/TCE PublishServer Config.json" // ig 游戏 json 文件
},
"publishType": "2", // 发布方案,0:安卓原生,1:安卓原生+iOS WebGL,2:安卓WebGL+iOS WebGL,3: 安卓WebGL,4:安卓InstantGame,5:安卓InstantGame+iOS WebGL
"starkSdkVersion": "Without StarkSDK", // sc stark tool生成,无需修改
"unityToolsVersion": "", // sc stark tool生成,无需修改
"unityEngineVersion": "2021.3.14f1", // sc stark tool生成,无需修改
"arch": "both" // sc stark tool生成,无需修改
}
}
game.json:
JSON
复制
{
"deviceOrientation": "portrait", // portrait,竖屏; landscape,浅色
"menuButtonStyle": "dark" // dark,深色;light,浅色
}

预览​

命令行调用​

js
复制
Usage: tmg preview [options] [entry]
preview project by remote
Options:
-p, --proxy <proxy> Preview with proxy
-h, --help output usage information
-o, --output <path> QRCode image output path
示例:
Bash
复制
tmg preview /YOUR/PROJECT/PATH
tmg preview /YOUR/PROJECT/PATH -o /PREVIEW/QRCODE/PATH # 预览并保存预览二维码到本地

代码调用​

JavaScript
复制
const { unity } = require('tt-minigame-ide-cli');
(async () => {
const result = await unity.preview({
projectPath: '/YOUR/PROJECT/PATH',
output: '/PREVIEW/QRCODE/PATH',
});
console.info(result);
})();

上传​

命令行调用​

Bash
复制
Usage: tmg upload [options] [entry]
upload project to the developer platform
Options:
-v, --app-version <version> App version (eg: [major].[minor].[patch])
-c, --app-changelog <log> Changelog for this version
-p, --proxy <proxy> Update request proxy
-h, --help output usage information
-o, --output <path> QRCode image output path
--channel <channel> Test Channel
示例:
Bash
复制
tmg upload /YOUR/PROJECT/PATH \
-v 0.0.1 \ # 发布的unity版本
-c "update change log" \ # 此版本的版本日志
-o /OUTPUR/QRCODE # 将上传后的二维码保存为本地文件
--channel 1 # 测试通道参数,允许多个测试版本小游戏同时存在。需要传入1-24的整数,不传为默认通道。上传后 可在开发者管理后台的版本管理界面查看多个测试版本

代码调用​

JavaScript
复制
const { unity } = require('tt-minigame-ide-cli');
(async () => {
await unity.upload({
projectPath: '/YOUR/PROJECT/PATH', // 项目路径
output: '/PREVIEW/QRCODE/PATH', // 测试二维码存储到本地
version: '5.5.20', // 发布版本
publishDesc: '上传日志', // 发布日志
channel: '1', // 测试通道
});
})();

注:​

    1.测试版本最多允许 25 个版本存在。需要传入 1-24 的整数字符串;如果不传入 channel 参数,为默认通道。​
    2.上传多测试版本,需要保证 tt-minigame-ide-cli 版本为 2.0.12 及以上。​