linsui

Results 708 comments of linsui

感谢 https://github.com/realth000/tsdm_client/blob/ea6d3b2d68a523dd1020be8cfea8fce3875e6c8c/.github/workflows/test_build.yml#L126 这里加上版本和 --locked 比较好 `cargo install [email protected] --locked` 不过应该不影响可重复构建。 https://github.com/realth000/tsdm_client/blob/master/android/app/build.gradle#L36 这里用的 ndk 是 r27,https://github.com/realth000/tsdm_client/blob/ea6d3b2d68a523dd1020be8cfea8fce3875e6c8c/.github/workflows/test_build.yml#L119 这里最好也用同一个版本。 F-Droid 的每个 abi 要有不同版本号,需要这样设置一下 https://github.com/nfcim/nfsee/blob/master/android/app/build.gradle#L105

还有两个问题,一个是应用内更新,这个是自动检查更新的吗?F-Droid 要求自动检查更新要默认关闭。另一个是可重复构建,我需要你的 apk 测试。这些问题解决之后就等下一个版本啦。 https://gitlab.com/linsui/fdroiddata/-/commit/1a0a79417ca411f0a5f5dea5963d4217936a81e8 这是目前的 F-Droid metadata。

手动的就没问题。可重复构建有新版本之后从 release 下载 apk 了,现在需要从 master 构建的 apk。

assets/flutter_assets/packages/flutter_avif_web/web/avif_decoder.wasm, assets/flutter_assets/packages/flutter_avif_web/web/avif_encoder_bg.wasm, assets/flutter_assets/packages/quill_native_bridge_linux/assets/xclip 这三个文件 Android 上需要吗?我构建的时候都删掉了。

这是目前的 diff [tsdm_client-arm64_v8a.apk.html.zip](https://github.com/user-attachments/files/18136636/tsdm_client-arm64_v8a.apk.html.zip)

其中很大一部分来自 gitsumu。对于 flutter 它记录了分支名,所以检出特定版本会导致出现 user-branch。而对于应用仓库 https://github.com/realth000/gitsumu/blob/b3a602b8fdf1067c3b8663c2d1ded45d0204f9b3/lib/src/gitsumu.dart#L125 这个命令得到的提交数和分支以及检出的提交都没关系,是整个仓库里的提交数,这导致只要仓库里有新提交这个值就会变。

flutter 的问题还好解决,checkout 不行但 reset 可以让 branch 是 stable。仓库提交数就可能不能这么解决了,即使主分支 reset 了,其他分支的提交也会计入。这个值和仓库状态有关但和检出的提交或者分支无关。

> 如果在上游里把commit数改为仅计算当前分支累积提交次数,是否能认为后半部分问题就解决了? 是的,只要这个值是可复现的就行。 我目前还是在尝试让整个应用实现可重复构建,这样就会直接发布你签名的 apk。如果不能实现可重复构建那么这些就都不是问题了,那么 > 如果fdroid构建的版本里去除上述内容,可否在相同页面里加一个当前下载渠道是fdroid的信息?这会违反fdroid的政策不? 这个没问题 > fdroid构建出的apk签名不一样的话,也没法覆盖安装(升级)github 上编译的版本,是不是把应用内更新功能去掉(或者禁用)比较好,反正下载了也装不上。 应用内更新需要默认禁用,可以加一个启动屏幕询问用户是否想要应用内更新。 目前可重复构建的问题解决了上面构建信息不一致的问题之后,libapp.so 应该就是相同的了,但是还要解决那三个打包在 apk 里的二进制文件的问题。除此之外,avif 库不知道为什么也有点差异。

F-Droid 的可重复构建不能这样自动回退,IzzySoft 的存储库倒是使用了类似的逻辑,在不能可重复构建的时候也会发布上游的二进制。 F-Droid 的流程是,如果采用可重复构建,那就只能发布上游 apk,如果不采用可重复构建,那就自己签名。采用可重复构建的应用如果新版本没法可重复构建就不能发布,直到可重复构建通过才行。因为不同签名的应用之间不能互相更新所以不能更换签名。F-Droid 发布的应用都要经过 F-Droid 构建,可重复构建只是采用了上游的签名。 于 2024年12月20日 GMT+08:00 20:18:21,realth000 ***@***.***> 写道: >哦哦,那我把gitsumu导致的计算本仓库总提交数的问题修一下改成当前分支的。 >后半部分记录flutter的信息的问题可能要按照之前说的,麻烦在fdroid的构建流程里reset过去而不是checkout。 > >多的那三个二进制我刚刚才发现apk里有,只用libchecker看不到。 >这三个文件应该是avif和native_bridge这两个包默认当成所有平台的assets了,三个文件加起来快3MB了,很浪费空间。 > >正好这两个包都是submodule引入的,好改: >* 目前不打算支持web平台,avif里那个web文件夹直接从submodule里删掉。 >* quill_native_bridge目前用不到,应该能直接从依赖里去掉。 > >至于应用内更新,功能如之前所说只是一个需要用户手动点击才触发的检测github release里最新版,然后下载到download目录里的功能,这样的功能加不加询问弹窗效果一样吧?都要用户手动触发。 >...

感谢 :+1: