# 资源包管理

# 注意事项

  • 该功能需使用最新的 nightly 开发者工具
  • 该功能依赖最新的 SDK ( Android 需 ≥ 0.9.0 版本;iOS 需 ≥ 0.9.6 版本)
  • 使用该功能需要重新升级多端项目

# 线上版的更新规则

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

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

# 整体步骤

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

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

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

  • 登录 多端应用控制台,进入「多端应用」控制台,再进入「多端应用详情」 - 「资源包管理」

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

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

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

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

# 通过 JSAPI 设置 userId

  • 接口名称:wx.miniapp.setSaaAUserId
  • 使用示例:
wx.miniapp.setSaaAUserId({
  userId: '用户的userId',// 开发者可自定义
})

# 注意:

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