版本发布生效常见问题

发布生效

Q1.为什么要发布版本?

A:无论您的设备或应用接入的是全链路语音技术还是单项语音技术,您都需要进行版本发布操作,只有已发布的版本才能在客户端使用。了解控制台操作的版本如何在客户端上生效。

发布操作可以理解为是将当前产品的配置信息进行打包封装,生成“快照”,一旦发布后这个“快照”就不可被更改,除非您删除了这份快照,否则会一直存在。

发布版本有如下用途:

  1. 发布操作是将您在控制台上配置的各项内容生成一份配置文件,并且将配置文件同步到云端,当您在设备端联网进行语音交互对话时,云端会根据配置文件调用各项语音技术服务。
  2. 发布操作同时也是对您添加的技能进行集体训练的过程,只有通过训练才能让产品配置的识别引擎、选择的技能等部分进行融合生效,因此技能资源较多,发布时间就会相对比较长。
  3. SDK客户端更新产品资源,是基于产品的版本资源进行的。
  4. 如果不发布版本,当前产品配置信息就只有一份,一旦有任何修改,旧数据则无法找回;发布后,会有按版本记录相关数据,可以进行有效的管控。

Q2.为什么我不能发布版本?

A:如果您不能发布版本,可能有如下两个原因:

原因一:没有发布权限:产品版本的开发、发布、和删除等操作涉及数据流转和变更,为了保证数据完整和安全性,对于此类影响数据的操作,DUI控制台按照贵公司员工在控制台上对应的项目组角色,进行操作权限控制。因此如果您无法发布版本,您可以先根据您当前在控制台上的项目组角色,确认自己是否拥有发布权限。(您可以参考在哪里能看到我的操作权限?的操作步骤,查看您的操作权限。)

一般来说,如果您在控制台上是项目组管理员或者项目组成员,默认有发布权限;

如果您是以外部协作者的身份加入了该产品版本所在的项目组,那么默认是没有发布权限的;

如果您确认没有发布权限,您可以让有发布权限的用户来发布,或者联系控制台上的项目组管理员分配一个可以发布版本的自定义角色给您。如何给项目组成员分配其他角色

原因二:当前有其他人正在编辑:DUI系统支持多人协同操作,即支持多个用户同时编辑同一个版本。如果当前有用户正在操作,您可以等待该用户操作完成,再执行发布操作。您可以查看有人和我一起开发时,为什么不能发布技能或者产品版本》了解不能发布版本的原因。

Q3.版本发布一直卡在99%怎么办?

A:版本发布时需要同步产品各配置内容到云端,同时需要对产品中添加的技能进行集体训练,因此技能越多,训练消耗时间越长。

如果版本发布一直卡在99%,可能是:

  1. 您的技能添加太多,导致发布耗时较长;
  2. 同一时刻在控制台上发布的版本过多或者您的网络状态不佳,因此发布速度较慢;
  3. DUI系统的发布服务出问题,导致发布缓慢;

对于第1和2种情况,您可以耐心等待,等版本发布完成,DUI系统会以站内信的方式通知到您;

对于第3种情况,如果是DUI系统服务出错,出现发布失败的情况,您可以根据发布失败了怎么办进行操作

Q4.版本发布失败怎么办?

A:发布操作是将您在控制台上配置的各项内容生成一份配置文件,并且将配置文件同步到云端过程,与此同时,发布操作也是对您添加的技能、资源进行集体训练的过程,只有通过训练才能让产品配置的识别引擎、选择的技能等部分进行融合生效;因此需要一定时间才能完成发布操作。

然而,当网络不佳或服务出问题时,发布服务会受到影响,发布所需的时间大大提升;为了不占用发布资源,影响其他的发布操作,在发布时长超过上限时,会判断产品版本发布失败,释放发布操作所占用的资源;但该版本配置的所有信息都不会丢失。

对于发布失败的版本,您可以采用【重新开发】的方式,重新开发发布失败的版本。您可以对新版本内容进行修改后发布,或者直接发布。

操作步骤如下:

第一步 登录进入控制台后,点击导航条上的 “产品接入”进入产品列表。

第二步 在产品列表页,点击行尾的“查看”按钮,进入产品详情页。

第三步  在产品详情页面,点击左侧的【发布管理】,进入发布版本列表,在列表页点击发布失败版本后的【重新开发】按钮,可以重新开发此版本。

第四步  您可以修改版本内容后发布,也可以直接发布。

Q5.发布生成的版本号有什么用?

A:产品执行发布操作时,会生成发布版本号,该版本号的主要作用如下:

如果您为设备或应用开发的语音交互系统需要分别完成“云端配置”和客户端的“SDK集成”,那么客户端需要根据当前使用的分支上的产品的版本号,获取在云端配置的产品版本的信息(了解控制台的版本和客户端的版本间的关系?);

如果您需要客户端能够自动更新产品云端配置信息,那么客户端根据分支号获取当前分支上的版本信息,通过版本号判断当前版本是否是最新版本;如果是最新版本,则执行热更新操作,自动将客户端的产品版本信息更新到最新版(前提是需要在SDK集成时,打开DUI内核的热更新功能,详见Android SDK集成)。

Q6.发布时候填的版本号有什么用?

A:在控制台发布产品版本时,您需要填最少2位、最多4位的版本号,用于对您开发的版本进行规范化的管理,如果您填写了4位版本号X.Y.Z.B,那么您可以设定:

  1. X表示重大更新;
  2. Y表示功能增强更新;
  3. Z表示纠正类更新(bug修复等);
  4. B表示构建(如果有);

如果您填写了3位版本号X.Y.Z,那么您可以设定:

  1. X是主版本号(重大修改或功能累积较多);
  2. Y是子版本号(增加部分功能);
  3. Z是修正号(局部修改或bug修复);

Q7.发布完成后有三个版本号,哪个才能用?

A:产品版本发布完成后,会在发布列表页显示是三个版本号,如下图:


三个版本号分别是:

第一个版本号是您开发时手动填写的版本号,该版本号的用途见:我发布时候填的版本号有什么用?

第二个版本是版本从开发状态转变成已发布状态时,自动带过来的开发状态下的版本号。该版本号在版本为开发状态下时,可作为版本的标识使用,版本一旦发布,该版本号就失去实际作用。

第三个版本号是发布操作时,由DUI发布服务生成的发布版本号;该版本号的用途见:发布生成的版本号有什么用?

Q8.我怎么为测试版本选择分支?

A:在语音交互产品开发过程中,版本在客户端上运行时的环境或分支,在DUI控制台上被称为分支。使用DUI 的SDK在进行客户端开发集成时,SDK端需要获取当前产品版本所在的分支信息,从而完成SDK的初始化。只有部署到分支上的产品版本,才能被SDK调用。因此可以说,分支是链接客户端和控制台产品版本的桥梁。(了解控制台操作的版本如何在客户端上生效  / 控制台的版本和客户端的版本间的关系?

同时,鉴于一个分支只能同时容纳一个产品版本,因此使用同一个分支的一批设备,会获取相同的产品版本,测试时会得到有同样的语音交互效果。实际使用中,如果想要在不影响本批次设备使用效果的情况下,测试其他版本信息,可以使用其他分支进行产品功能测试。因此分支还可以用于进行多版本并发测试,是DUI系统进行环境区别的管理支撑工具。

在使用客户端测试产品版本时,需要先将已发布的产品版本部署到分支上。DUI系统默认已经创建好测试/正式两个分支,建议您可以先将版本部署至测试分支,经充分的真机测试或内部测试后,再将该版本部署到正式分支。您还可以根据设备实际使用情况,创建自定义分支。

那么,如果您要在控制台上为需要测试的版本选择分支,您可以:

  1. 版本发布时选择分支,如下图:

  2. 或者将已发布的版本直接应用到某个分支上,操作:选择分支

请注意,如果此时分支上已经有版本,将新版本应用到分支上将会替换原版本,即一个分支只能放一个已发布的版本,客户端在测试时也只选择分支上最新的版本。

Q9.控制台的版本和客户端的版本间的关系?

A:控制台上产品版本分为两类:

  1. 开发版本:顾名思义,即正在开发中的、尚未达到可测试或成熟条件的产品版本;
  2. 已发布版本:开发版本各项配置都完成,需要进行测试,一旦执行发布操作,就会生成已发布版本。

同时,因为客户端需要通过分支号(分支的唯一标识)拉取分支上的版本信息,因此将已发布版本细分的话,也可以分为两类:1)在分支上的已发布版本和2)不在分支上的已发布版本;其中客户端使用的版本就是在分支上的版本,且该分支正在客户端使用。

Q10.控制台上的版本如何在客户端上生效?

A:要了解控制台上的版本如何在客户端生效,就要先了解控制台的版本和客户端的版本间的关系

您在控制台上开发产品后,版本的数据流转生效遵循如下流程:

版本管理

Q1.为什么没法删除产品版本?

A:如果无法删除产品版本,可能有如下两种情况:

情况一:您没有删除产品版本的权限,您可以按照如下流程确认是否是因为权限问题导致无法删除:

原因①:您在DUI控制台上不是项目组管理员(一般来说,控制台上的项目组管理员对应实际项目开发过程中的负责人),且该版本在分支上;如果在客户端使用了分支上的版本,那么在控制台上删除该版本会造成客户端使用失效(了解控制台的版本和客户端的版本间的关系?),因此,为了降低对客户端使用效果的影响,只允许项目组管理员来删除,即使您是该版本的创建人,也无法删除。

方案①:您可以联系控制台上的项目组管理员来删除产品版本;

原因②:您在DUI控制台上不是项目组管理员,且您不是该版本的创建人。鉴于产品版本数据一旦删除无法找回,因此为了保证数据安全和完整,对产品版本的删除操作加了权限控制,只允许控制台上的角色为项目组管理员的人或者产品版本的创建者来执行删除操作。

方案②:您可以线下联系管理员或者该版本创建人来删除该版本。

 

情况二:当前有其他人正在编辑该版本。DUI系统支持多人协同操作,即支持多个用户同时编辑同一个版本。如果当前有用户正在操作,您可以等待该用户操作完成,再执行删除操作。您可以查看有人和我一起开发时,为什么不能删除技能或者产品版本》了解不能删除版本的原因。

Q2.我怎么删除不要的产品和版本?

A:删除产品和版本会造成数据变更,尤其是版本一旦删除后,就无法找回。DUI控制台上对于这些影响数据安全性和完整度的操作,做了权限控制,只允许项目的管理者(一般来说,对应控制台上的项目组管理员)和产品/版本创建者能执行删除操作。

如果您要在控制台上删除不需要的产品,可以将产品移到产品回收站。操作详见:移到回收站

移动产品到回收站需要注意以下几点:

  1. 如果您不是项目组管理员,那么您只能移动自己创建的产品;同理,除管理员外,其他人无法移动您的产品;
  2. 如果您是项目组管理员,您可以移动所有产品到回收站,并且清除回收站的所有产品;
  3. 回收站产品一旦清除,则无法找回,请谨慎操作。

如果您要在控制台上删除不需要的版本,操作详见:版本删除

删除版本操作需要注意以下几点:

  1. 如果您是项目组管理员,那么您可以删除所有产品版本;
  2. 如果您不是项目组管理员,那么您只能删除自己创建的、不在分支上的版本;
  3. 考虑到分支上的产品版本可能正在客户端使用(控制台的版本和客户端的版本间的关系),为了降低删除操作对客户端使用效果的影响,对于分支上的版本,只允许项目组管理员进行删除;如需删除请联系项目组管理员进行操作。

环境分支

Q1.我想要在设备上进行测试,但不影响其他正常使用的设备该怎么办?

A:想要在设备上进行测试,且不影响其他正常使用的设备,即让不同的设备获取不同分支的产品版本信息(了解控制台上的版本如何在客户端上生效)。

在语音交互产品开发过程中,版本在客户端上运行时的环境或分支,在DUI控制台上被称为分支。分支可用于进行多版本并发测试,是DUI系统进行环境区别的管理支撑工具。使用同一个分支的一批设备,会获取相同的产品版本数据,测试时会得到有同样的语音交互效果;同理,使用不同分支的一批设备,测试时的效果也是不同的。分支号则是分支的唯一标识,用于指定不同的运行环境及设备组,是设备获取对应更新资源的唯一识别编号。

要让不同的设备获取不同分支的产品版本信息,您需要现在控制台上发布待测试的版本,并且将该版本部署到新的分支上,让测试设备使用该分支。(了解如何将版本部署到分支上 和设备端获取分支:AndroidiOS嵌入式

Q2.正在测试的版本更新后发了新版本,怎么自动拉取更新的内容?

A:想要了解设备端如何自动拉取更新内容,需要先了解以下内容:

  1. 客户端SDK使用的产品版本,就是控制台上已发布且在分支上的云端版本(控制台的版本和客户端的版本间的关系 / 什么是分支);
  2. 客户端SDK是通过分支号(分支的唯一标识)来获取部署到分支的版本信息 ,因此新版本所在的分支要和客户端SDK使用的分支一致;
  3. 新版本的版本号要比分支上的原版本的版本号要大,即假设分支上的原版本的版本号为3,那么新版本的版本号必须要比3大。

DUI系统提供的Android SDK(限于全链路)提供了热更新功能,即只要将新发布的版本部署到当前在设备端使用的分支上(了解如何将版本部署到分支上),设备端检测到有新版本,会自动将使用的资源和版本更新到最新,流程如下图:


 您可以参照《AndroidSDK集成:处理更新》 开启设备处理更新功能。

 如果您的设备使用的是iOS操作系统,您可以通过提交工单的方式联系我们(还没有账号的话可以先注册哦),工单类型为【商务合作】。

Q3.我有多个已发布的产品版本需要在客户端测试,怎么做?

A:鉴于客户端进行测试时通过分支来获取版本信息,如果您需要在客户端同时测试多个已发布的不同产品版本,您需要:

  1. 首先,将这些版本应用到分支上(操作),如果当前没有分支,您需要先创建分支;
  2. 其次,在客户端测试时,一台设备同时只能测试一个分支上的版本,如果您有多台设备,那么您可以创建多个分支,将每个版本都应用到一个分支上,同时用多台设备测试多个版本;
  3. 如果您只有一台设备,那么您可以:
  • 只创建一个分支,即客户端只用这个分支;此时您需要每次测试前,都在控制台上将待测试的版本应用到分支上,替换已经完成测试的版本;因为客户端暂不支持更新到指定的历史版本,因此请注意在此种情况下,您每次应用到分支上的版本,都要比分支上的原版本要新;
  • 创建多个分支,一个版本对应一个分支;此时您需要在每次测试前,都在客户端上切换分支。

Q4.如何知道使用中的产品版本曾经用在哪些分支上

A:如需查询已发布的产品版本曾经部署过的分支,可以使用DUI提供的查询历史分支的功能,找到该版本部署过的历史分支记录。

您可以在控制台上的版本详情页,找到使用中的版本,在版本的应用分支后,可以看到一个图标,点开可以看到该版本部署过的分支,如下图:

Q5.怎么看线上使用的是哪个产品版本

A:DUI平台支持针对一个产品同时开发多个版本,每个版本都可以有不同的用途,比如一个版本是修复bug,一个版本是进行新特性实验。

而针对一个产品在线上使用的版本,则主要通过分支来进行区分。(了解版本和分支的概念和关系

DUI平台提供正式和测试两个默认分支,您可以根据实际需要增加新的分支。不同的分支,可以应用多套设备分别进行测试或使用;具体哪个版本是生效的,可以在已发布列表或者分支管理里查看当前在分支上的版本即可。举例:下图的三个版本,第一个是测试分支当前使用的版本;

 

目录

发布生效

Q1.为什么要发布版本?

Q2.为什么我不能发布版本?

Q3.版本发布一直卡在99%怎么办?

Q4.发布失败了怎么办?

Q5.发布生成的版本号有什么用?

Q6.我发布时候填的版本号有什么用?

Q7.为什么发布完成以后有三个版本号,哪个才是我能用的

Q8.我怎么为要测试版本选择分支?

Q9.控制台上的版本如何在客户端上生效?

Q10.控制台的版本和客户端的版本间的关系?

版本管理

Q1.为什么没法删除产品版本?

Q2.我怎么删除不要的产品和版本?

境分支

Q1.我想要在设备上进行测试,但不影响其他正常使用的设备该怎么办?

Q2.正在测试的版本更新后发了新版本,怎么自动拉取更新的内容?

Q3.我有多个已发布的产品版本需要在客户端测试,要怎么做?

Q4.如何知道使用中的产品版本曾经用在哪些分支上?

Q5.怎么看线上使用的是哪个产品版本?