应用打包发布
当您将应用开发完成后,需要将应用进行编译打包发布操作,打包后该应用才能发布使用。
应用发布主要流程
应用发布主要分为三个流程:
- 属性设置:根据实际用途设置包的类型和相关组件的属性。
- 编译:如果编译错误,则需要对错误组件进行修复,完成后才可进行下一步。
- 打包发布:发布时可以选择发布到AppCube下的“我的仓库”,也可以发布到其他平台,具体如图1所示。发布到“我的仓库”主要用于后续的沙箱环境测试和生产环境运行。发布到其他平台主要用于应用分享和商业用途。
有什么应用类型可以打包
按照应用类型,打包说明如下:
- 对于业务大屏应用,发布安装请参考发布及安装项目。
- 在对轻应用或者行业应用打包时,打包类型支持打资产包或者源码包,它们的区别请参见源码包与资产包对比。
- 源码包:该类型包中的所有组件都不受保护和限制,源码包只能发布到“我的仓库”。在其他环境安装后可编辑包中组件,即在原有基础上可进行再开发。若后续其他用户在开发环境安装后,会显示在开发环境首页的“项目”页签下。
- 资产包:该类型支持设置包中的组件是否受保护。打包时不做编译设置,默认打出的包都是资产包,包中组件都为只读保护模式,将包安装到其他环境时,只能运行和预览。不可编辑包中组件。若后续其他用户在其他开发环境安装资产包后,应用会显示在开发环境首页的“库”页签下。
发布应用包时,在应用开发页面左侧单击
,会出现如下图所示界面,AppCube资产包支持多种发布方式。
表1 发布说明 发布方式
说明
我的仓库
即发布到租户私仓,开发好应用后,将应用发布到我的仓库,可供其他用户在其他开发环境、沙箱环境、运行环境中下载安装软件包,以便于测试或者使用该软件。
华为OneMobile
可将App中的标准页面和高级页面发布到华为OneMobile。需要输入华为OneMobile的用户名和密码或扫码进行授权登录。选择该方式发布后在华为OneMobile上可生成应用程序二维码,扫码后按照提示可体验该应用。
WeLink-We码
华为云的企业WeLink,融合消息、会议、邮件、音视频、小程序等服务,打造企业数字化办公协作平台,实现团队、知识、业务、设备的全面连接。AppCube允许将标准页面或高级页面以小程序(即应用)的方式发布到企业WeLink,提供给企业用户使用。
WeLink-轻应用
AppCube支持将应用发布成WeLink轻应用,提供给WeLink企业用户使用。
微信
可将App中的标准页面和高级页面发布到微信小程序。
下载前端运行包
选择该方式可生成前端运行包。获取包后可运行在如下容器中:
- 华为OneMobile
- 蓝标WeLink
- Web容器(目前Web容器中运行当前只支持高级页面)
如何将应用发布到“我的仓库”
编译应用包时,如果是资产包,您可以选择发布到“我的仓库”,如果是源码包,则默认发布到“我的仓库”,您需要根据不同的场景,选择不同的发布方式发布应用。
- 登录AppCube开发环境,选择进入一个已创建的应用,建议该应用中包含对象、页面、服务编排、脚本等组件。
- (可选)在应用开发页面左侧单击
,选择“设置”,参考表2配置参数。
若需要对应用中部分组件打包,或者需要配置组件发布后在打出的包中是否受保护,则需要执行该步骤。跳过该步骤时,表示发布的资产包中所有组件是受保护的。图2 编译设置表2 “编译设置”参数说明 参数
说明
包类型
应用包的类型:
是否全量包
打包时是否打全量包:
- 全量包:表示对整个应用(包括应用中的各个组件)作为一个整体进行设置打包。
- 增量包:对应用中部分组件进行设置打包。单击“添加应用组件”,在“类别”中选择相应的类别,勾选需要打包的组件。
产权设置 > 签名保护
当选择“资产包”打包时,才会显示该参数。表示是否对打包的组件中敏感内容(例如脚本内容)是否进行加密。
勾选表示加密。在其他环境安装前,包中敏感数据是经过加密的。
产权设置 > 版权信息
当选择“资产包”打包时,才会显示该参数。表示该包的版权信息。
选填项。
产权设置 > 描述信息
当选择“资产包”打包时,才会显示该参数。该包的描述信息。
选填项,建议描述该App提供的功能。
产权设置 > 联系邮件
您可以在此留下当前软件包的问题联系邮箱,若安装过程中出现问题会将联系邮件提示给使用者。
产权设置 > 联系链接
您可以在此留下当前软件包的文档链接,若安装过程中出现问题会将联系链接提示给使用者。
产权设置 > 资产保护 > 保护模式
当选择“资产包”打包时,才会显示该参数。打包数据的保护模式。
- 未受保护
- 只读保护
- 不可见保护
未受保护的资产包在开发环境中安装后,可进行二次编辑;在运行环境安装资产包后,不论保护模式是“未受保护”还是“只读保护”,都不可编辑。
部署策略 > 安装前置脚本
当选择“资产包”打包且打全量包时,该配置页才会显示。表示在安装应用包时,在导入实例化配置数据之前执行的脚本。一般用于预清理数据,避免数据冲突的情况。
您可以选择已有脚本,也可以单击“创建”新建脚本。
部署策略 > 安装后置脚本
当选择“资产包”打包且打全量包时,该配置页才会显示。表示在安装应用包时,在导入实例化配置数据之后执行的脚本。一般用于删除、更新数据等。
您可以选择已有脚本,也可以单击“创建”新建脚本。
部署策略 > 安装时组件的更新策略
当打包的组件中包含系统参数、连接器、Rest操作、数据接入或事件流时,才会显示该参数。例如可设置系统参数随包打包发布后,在升级时遇到新旧数据冲突(唯一索引相同的数据)的数据更新策略。
- 覆盖:当相关组件数据在打包升级到其他环境,发生数据冲突时,会进行覆盖。
- 不覆盖:当相关组件数据在打包升级到其他环境,发生数据冲突时,不会进行覆盖。
默认“不覆盖”。在配置为“不覆盖”的情况下,例如在开发环境修改数据接入的任意配置数据(包括所有图元的配置信息),打包升级到测试或者运行环境,不会覆盖同名的数据接入配置,即在开发环境修改的数据在测试或者运行环境不会生效。
预置数据
当选择“资产包”打包时,该配置页才会显示。
您可以在该页面选择您在应用打包时一起发布的数据。支持按照对象名称打包。单击“添加对象”可设置数据导出条件,选择对象后,在应用打包时,会将该对象的满足条件的数据都打包出来。打包后,在资产包中“refdata”文件夹下可查看到导出的数据文件。
使用该方式前,您需要先清理不需要发布的数据,且导出对象的“基本信息”页必须勾选上“允许API批量访问”,如图3所示。
如果选择“资产包”类型去打包,资产包中包含高级页面时,打包出来的高级页面组件都是受保护的,在其他环境(测试或者运行环境)安装该包后,这些随包打包出的组件只可预览和下载,不可在线编辑、更新、启用或禁用,可在高级页面中直接使用该组件,但是不能定制。
在安装升级源码包时,如果源码包中使用了受保护模式的组件,安装会报错,您需要修改源码包中使用的组件,在环境中上传组件后,才可正常安装。
- 在应用开发页面左侧单击
,选择“编译”进行编译。
编译成功后,页面会显示“编译XXX成功”。
图4 编译资产包 - 在应用开发页面左侧单击
,选择“我的仓库”。
- 配置版本信息,单击“发布”。
如果勾选“压缩高级页面”,表示会对包中所有高级页面涉及的css和js文件进行合并及压缩,这样可以有效降低运行时服务器压力,但从终端浏览器首次访问该站点页面时,访问时间会稍微增加。
默认不勾选。
发布成功后,页面显示“程序包已经被成功上传到我的仓库。”在应用开发页面左侧单击
,可在“已发布”下“资产包”或“源码包”页签下看到发布的应用。可将发布好的源码包或资产包应用发送给需要安装该应用的用户。有两种下载方式可选(具体可参见如何下载发布后的包):
- 以压缩包内容安全的形式(无.csv内容):以txt形式下载软件包。
- 压缩包含有.csv内容:下载内容包含有.csv格式的文件并用Excel打开时,请不要允许打开其他应用程序,以防csv恶意代码注入。
发布应用到我的仓库时,如果提示“重复的元数据对象'AppExchange'名称'xxx'”,导致无法成功发布。
出现该提示的原因是:该应用并非当前租户原生开发,而是从其他租户通过源码包方式安装而来的,而且其他租户已发布过相同版本的该应用。
处理方法:当前租户发布该应用到我的仓库时,设置全新的版本号进行发布,避免版本号和其他租户重复。
- 应用发布后,其他租户可以在开发环境、沙箱环境、运行环境中安装软件包,以便于测试或者使用该软件。
如何安装应用相关操作请参见如何安装已开发好的应用。
发布到蓝标WeLink-We码
具体过程请参考发布WeLink We码应用。
发布到蓝标WeLink-轻应用
具体过程请参考发布WeLink轻应用。
如何发布到微信
具体操作请参考发布成微信小程序。
如何发布到华为OneMobile
- AppCube的小程序包发布到OneMobile后,在OneMobile中访问时,首先要做免登逻辑的处理,这样会获取到AppCube的访问Token,在后续的请求中会携带此Token请求业务数据。
有两种方式实现免登逻辑,若两种方式都已配置,优先方式一的处理逻辑:
- 方式一:开发者自己实现免登接口,即通过在BO或者应用中开发服务编排来获取访问AppCube的Token,再将服务编排封装为免登接口,使用此方式后,可以给每个业务用户设置相应的权限,用权限控制是否可访问AppCube业务接口。
- 方式二:使用AppCube预置的免登逻辑,在承载服务接口的AppCube相应环境管理中心配置免登信息即可。
- 在AppCube相应环境管理中心左侧选择“系统管理 > 统一身份认证设置”。
- 单击“OneMobile”,配置“App Key”和“App Secret”。
表4 “OneMobile”集成配置 参数
说明
App Key
OneMobile中小程序的App Key,请登录OneMobile小程序容器管理后台,在上方选择“应用开发”,左侧选择“我的服务”,获取“appkey”值。
App Secret
OneMobile中小程序的App Secret,请登录OneMobile小程序容器管理后台,在上方选择“应用开发”,左侧选择“我的服务”,获取“appsecret”值。
- 参考应用发布主要流程,开发好应用后,进行编译设置。
- 在应用开发页面左侧单击
,选择“华为OneMobile”。可将App中的标准页面和高级页面发布到华为OneMobile。需要输入华为OneMobile的用户名和密码或扫码进行授权登录。登录华为OneMobile后在页面输入如下参数。发布后在华为OneMobile上可生成应用程序二维码,扫码后按照提示可体验该应用。
- 小程序名称:从下拉框选择要发布到华为OneMobile上的应用名。
- 主页:选择一个发布的页面作为首页,即显示的默认页面。
- 请选择环境类型:承载应用程序服务的AppCube环境类型。分“运行环境”、“沙箱”和“开发环境”。默认为“开发环境”。
- 运行环境/沙箱域名:运行环境/沙箱的环境域名。当“请选择环境类型”配置为“运行环境”或“沙箱”时,该参数才需要配置。
- 运行环境/沙箱租户ID:运行环境/沙箱环境的租户ID,配置后小程序运行时会在请求头自动添加租户ID。获取方法:登录运行环境/沙箱环境,在管理中心左侧导航栏中选择“用户管理 > 公司配置 > 公司信息”,查看“租户ID”。
- 开启调试:是否开启调试功能,当应用在华为OneMobile上运行时,是否开启vConsole调试功能,开启后,可在华为OneMobile该应用上单击“vConsole”查看日志。
- 启用js编译器:当打包的应用内有高级页面时,才会显示该参数。开启后,会将高级页面引用的插件和资源进行JS编译,使代码规范化。
- 单击“发布”,在“发布信息确认”页面检查发布参数,检查无误后单击“确定”。
- 在OneMobile小程序容器管理后台发布小程序。
发布到微信
具体操作请参考发布微信小程序。
如何发布成下载前端运行包
- 参考应用发布主要流程,开发好应用后,进行编译设置。
- 当用户需要下载前端运行包,运行在华为OneMobile、蓝标WeLink或者Web容器中时,在应用开发页面左侧单击
,选择“下载前端运行包”。在弹出的“前端运行包下载”页面配置如下参数,单击“下载”,可生成运行包。
- 运行容器:支持华为OneMobile、蓝标WeLink和Web容器中运行。请根据需要选择容器下载前端运行包。目前Web容器中运行当前只支持高级页面。
- 应用ID:小程序AppID,请登录小程序管理后台获取。
- 主页:打开小程序时,要展示的首页。
- 视图:运行到Web容器时,高级页面分为电脑端和移动端两个视图,选择需要下载的视图。
- 环境类型:提供服务的AppCube环境类型。分“开发环境”、“运行环境”、“沙箱”和“不依赖”(表示运行包不依赖任何环境,包中未调用AppCube任何环境的接口)。默认为“开发环境”。
- 运行环境/沙箱域名:运行环境/沙箱的环境域名。当“请选择环境类型”配置为“运行环境”或“沙箱”时,该参数才需要配置。
- 运行环境/沙箱租户ID:运行环境/沙箱环境的租户ID,配置后小程序运行时会在请求头自动添加租户ID。获取方法:登录运行环境/沙箱环境,在管理中心左侧导航栏中选择“用户管理 > 公司配置 > 公司信息”,查看“租户ID”。
- 开启调试:是否开启调试功能。开启后,在小程序使用过程中展示控制台,方便调试使用;在正式运行环境上建议关闭调试功能。
- 启用js编译器:当打包的应用内有高级页面时,才会显示该参数。开启后,会将高级页面引用的插件和资源进行JS编译,使代码规范化。
- 高级设置 > 导航栏显示方式:导航栏配置,在小程序展示时是否显示导航栏。
- 单击“发布”,在“发布信息确认”页面检查发布参数,检查无误后单击“确定”。
如何下载发布后的包
下载发布后的应用包有两种形式:含有.csv内容和不含.csv内容即文本两种格式的包,两种包内容是一样的,仅内容格式不一样。
- 如图5,单击左边的包管理
,在“已发布”下面选中包后单击“下载”。
- 下载应用的zip包到本地,下载分含有.csv内容和不含.csv内容即文本两种格式的包,两种包内容是一样的,仅内容格式不一样。如图6和图7。
- 可以用该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的软件包名字、描述信息以及作者信息等。
