文档(v9)
常见问题

如果本页面没能回答您的疑问,您可以去issues 区 (opens in a new tab)或 QQ 群 729013783 提问,或给我们发邮件

业务问题

热更新究竟能否上架?

您可能听说过各种说法,但大量实践表明,热更新目前能够顺利上架 AppStore 和其他各种应用市场。唯一需要注意的是,在审核期间请不要发布热更新,不要让审核人员看到各种更新相关的提示和弹窗,即可顺利通过。


是否可以在海外使用?

可以的,国内外都有高速 CDN 节点。


哪些修改可以热更新?哪些不能?

我们把对应用的修改分为两类:

  • 不可热更新 —— 原生修改,即所有需要编译后才能生效的修改:

    • 任何在 iOS 或者 Android 目录中的修改、增删。
    • 任何含有原生代码的第三方组件的更新、修改。
  • 可以热更新 —— 非原生修改,即所有无需编译,刷新即可生效的修改:

    • js 代码修改,包括第三方纯 js 组件的更新、修改。
    • 可以在 js 代码中 require/import 的资源文件,例如图片。

需要注意的是,即便资源文件可以热更新,但这些热更新后的资源文件会以file://协议的形式提供访问,某些读取资源文件的第三方可能并不支持file://协议。


我是否可以搭建自己的热更新服务?

你可以单独使用本组件的原生部分(不包括 js 模块)和命令行工具中的bundlediffdiffFromIpadiffFromApk四个功能。

这些功能都不会使用我们的热更新服务,也无需注册或登录账号。但你可能要编写自己的 js 模块来与不同的热更新服务器通讯。

如果您有兴趣搭建私有云服务,可以邮件联系我们


热更新成功完成,但是重启后又回滚了是怎么回事?

可以正常更新,但是重启后回滚,一般有两种可能的情况:

如果你确定上述两个步骤都正确无误,请在issues 区 (opens in a new tab)给我们留言反馈。


热更新报错:“热更新已暂停,原因:编译时间戳与服务器记录不一致。”

当您每次编译产生一个原生包时,其中都会记录一个编译时间戳buildTime(可以使用pushy parseIpa a.ipa或是pushy parseApk a.apk命令来查看)。如果您需要把这个包发给客户并希望使用热更新功能,那么就需要使用 upload 命令来上传到我们的服务器,而服务器端会记录这个包的版本号和编译时间戳以便后续比对记录。

举例来说,假如我已经上传了一个 1.0 版本原生包(1A包),但后来由于种种原因我又重新打包了(1B包)但没有上传,这两个包有相同的版本号,但会有不同的编译时间戳。此时有几种可能的情况:

  1. 我忘记上传过1A包1B包没有实质更改且还没有客户安装。此时应当放弃1B包,只让客户下载安装1A包
  2. 我忘记上传过1A包,又生成了1B包且已有客户安装。此时1A包客户可以获取热更新,1B包客户无法获取热更新。要使两批客户都能获取热更新,要么想办法通知1B包客户装回1A包,要么重新发布一个高于1.0版本的原生包且上传到 pushy 服务器,并删除1.0版本的记录,此时1A包1B包的客户都会收到版本过期需要下载新版本的通知。
  3. 我知道上传过1A包,但我有原生方面的修改需要打了一个新的1B包。此时若将1B包上传到 pushy 服务器会提示版本验证错误,因为已经存在有相同的1.0版本。所以需要首先更改原生版本号再次打包,并首先将此新版本上传到服务器,然后分发给客户。这样1.0版本新版本可以并存且都可以获得热更新。

请谨记,任何时候生成原生包,请 1)先修改原生版本号,2)并上传到 pushy 服务器,才可以正常获得热更新。

如果您是高级版专业版客户,也可以考虑在管理后台的应用设置中启用忽略编译时间戳。此选项仅对比版本号,不校验时间戳,可提供更宽容的热更策略,但可能消耗更多流量,适合需要管理多个分发渠道的客户。


付费问题

我应该选择哪个业务版本呢?

其实完全无需考虑,先从最高配额的专业版开始体验(新用户注册验证通过后,将自动获得 7 天专业版试用),各个版本的使用流程完全一致!当试用时间到期后,若当前版本的配额不能满足需求,可随时补差价升级到更高配额的版本。升级自动按天数计算差价,绝无额外费用。

目前仅有一项额外的付费专用功能,即忽略编译时间戳设置(在管理后台的应用设置中),此选项仅对比版本号,不校验时间戳,可提供更宽容的热更策略,但可能消耗更多流量,适合需要管理多个分发渠道的客户。此功能目前仅支持高级版专业版


我可以试用付费版本先评估一下效果吗?

新用户注册验证通过后,将自动获得 7 天专业版试用。如您需要更长的评估时间,可将注册用户名、邮箱、公司(或个人)名称发送至 hi@charmlot.com ,标题注明“pushy 评估试用延长”,我们会为您酌情延长评估时间。


配额具体如何计算?

配额主要分为 3 种:

  1. 可创建的应用数量,注意 iOS 和 Android 版本记做不同的应用。
  2. 原生包数量及大小。原生包指通过pushy uploadIpa/uploadApk命令上传到 Pushy 服务器上作为热更新起始版本的完整 apk/ipa 安装包。
  3. 热更包数量及大小。热更包指通过pushy bundle所命令生成的 ppk 文件。注意这不是用户实际下载的更新文件,用户下载的是通过比对生成的增量 diff 文件(比 ppk 文件要小得多)。

这里有一些对包大小的优化建议可供参考。

以上 2、3 条为针对每个应用单独计算。具体配额和费用由于运营成本可能会有调整,请以价格表页面为准。已购买的用户在续费前不受调整影响。


达到配额后还可以正常使用吗?

当应用、原生包、热更包数量达到配额限制后,您将无法执行相应的新增操作。但用户端仍可正常检查更新,下载已发布的更新。您可选择升级到更高配额,或是通过删除已不再使用的应用、原生包、热更包来使数量降低到配额以内,以便继续执行新增操作。
若原生包、热更包大小超过限额,则会导致上传失败。您可以选择升级到更高配额,或是想办法进行精简优化


我可以单独升级某项配额吗?

我们暂时无法为某个单项配额提供升级选项,请选择更高版本的配额。如果专业版本配额仍然不能满足需求,请通过邮件 hi@charmlot.com 与我们联系,我们将根据您的个性化需求为您定制方案。


付费业务到期后不续费,现有应用还能否正常使用?

到期后按免费版额度执行。如您现有应用已超出配额,则必须通过删除操作降低到配额以内,方可执行新的操作(如创建应用,上传热更等),但不影响用户获取之前已发布的热更。


如何获取付费的专人技术支持?

请将您的用户名和订单截图发送至 hi@charmlot.com ,同时提供您希望的技术联系方式(QQ、微信等),核实后会有技术专员添加您为好友。


如何开具发票?

请将具体开票需求发送至 hi@charmlot.com ,并附上注册邮箱和订单截图。我们默认会回复普通电子发票到注册邮箱,类目为软件服务。如需指定接受邮箱或手机,请在邮件正文中注明。如需要邮寄纸质发票请注明邮寄地址,邮费为到付。


可以使用银行转账付款吗?

可以的。请对照价格表,将对应版本的款项转账至:

公司名称武汉青罗网络科技有限公司
开户行名称浙江网商银行
账号8888888048825564

转账完成后请截图发送至 hi@charmlot.com ,并写明注册邮箱,我们将在一个工作日内开通对应服务。