Compare commits

...

3 Commits

5 changed files with 81 additions and 6 deletions

View File

@@ -111,6 +111,38 @@ android {
println '[ WinBoLLStudio ] : The APKOutputPath property is not defined in winboll.properties, please configure APK output folder first.'
} else {
/// WINBOLL 主机的 APK 发布和源码管理操作 ///
// Stage Debug 编译前清理任务
// 当目标应用包文件已经存在时,先删除旧有的应用包文件,再执行 assembleStageDebug 编译。
if(variant.flavorName == "stage" && variant.buildType.name == "debug") {
String szCfgVersionName = "${versionName}"
String[] szCfgListTemp = szCfgVersionName.split("-")
String szCfgShortVersionName = szCfgListTemp[0]
String szCfgCommonTagAPKName = project.rootDir.name + "_" + szCfgShortVersionName + ".apk"
File cfgOutTagDir = new File(fWinBoLLStudioDir, "/" + project.rootDir.name + "/${variant.buildType.name}/")
def cleanOldStageDebugApkTask = tasks.register("cleanOld${variant.name.capitalize()}Apk") {
group = 'build'
description = '删除旧有的 Stage Debug 应用包文件(存在时),然后才执行编译。'
doLast {
[szCfgCommonTagAPKName, outputFileName].unique().each { String apkName ->
File oldApkFile = new File(cfgOutTagDir, apkName)
if(oldApkFile.exists()) {
println "[ WinBoLLStudio ] : Delete old APK -> " + oldApkFile.getAbsolutePath()
if(!oldApkFile.delete()) {
throw new GradleException("Can not delete old APK : " + oldApkFile.getAbsolutePath())
}
}
}
}
} // tasks.register(
// 编译任务先执行清理旧应用包任务
variant.getAssembleProvider().configure {
dependsOn cleanOldStageDebugApkTask
}
} // if(stage && debug)
variant.getAssembleProvider().get().doFirst {
/* 后期管理预留代码 */
} //doFirst {

39
AGENTS.md Normal file
View File

@@ -0,0 +1,39 @@
# AGENTS.md
## 编译
使用以下命令编译项目(所有开发构建均使用此命令):
```bash
./gradlew assembleBetaDebug
```
## 编译后上传
- 每次 `./gradlew assembleBetaDebug` 编译成功(BUILD SUCCESSFUL)后,紧接着执行上传脚本:
```bash
../upload_APK_To_ALiYunPan.sh
```
- 上传失败不阻塞流程,但必须向用户提示失败原因。
## 开发约束
- 只允许修改 `winboll/` 目录(含 `src/`、`build.gradle` 等)和 `.winboll/` 目录(构建/发布脚本、`*_build.gradle` 模板等)进行开发。
- 不要改动 `aes/`、`appbase/`、`libaes/`、`libappbase/` 及根目录配置文件。
## 源码提交(Git 注释)工作流
当用户说「提交一下源码」时,按以下两步处理,未经确认绝不提交:
1. **生成注释预览方案(只读,不改动仓库)**
- 执行 `git status --short`、`git diff` 查看全部修改内容,必要时用 `git diff --staged`、`git log --oneline -10` 参考历史注释风格。
- 根据实际修改内容撰写提交注释(中文简述为主,发布类沿用 `<winboll>...` 风格)。
- 向用户输出一份提交方案预览:包含**注释全文**、**将要提交的文件清单**、**不提交的文件及原因**(如构建产物、临时文件),交由用户审查。
2. **用户回复「确定」后才实际提交**
- 只 `git add` 预览中列出的文件,不夹带无关改动。
- 执行 `git commit`,提交注释必须与用户确认过的完全一致。
- 未经用户明确「确定」,不得执行 `git commit`;用户修改注释后需重新给出预览并再次等待确认。
- 本工作流默认只提交到本地,`git push` 需用户另行指示。

4
opencode.json Normal file
View File

@@ -0,0 +1,4 @@
{
"$schema": "https://opencode.ai/config.json",
"model": "opencode/mimo-v2.6-flash-free"
}

View File

@@ -100,12 +100,12 @@ dependencies {
implementation 'androidx.biometric:biometric:1.1.0'
// WinBoLL库 nexus.winboll.cc 地址
api 'cc.winboll.studio:libappbase:15.21.+'
api 'cc.winboll.studio:libaes:15.21.+'
//api 'cc.winboll.studio:libappbase:15.21.+'
//api 'cc.winboll.studio:libaes:15.21.+'
// 备用库 jitpack.io 地址
//api 'com.github.ZhanGSKen:libappbase:appbase-v15.20.33'
//api 'com.github.ZhanGSKen:libaes:aes-v15.20.16'
api 'com.github.ZhanGSKen:libappbase:appbase-v15.21.+'
api 'com.github.ZhanGSKen:libaes:aes-v15.21.+'
api fileTree(dir: 'libs', include: ['*.jar'])
}

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
#Tue Jul 21 09:55:56 HKT 2026
#Fri Sep 25 16:15:27 HKT 2026
stageCount=1
libraryProject=
baseVersion=15.21
publishVersion=15.21.0
buildCount=0
buildCount=12
baseBetaVersion=15.21.1