Skip to content

Repository files navigation

stackbricks-gradle-plugin

wakatime

添加依赖

方法1(推荐)

Important

强烈建议遵循Github官方文档进行部署。

  • 在项目根目录的setting.gradle文件中添加如下内容:
dependencyResolutionManagement {
    repositories {
        maven {
            url = uri("https://maven.pkg.github.com/aquamarine5/stackbricks-gradle-plugin")
            credentials {
                username = project.findProperty("gpr.user") ?: System.getenv("GPR_USERNAME")
                password = project.findProperty("gpr.key") ?: System.getenv("GPR_TOKEN")
            }
        }
    }
}

Warning

请确保gpr.usergpr.key的值已经在gradle.properties配置,或通过环境变量配置。

  • 随后在build.gradle文件中添加如下项:
plugins {
    id "org.aquamarine5.brainspark.stackbricks-gradle-plugin" version "$latest_sgp_version"
}

Note

目前最新版本为2.2.9,请将$latest_sgp_version替换为最新版本号,详见

方法2

Caution

暂时不打算对Gradle Plugin Portal源进行支持,可用的版本已明显落后最新版本,请不再使用此方法添加。

  • 直接使用Gradle Plugin Portal源
  • setting.gradle内,Gradle Plugin Portal源已默认启用(gradlePluginPortal()),无需再自行配置。
  • build.gradle文件添加以下项:
plugins {
    id "io.github.aquamarine5.stackbricks-gradle-plugin" version "$latest_sgp_version"
}

Note

目前最新版本为1.2此源目前已不再更新。使用时请将$latest_sgp_version替换为最新版本号,详见

Tip

两种源的id不相符,但包内容一致,原因详见Gradle Plugin Portal对于包命名的要求

使用

  • 目前stackbricks-gradle-plugin以及配套Stackbricks支持七牛云CDN服务。
  • build.gradle文件加入以下配置信息:
stackbricksConfig {
    possibleConfigurationPaths = [
            new PossibleConfigurationPath("your host", "stackbricks_manifest.json"),
            // ... and more
    ]
    changelog = "lovely lonely"
    forceInstallLessVersion = 2006_12_15
    requiredManifestVersion2MigrateForceInstall = true
    qiniuConfig {
        accessKey = project.findProperty("qiniu.accessKey")
        secretKey = project.findProperty("qiniu.secretKey")
        bucket = "$bucket"
        referer = project.findProperty("qiniu.referer") ?: ""
    }
}
  • requiredManifestVersion2MigrateForceInstall: Boolean
    用于标识在更新V2版本清单文件时已被弃用的forceInstall的值。由于forceInstall已经在新版本V3清单文件中被弃用, 并使用forceInstallLessVersion替代。若此值为true,则表明在更新清单文件的同时,将forceInstall值设置为true接受此清单文件的旧版本应用会被强制更新,即使你没有显式的设置强制更新,反之则复制原清单文件的值。

Note

如果七牛云的存储空间未设置Referer防盗链设计,referer传入null或空字符串即可。
host值不需要http(s)://前缀。
关于七牛云的对象存储服务,详见

发布

gradle uploadApkByQiniu
  • 运行uploadApkByQiniu命令后会自动执行assembleRelease命令,生成APK文件,并上传到七牛云,更新Stackbricks配置文件。

Important

确保build.gradle正确配置了针对buildTypes.release.signingConfig的签名信息,避免生成app-release-unsigned.apk导致上传失败。

配置文件

Note

对于 Stackbricks Manifest 并没有指定的命名要求,但推荐使用括号后的文件名以规范命名。自v3软件趋于稳定后也可以使用stackbricks_manifest.json名称命名。

v3 (stackbricks_manifest.jsonstackbricks_manifest_v3.json)

{
    "manifestVersion": 3,
    "latestStable": {
        "changelog": "<string>",
        "downloadUrl": "<string, only file_name>",
        "forceInstall": "<boolean, DEPRECATED ONLY FOR COMPATIBILITY, USE forceInstallLessVersion FIELD>",
        "packageName": "<string>",
        "releaseDate": "<long as Instant>",
        "versionCode": "<int>",
        "versionName": "<string>",
        "forceInstallLessVersion": "<long>" //After 2.4.12, it changed from int to long as bugfix
    },
    "latestTest": {
        "changelog": "<string>",
        "downloadUrl": "<string, only file_name>",
        "forceInstall": "<boolean, DEPRECATED ONLY FOR COMPATIBILITY, USE forceInstallLessVersion FIELD>",
        "packageName": "<string>",
        "releaseDate": "<long as Instant>",
        "versionCode": "<int>",
        "versionName": "<string>",
        "forceInstallLessVersion": "<long>" //After 2.4.12, it changed from int to long as bugfix
    }
}

从v2更新

  • 更新stackbricks-gradle-plugin插件版本至2.1.0及以上,Stackbricks更新至2.3.1及以上。
  • forceInstall值被弃用,被forceInstallLessVersion: Long替代,在适用于v3清单文件的程序解析过程中,forceInstall值会被忽略。
  • forceInstallLessVersion用于指示当程序版本低于此值时才会被标记为需要强制更新,当无版本需要强制更新时,设置为-1
  • 【2.1.1版本后加入】在gradle文件配置时加入了requiredManifestVersion2MigrateForceInstall项,用于标识在更新V2版本清单文件时已被弃用的forceInstall的值,值若为true,则表明所有应用版本还在使用v2清单文件的程序会被强制更新,即使你没有显式的设置强制更新。

v2 (stackbricks_manifest_v2.json)

{
    "manifestVersion": 2,
    "latestStable": {
        "changelog": "<string>",
        "downloadUrl": "<string, only file_name>",
        "forceInstall": "<boolean>",
        "packageName": "<string>",
        "releaseDate": "<long as Instant>",
        "versionCode": "<int>",
        "versionName": "<string>"
    },
    "latestTest": {
        "changelog": "<string>",
        "downloadUrl": "<string, only file_name>",
        "forceInstall": "<boolean>",
        "packageName": "<string>",
        "releaseDate": "<long as Instant>",
        "versionCode": "<int>",
        "versionName": "<string>"
    }
}

从v1更新

  • 更新stac

v1 (stackbricks_config_v1.json)

{
  "@version": 1,
  "@type": "stackbricks-config",
  "latest": {
    "versionCode": "<int>",
    "versionName": "<string>",
    "downloadUrl": "<string>",
    "releaseDate": "<long as Instant>",
    "packageName": "<string>"
  }, // This JSONObject as a StackbricksVersionData
  "versions": [
    "<StackbricksVersionData>"
  ]
}

About

适用于Stackbricks(一个在Android端的自动更新服务框架)的发布更新安装包的Gradle插件 Gradle plugin for publishing update installation packages for Stackbricks (an automatic update service framework on the Android side).

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages