# 资源包管理

## 注意事项

- 该功能需使用最新的 nightly 开发者工具
- 该功能依赖最新的 SDK（Android 需 ≥ 0.9.0 版本；iOS 需 ≥ 0.9.6 版本）
- 使用该功能需要重新升级多端项目
- 该功能仅在专业版中支持，专业版的介绍以及申请的步骤可查看[升级至专业版](pro)

## 线上版的更新规则

客户端已安装了离线安装包，那么是否还会自动更新为线上版本呢？其规则如下：

- 按照从线上版的发版时间倒序，返回第一个能满足「最小 app 版本 + 最小 sdk 版本」的资源包版本
- 所以当你设置线上版的时候，建议设置最小 app 版本、最小 sdk 版本等信息，如果都不填的话，就相当于这个线上版本会被所有 app 匹配到，然后就覆盖了。因此，建议开发者每次发线上版本的时候都设置一下相关的最小 app 版本和最小 sdk 版本信息
- 此外，资源包管理只能发布「小程序代码」，涉及到原生能力和 SDK 的更新则不支持
- 补充：如果安装在手机的 IPA 或 APK 是开发版的，那么也不会更新到新版本的资源包；意思是说，资源包的更新策略只适用于正式版的 IPA 或 APK 安装包

## 整体步骤

多端应用资源包版本管理功能，整体的步骤如下：

### 1、在开发者工具上传资源包

- 详情可查看[上传资源包](/miniprogram/dev/platform-capabilities/miniapp/handbook/devtools/pkg-mgnt)

### 2、进入资源包管理控制台

- 登录 [多端应用控制台](https://developers.weixin.qq.com/platform/)，进入「多端应用」控制台，再进入「多端应用详情」-「资源包管理」

### 3、将「开发版」设为「测试版」

- 设置测试版时，可添加测试白名单；白名单的用户才可获取测试版代码进行更新
- 关于白名单中的 userid 的使用，看下文描述

![](https://testchu-7gy8occc8dcc14c3-1304825656.tcloudbaseapp.com/img%2Fmelody%2F202305161544899.png)

![](https://testchu-7gy8occc8dcc14c3-1304825656.tcloudbaseapp.com/img%2Fmelody%2F202305161544182.png)

### 4、将「开发版」或者「测试版」设为「线上版」

- 可以直接将「开发版」设为「线上版」，也可以将「测试版」设为「线上版」
- 设为线上版后，所有用户均可获取线上版代码进行更新

## 通过 JSAPI 设置 userId

- 接口名称：wx.miniapp.setSaaAUserId
- 使用示例：

```js
wx.miniapp.setSaaAUserId({
  userId: '用户的userId',// 开发者可自定义
})
```

### 注意：

- userId 是开发者业务中用于唯一标识用户的 id
- 当用户登录之后，建议小程序代码中通过 `wx.miniapp.setSaaAUserId` 设置 userId
- 用户退出登录之后，可以通过调用 `wx.miniapp.setSaaAUserId({userId: ''})` 清除
- 调用过 `wx.miniapp.setSaaAUserId` 之后，重启 App 之后，依然生效
