BioforestChain / plaoc

bfs base runtime app for modern os
Apache License 2.0
1 stars 0 forks source link

bundle Design Discuss #31

Closed waterbang closed 1 year ago

waterbang commented 2 years ago
  1. 关于打包生成:https://shop.plaoc.com/KEJPMHLA/appversion.json

现在目前基本是如下结构:


  {
    "data": {
        "version": "1.4.0",
        "bfsAppId":"KEJPMHLA",
        "icon":"https://shop.plaoc.com/KEJPMHLA/vite.svg",
        "files": [
            {
            "url": "https://shop.plaoc.com/KEJPMHLA/Beta.bfsa",
            "type":"Beta",
            "size": 2378752,
            "sha512": "81af38b6836af276b84ee4b51ceb056881a0cbc2f854eba7389acf12c256f9d95f7ad791456dc66b28096288c1abe06a6cd6254c8048c1d1ec1ad4d21f08bc73",
            "notes": "扣1送地狱火",
            "name": "2023年春节版本",
            "date": "xxx"
            },
            {
            "url": "https://shop.plaoc.com/KEJPMHLA/Release.bfsa",
            "type":"Release",
            "size": 2378752,
            "sha512": "81af38b6836af276b84ee4b51ceb056881a0cbc2f854eba7389acf12c256f9d95f7ad791456dc66b28096288c1abe06a6cd6254c8048c1d1ec1ad4d21f08bc73",
            "notes": "扣1送地狱火",
            "name": "2023年春节版本",
            "date": "xxx"
            }]

    },
    "errorCode":0,
    "errorMsg":"success"
  }
waterbang commented 2 years ago

@kingsword09 增加bfsAppIdicon 字段的原因。 bfsAppId:是为了移动端需要判断是否是相同应用而添加的 icon: 是为了.bfsa还没解压,获取不到app的图标,那么在第一次下载的时候,动画就会缺失APP图标

kingsword09 commented 2 years ago

@kingsword09 增加bfsAppIdicon 字段的原因。 bfsAppId:是为了移动端需要判断是否是相同应用而添加的 icon: 是为了.bfsa还没解压,获取不到app的图标,那么在第一次下载的时候,动画就会缺失APP图标

@waterbang icon的名字如何获取呢,通过bfsa-metadata.json获取吗?用户能够在app商店中修改应用图标吗?

kingsword09 commented 2 years ago

@waterbang files 字段在打包的时候怎么获取其它包,比如: 现在打包 beta 包,我如何拿到 release 包,是去商城下载下来吗

kingsword09 commented 2 years ago

@waterbang files 字段在打包的时候怎么获取其它包,比如: 现在打包 beta 包,我如何拿到 release 包,是去商城下载下来吗

或者商城有存下来相关信息?或只需要一个接口就可以获取?因为 size 字段和 sha512 字段都需要有包才能处理,或者直接缓存的数据信息

waterbang commented 2 years ago

@kingsword09

  1. icon的名字,在bfsa-metadata.json获取,拿到icon之后,复制到KEJPMHLA根目录,固定格式:https://shop.plaoc.com/KEJPMHLA/xxx.svg。用户如果要在app商店修改应用图标,是app商店的逻辑,跟打包无关。
  1. files 打包需要填充信息的时候,需要到商城判断是否有https://shop.plaoc.com/KEJPMHLA/appversion.json这个文件 这个文件也就相当于迭代缓存,有几种情况:

以下假设version都相同

  1. 假如用户打包的是Beta版本,那么如果appversion.json里如果有其他版本的,直接复制他们的信息拼接。
  2. 假如用户打包的是Beta版本,而appversion.json已经有Beta版本版本了,那么直接覆盖,以最新的为主。
  3. 如果用户第一次打包就直接生成appversion.json

如果打包的version比app商城的新,那么直接生成新的appversion.json,丢弃商城的appversion.json

kingsword09 commented 2 years ago

@waterbang

  1. appversion.json的version字段是不是只显示release包版本?
  2. 如果开发者处于第一次发包,未发布release包,而是 beta 包、dev包等,version 如何显示?
  3. files数组排序问题,是最新的包放在第一个吗?
  4. files如果存在多种包,比如 releasebetaalphadevbus等多种包,如果只保留最新三个包,release的版本是旧版本,不在前三,那么是否该保留一个位置给release包?
waterbang commented 2 years ago

修改notes为releaseNotes等字段 新增name: 原因,安装时需要有name和icon


  {
    "data": {
        "version": "1.4.1",
         "name": "AR扫雷",
        "bfsAppId":"KEJPMHLA",
        "icon":"https://shop.plaoc.com/KEJPMHLA/vite.svg",
        "files": [
            {
            "url": "https://shop.plaoc.com/KEJPMHLA/KEJPMHLA.bfsa",
            "browserlist":"[chrome 90,safari 11]",
            "developement": false,
            "size": 2378752,
            "sha512": "81af38b6836af276b84ee4b51ceb056881a0cbc2f854eba7389acf12c256f9d95f7ad791456dc66b28096288c1abe06a6cd6254c8048c1d1ec1ad4d21f08bc73"
            }],
                "releaseNotes": "扣1送地狱火",
            "releaseName": "2023年春节版本",
            "releaseDate": "xxx"

    },
    "errorCode":0,
    "errorMsg":"success"
  }