更新时间:2022-05-11 GMT+08:00
分享

应用打包发布

当您将应用开发完成后,需要将应用进行编译打包发布操作,打包后该应用才能发布使用。

应用发布主要流程

应用发布主要分为三个流程:

  1. 属性设置:根据实际用途设置包的类型和相关组件的属性。
  2. 编译:如果编译错误,则需要对错误组件进行修复,完成后才可进行下一步。
  3. 打包发布:发布时可以选择发布到AppCube下的“我的仓库”,也可以发布到其他平台,具体如图1所示。发布到“我的仓库”主要用于后续的沙箱环境测试和生产环境运行。发布到其他平台主要用于应用分享和商业用途。

有什么应用类型可以打包

按照应用类型,打包说明如下:

  • 对于业务大屏应用,发布安装请参考发布及安装项目
  • 在对轻应用或者行业应用打包时,打包类型支持打资产包或者源码包,它们的区别请参见源码包与资产包对比
    • 源码包:该类型包中的所有组件都不受保护和限制,源码包只能发布到“我的仓库”。在其他环境安装后可编辑包中组件,即在原有基础上可进行再开发。若后续其他用户在开发环境安装后,会显示在开发环境首页的“项目”页签下。
    • 资产包:该类型支持设置包中的组件是否受保护。打包时不做编译设置,默认打出的包都是资产包,包中组件都为只读保护模式,将包安装到其他环境时,只能运行和预览。不可编辑包中组件。若后续其他用户在其他开发环境安装资产包后,应用会显示在开发环境首页的“库”页签下。

      发布应用包时,在应用开发页面左侧单击,会出现如下图所示界面,AppCube资产包支持多种发布方式。

      图1 应用发布方式
      表1 发布说明

      发布方式

      说明

      我的仓库

      即发布到租户私仓,开发好应用后,将应用发布到我的仓库,可供其他用户在其他开发环境、沙箱环境、运行环境中下载安装软件包,以便于测试或者使用该软件。

      华为OneMobile

      可将App中的标准页面和高级页面发布到华为OneMobile。需要输入华为OneMobile的用户名和密码或扫码进行授权登录。选择该方式发布后在华为OneMobile上可生成应用程序二维码,扫码后按照提示可体验该应用。

      WeLink-We码

      华为云的企业WeLink,融合消息、会议、邮件、音视频、小程序等服务,打造企业数字化办公协作平台,实现团队、知识、业务、设备的全面连接。AppCube允许将标准页面或高级页面以小程序(即应用)的方式发布到企业WeLink,提供给企业用户使用。

      WeLink-轻应用

      AppCube支持将应用发布成WeLink轻应用,提供给WeLink企业用户使用。

      微信

      可将App中的标准页面和高级页面发布到微信小程序。

      下载前端运行包

      选择该方式可生成前端运行包。获取包后可运行在如下容器中:

      • 华为OneMobile
      • 蓝标WeLink
      • Web容器(目前Web容器中运行当前只支持高级页面)

如何将应用发布到“我的仓库”

编译应用包时,如果是资产包,您可以选择发布到“我的仓库”,如果是源码包,则默认发布到“我的仓库”,您需要根据不同的场景,选择不同的发布方式发布应用。

  1. 登录AppCube开发环境,选择进入一个已创建的应用,建议该应用中包含对象、页面、服务编排、脚本等组件。
  2. (可选)在应用开发页面左侧单击,选择“设置”,参考表2配置参数。

    若需要对应用中部分组件打包,或者需要配置组件发布后在打出的包中是否受保护,则需要执行该步骤。跳过该步骤时,表示发布的资产包中所有组件是受保护的。
    图2 编译设置
    表2 “编译设置”参数说明

    参数

    说明

    包类型

    应用包的类型:

    • 选择“资产包”发布的应用包,包中组件可设置是否受保护。

      选择该项后,您需要配置版权信息(可选)、描述(可选)、每个组件的保护设置(必选。配置为未受保护或者只读保护)。

      若后续其他用户在开发环境安装后,会显示在开发环境首页的“库”页签下。

    • 选择“源码包”发布的应用包,包中的所有组件不受保护和限制。在其他环境安装后可编辑包中组件,即在原有基础上进行再开发。

      若后续其他用户在开发环境安装后,会显示在开发环境首页的“项目”页签下。

    是否全量包

    打包时是否打全量包:

    • 全量包:表示对整个应用(包括应用中的各个组件)作为一个整体进行设置打包。
    • 增量包:对应用中部分组件进行设置打包。单击“添加应用组件”,在“类别”中选择相应的类别,勾选需要打包的组件。

    产权设置 > 签名保护

    当选择“资产包”打包时,才会显示该参数。表示是否对打包的组件中敏感内容(例如脚本内容)是否进行加密。

    勾选表示加密。在其他环境安装前,包中敏感数据是经过加密的。

    产权设置 > 版权信息

    当选择“资产包”打包时,才会显示该参数。表示该包的版权信息。

    选填项。

    产权设置 > 描述信息

    当选择“资产包”打包时,才会显示该参数。该包的描述信息。

    选填项,建议描述该App提供的功能。

    产权设置 > 联系邮件

    您可以在此留下当前软件包的问题联系邮箱,若安装过程中出现问题会将联系邮件提示给使用者。

    产权设置 > 联系链接

    您可以在此留下当前软件包的文档链接,若安装过程中出现问题会将联系链接提示给使用者。

    产权设置 > 资产保护 > 保护模式

    当选择“资产包”打包时,才会显示该参数。打包数据的保护模式。

    • 未受保护
    • 只读保护
    • 不可见保护

    未受保护的资产包在开发环境中安装后,可进行二次编辑;在运行环境安装资产包后,不论保护模式是“未受保护”还是“只读保护”,都不可编辑。

    部署策略 > 安装前置脚本

    当选择“资产包”打包且打全量包时,该配置页才会显示。表示在安装应用包时,在导入实例化配置数据之前执行的脚本。一般用于预清理数据,避免数据冲突的情况。

    您可以选择已有脚本,也可以单击“创建”新建脚本。

    部署策略 > 安装后置脚本

    当选择“资产包”打包且打全量包时,该配置页才会显示。表示在安装应用包时,在导入实例化配置数据之后执行的脚本。一般用于删除、更新数据等。

    您可以选择已有脚本,也可以单击“创建”新建脚本。

    部署策略 > 安装时组件的更新策略

    当打包的组件中包含系统参数、连接器、Rest操作、数据接入或事件流时,才会显示该参数。例如可设置系统参数随包打包发布后,在升级时遇到新旧数据冲突(唯一索引相同的数据)的数据更新策略。

    • 覆盖:当相关组件数据在打包升级到其他环境,发生数据冲突时,会进行覆盖。
    • 不覆盖:当相关组件数据在打包升级到其他环境,发生数据冲突时,不会进行覆盖。

    默认“不覆盖”。在配置为“不覆盖”的情况下,例如在开发环境修改数据接入的任意配置数据(包括所有图元的配置信息),打包升级到测试或者运行环境,不会覆盖同名的数据接入配置,即在开发环境修改的数据在测试或者运行环境不会生效。

    预置数据

    当选择“资产包”打包时,该配置页才会显示。

    您可以在该页面选择您在应用打包时一起发布的数据。支持按照对象名称打包。单击“添加对象”可设置数据导出条件,选择对象后,在应用打包时,会将该对象的满足条件的数据都打包出来。打包后,在资产包中“refdata”文件夹下可查看到导出的数据文件。

    使用该方式前,您需要先清理不需要发布的数据,且导出对象的“基本信息”页必须勾选上“允许API批量访问”,如图3所示。

    图3 自定义对象Class

    如果选择“资产包”类型去打包,资产包中包含高级页面时,打包出来的高级页面组件都是受保护的,在其他环境(测试或者运行环境)安装该包后,这些随包打包出的组件只可预览和下载,不可在线编辑、更新、启用或禁用,可在高级页面中直接使用该组件,但是不能定制。

    在安装升级源码包时,如果源码包中使用了受保护模式的组件,安装会报错,您需要修改源码包中使用的组件,在环境中上传组件后,才可正常安装。

  3. 在应用开发页面左侧单击,选择“编译”进行编译。

    编译成功后,页面会显示“编译XXX成功”。

    图4 编译资产包

  4. 在应用开发页面左侧单击,选择“我的仓库”。
  5. 配置版本信息,单击“发布”。

    如果勾选“压缩高级页面”,表示会对包中所有高级页面涉及的css和js文件进行合并及压缩,这样可以有效降低运行时服务器压力,但从终端浏览器首次访问该站点页面时,访问时间会稍微增加。

    默认不勾选。

    发布成功后,页面显示“程序包已经被成功上传到我的仓库。”在应用开发页面左侧单击,可在“已发布”下“资产包”或“源码包”页签下看到发布的应用。可将发布好的源码包或资产包应用发送给需要安装该应用的用户。有两种下载方式可选(具体可参见如何下载发布后的包):

    • 以压缩包内容安全的形式(无.csv内容):以txt形式下载软件包。
    • 压缩包含有.csv内容:下载内容包含有.csv格式的文件并用Excel打开时,请不要允许打开其他应用程序,以防csv恶意代码注入。

    发布应用到我的仓库时,如果提示“重复的元数据对象'AppExchange'名称'xxx'”,导致无法成功发布。

    出现该提示的原因是:该应用并非当前租户原生开发,而是从其他租户通过源码包方式安装而来的,而且其他租户已发布过相同版本的该应用。

    处理方法:当前租户发布该应用到我的仓库时,设置全新的版本号进行发布,避免版本号和其他租户重复。

  6. 应用发布后,其他租户可以在开发环境、沙箱环境、运行环境中安装软件包,以便于测试或者使用该软件。

    如何安装应用相关操作请参见如何安装已开发好的应用

发布到蓝标WeLink-We码

具体过程请参考发布WeLink We码应用

发布到蓝标WeLink-轻应用

具体过程请参考发布WeLink轻应用

如何发布到微信

具体操作请参考发布成微信小程序

如何发布到华为OneMobile

  1. AppCube的小程序包发布到OneMobile后,在OneMobile中访问时,首先要做免登逻辑的处理,这样会获取到AppCube的访问Token,在后续的请求中会携带此Token请求业务数据。

    有两种方式实现免登逻辑,若两种方式都已配置,优先方式一的处理逻辑:

    • 方式一:开发者自己实现免登接口,即通过在BO或者应用中开发服务编排来获取访问AppCube的Token,再将服务编排封装为免登接口,使用此方式后,可以给每个业务用户设置相应的权限,用权限控制是否可访问AppCube业务接口。
      1. 开发脚本,脚本中调用业务用户查询详情接口,获取到业务用户信息。查询该业务用户是否存在于AppCube中;如果存在,获取到业务用户详情;如果不存在,创建一个业务用户。
      2. 开发服务编排,调用登录接口(使用服务编排中的公式实现),获取Token。
      3. 封装服务编排为免登接口,即华为OneMobile小程序免登录请求URL。
      4. 在承载服务接口的AppCube相应环境管理中心配置内置系统参数“token_url_in_shinemo”,即华为OneMobile小程序免登录请求URL。
        在AppCube相应环境管理中心左侧选择“系统管理 > 系统参数”,选择“内置系统参数”页签。参考表3配置“token_url_in_shinemo”。
        表3 “token_url_in_shinemo”参数说明

        参数

        说明

        token_url_in_shinemo

        华为OneMobile小程序免登录请求URL,即1.c封装服务编排的接口URL。

        该参数值为华为OneMobile小程序获取AppCube access-token的请求URL。如果不配置,在华为OneMobile中打开小程序时,会因为业务请求没携带access-token而报错。

    • 方式二:使用AppCube预置的免登逻辑,在承载服务接口的AppCube相应环境管理中心配置免登信息即可。
      1. 在AppCube相应环境管理中心左侧选择“系统管理 > 统一身份认证设置”。
      2. 单击“OneMobile”,配置“App Key”和“App Secret”
        表4 OneMobile集成配置

        参数

        说明

        App Key

        OneMobile中小程序的App Key,请登录OneMobile小程序容器管理后台,在上方选择“应用开发”,左侧选择“我的服务”,获取“appkey”值。

        App Secret

        OneMobile中小程序的App Secret,请登录OneMobile小程序容器管理后台,在上方选择“应用开发”,左侧选择“我的服务”,获取“appsecret”值。

  1. 参考应用发布主要流程,开发好应用后,进行编译设置。
  2. 在应用开发页面左侧单击,选择“华为OneMobile”。可将App中的标准页面和高级页面发布到华为OneMobile。需要输入华为OneMobile的用户名和密码或扫码进行授权登录。登录华为OneMobile后在页面输入如下参数。发布后在华为OneMobile上可生成应用程序二维码,扫码后按照提示可体验该应用。

    • 小程序名称:从下拉框选择要发布到华为OneMobile上的应用名。
    • 主页:选择一个发布的页面作为首页,即显示的默认页面。
    • 请选择环境类型:承载应用程序服务的AppCube环境类型。分“运行环境”、“沙箱”和“开发环境”。默认为“开发环境”。
    • 运行环境/沙箱域名:运行环境/沙箱的环境域名。当“请选择环境类型”配置为“运行环境”或“沙箱”时,该参数才需要配置。
    • 运行环境/沙箱租户ID:运行环境/沙箱环境的租户ID,配置后小程序运行时会在请求头自动添加租户ID。获取方法:登录运行环境/沙箱环境,在管理中心左侧导航栏中选择“用户管理 > 公司配置 > 公司信息”,查看“租户ID”。
    • 开启调试:是否开启调试功能,当应用在华为OneMobile上运行时,是否开启vConsole调试功能,开启后,可在华为OneMobile该应用上单击“vConsole”查看日志。
    • 启用js编译器:当打包的应用内有高级页面时,才会显示该参数。开启后,会将高级页面引用的插件和资源进行JS编译,使代码规范化。

  3. 单击“发布”,在“发布信息确认”页面检查发布参数,检查无误后单击“确定”。
  4. 在OneMobile小程序容器管理后台发布小程序。

    1. 登录OneMobile小程序容器管理后台,上传要发布的小程序包。
    2. 在小程序上传成功后,单击待提交审核小程序版本号后展示的“二维码”,扫描二维码,下载小程序进行预览。
    3. 单击已上传小程序后的“提交审核”,提交发布审核。

      审核通过后,即可使用或测试该小程序。

发布到微信

具体操作请参考发布微信小程序

如何发布成下载前端运行包

  1. 参考应用发布主要流程,开发好应用后,进行编译设置。
  2. 当用户需要下载前端运行包,运行在华为OneMobile、蓝标WeLink或者Web容器中时,在应用开发页面左侧单击,选择“下载前端运行包”。在弹出的“前端运行包下载”页面配置如下参数,单击“下载”,可生成运行包。

    • 运行容器:支持华为OneMobile、蓝标WeLink和Web容器中运行。请根据需要选择容器下载前端运行包。目前Web容器中运行当前只支持高级页面。
    • 应用ID:小程序AppID,请登录小程序管理后台获取。
    • 主页:打开小程序时,要展示的首页。
    • 视图:运行到Web容器时,高级页面分为电脑端和移动端两个视图,选择需要下载的视图。
    • 环境类型:提供服务的AppCube环境类型。分“开发环境”、“运行环境”、“沙箱”和“不依赖”(表示运行包不依赖任何环境,包中未调用AppCube任何环境的接口)。默认为“开发环境”。
    • 运行环境/沙箱域名:运行环境/沙箱的环境域名。当“请选择环境类型”配置为“运行环境”或“沙箱”时,该参数才需要配置。
    • 运行环境/沙箱租户ID:运行环境/沙箱环境的租户ID,配置后小程序运行时会在请求头自动添加租户ID。获取方法:登录运行环境/沙箱环境,在管理中心左侧导航栏中选择“用户管理 > 公司配置 > 公司信息”,查看“租户ID”。
    • 开启调试:是否开启调试功能。开启后,在小程序使用过程中展示控制台,方便调试使用;在正式运行环境上建议关闭调试功能。
    • 启用js编译器:当打包的应用内有高级页面时,才会显示该参数。开启后,会将高级页面引用的插件和资源进行JS编译,使代码规范化。
    • 高级设置 > 导航栏显示方式:导航栏配置,在小程序展示时是否显示导航栏。

  3. 单击“发布”,在“发布信息确认”页面检查发布参数,检查无误后单击“确定”。

如何下载发布后的包

下载发布后的应用包有两种形式:含有.csv内容和不含.csv内容即文本两种格式的包,两种包内容是一样的,仅内容格式不一样。

  1. 图5,单击左边的包管理,在“已发布”下面选中包后单击“下载”。

    图5 下载应用的zip包

  2. 下载应用的zip包到本地,下载分含有.csv内容和不含.csv内容即文本两种格式的包,两种包内容是一样的,仅内容格式不一样。如图6图7

    图6 含.csv内容的data文件里详细格式
    图7 不含.csv内容的data文件里详细格式

  3. 可以用该zip包安装定制应用到其他AppCube环境,zip包含的文件请参见表5

    表5 应用zip包文件说明

    文件名

    说明

    data

    APP涉及的实例化数据,在APP“配置”内创建的数据,以及该应用使用的连接器Connector(例如发送短信连接器、ROMA连接器、Redis连接器等),会自动归档到该目录下。

    不归档非APP内创建的实例化数据。例如:在AppCube“管理 > 设置”下创建的系统参数、选项列表等,APP内即便使用了它们,也不会自动归档,需要手动导出对象然后归档到该目录下。手动导出的方法请参见如何导入导出数据

    图8 应用配置

    flow

    APP涉及的服务编排。

    pageresource

    标准页面的相关信息。

    picklist

    APP涉及的选项列表,只包含在APP内创建的选项列表。

    schema

    APP涉及的对象的元数据。

    script

    APP涉及的脚本。

    website

    高级页面的相关信息,例如:Widget、library、站点信息等。

    CustomAPI.yaml

    自定义接口的yaml文件。

    packageinfo.json

    软件包的元数据描述文件,主要包含APP的软件包名字、描述信息以及作者信息等。

分享:

    相关文档

    相关产品

close