制品与仓库#
全部制品发布在 open.shengzhiai.com,仓库匿名只读,不需要账号,令牌与证书。已发布的版本不再改动,依赖写成具体版本号即可锁定。
| 端 | 制品 | 仓库 |
|---|---|---|
| 服务端 Java | com.shengzhiai.yugu:yugu-java-sdk:2.1.0 |
Maven https://open.shengzhiai.com/maven/ |
| 安卓 | com.shengzhiai.yugu:yugu-android-sdk:2.1.0 |
同上 |
| 安卓声通平替 | com.shengzhiai.yugu:stkouyu-compat:2.1.2 |
同上 |
| 网页 | @shengzhiai/yugu-web-sdk@2.1.0 |
npm https://open.shengzhiai.com/npm/ |
| 微信小程序 | @shengzhiai/yugu-miniprogram-sdk@2.1.0 |
同上 |
| iOS | 包 yugu-ios-sdk,产品 YuguSDK,标签 2.1.0 |
SwiftPM https://open.shengzhiai.com/git/yugu-ios-sdk.git |
| iOS 声通平替 | 包 stkouyu-ios-compat,模块 STKouyuEngine,标签 2.1.2 |
SwiftPM https://open.shengzhiai.com/git/stkouyu-ios-compat.git |
添加依赖#
服务端 Java#
<repositories>
<repository>
<id>shengzhiai</id>
<url>https://open.shengzhiai.com/maven/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.shengzhiai.yugu</groupId>
<artifactId>yugu-java-sdk</artifactId>
<version>2.1.0</version>
</dependency>
</dependencies>repositories {
mavenCentral()
maven { url 'https://open.shengzhiai.com/maven/' }
}
dependencies {
implementation 'com.shengzhiai.yugu:yugu-java-sdk:2.1.0'
}repositories {
mavenCentral()
maven("https://open.shengzhiai.com/maven/")
}
dependencies {
implementation("com.shengzhiai.yugu:yugu-java-sdk:2.1.0")
}运行时依赖只有 jackson-databind 2.17,从 Maven Central 获取,HTTP 与 WebSocket 使用 JDK 自带的 java.net.http。
安卓#
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
maven { url "https://open.shengzhiai.com/maven/" }
}
}
dependencies {
implementation "com.shengzhiai.yugu:yugu-android-sdk:2.1.0"
}// settings.gradle.kts
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
maven { url = uri("https://open.shengzhiai.com/maven/") }
}
}
// app/build.gradle.kts
dependencies {
implementation("com.shengzhiai.yugu:yugu-android-sdk:2.1.0")
}第一段写在 settings.gradle,第二段写在模块的 build.gradle。工程仍在顶层 build.gradle 的 allprojects 里声明仓库时,把同一行仓库地址加进那里。SDK 自带 R8 混淆保留规则,录音需要的 RECORD_AUDIO 权限见安卓 SDK。
iOS#
// swift-tools-version:5.9
import PackageDescription
let package = Package(
name: "MyApp",
platforms: [.iOS(.v13)],
dependencies: [
.package(url: "https://open.shengzhiai.com/git/yugu-ios-sdk.git", from: "2.1.0"),
],
targets: [
.target(name: "MyApp", dependencies: [
.product(name: "YuguSDK", package: "yugu-ios-sdk"),
]),
]
)pod 'YuguSDK', :git => 'https://open.shengzhiai.com/git/yugu-ios-sdk.git', :tag => '2.1.0'Xcode 里选择 File 菜单的 Add Package Dependencies,输入仓库地址,Dependency Rule 选择 Up to Next Major Version,版本填 2.1.0,产品勾选 YuguSDK。录音需要在 Info.plist 声明 NSMicrophoneUsageDescription。
网页#
@shengzhiai:registry=https://open.shengzhiai.com/npm/
npm install @shengzhiai/yugu-web-sdk@2.1.0<script src="/static/yugu-sdk.umd.min.js"></script>
<script>
const client = new YuguSDK.YuguClient({ token: '由接入方后端签发的 JWT' });
</script>第一行写进项目根目录的 .npmrc。pnpm 与 Yarn 1 读取同一个 .npmrc,Yarn 2 及以上版本在 .yarnrc.yml 的 npmScopes 里配置同一个地址。包同时提供 ESM 构建与 UMD 构建,package.json 的 exports 按导入方式自动选择。
微信小程序#
echo "@shengzhiai:registry=https://open.shengzhiai.com/npm/" >> .npmrc
npm install @shengzhiai/yugu-miniprogram-sdk@2.1.0安装后在微信开发者工具里选择工具菜单的构建 npm,评测与实时评测的域名要登记为合法域名,见小程序 SDK。
声通平替#
已接入声通 SDK 的工程只换依赖,不改业务代码,删除声通文件与替换依赖的步骤见从声通迁移。
版本固定与校验#
| 仓库 | 锁定版本 | 校验 |
|---|---|---|
| Maven | 依赖写成具体版本号 | 每个文件附带 .md5,.sha1,.sha256,.sha512,另有 -sources.jar 与 -javadoc.jar |
| npm | npm install 写入 package-lock.json |
包元数据带 sha512 完整性值,npm 安装时自动核对 |
| SwiftPM | 每个版本对应一个 Git 标签,exact: "2.1.0" 固定 |
Package.resolved 记录标签对应的提交 |
回退时把版本号改回历史版本。1.x 版本没有发布到制品仓库,已停止维护,升级方法见升级到 2.0。