如何更新应用

我想在这里获悉的是:

  • “什么地方,为什么?” —— 基础结构和工作流程/脚本的简要指南。
  • 如何”更新 gitlab.com/fdroid/fdroiddata 上的元数据”。

目标群体是应用的开发者/发布者以及的”外部感兴趣的用户”他们刚刚注意到有一个新版本的应用,但 F-Droid 系统尚未提供。 “我将如何触发更新?”

@Tverrbjelke: (如果s.o.向我简要介绍,我会花一些时间写下来,我喜欢 F-Droid,但讨厌看到如此简单和必要的问题还没有准备好。:-))

@daithib8:假设一切都设置好了,并且用户熟悉通过 F-Droid 构建……(这些说明采用基于终端的方法。你可以使用 Web 浏览器进行管理,但了解常见源代码网站的布局需要相当长的时间。对于重新设置代码基础并使用多个分支的复杂应用,我也会经常访问源代码网站)。

  • 根据开发人员记下当前版本–线索通常写在元数据中的 CurrentVersion 上方。要快速访问 Google Play 以获取版本名称,请安装 w3m 并添加此功能 gplay() { w3m play.google.com/store/apps/details/?id="$@" ;}到你的 bashrc。然后你就可以做 gplay package-name。如果你发现版本大于元数据中的 CurrentVersion,请立即更新(除非当前激活了任何 Beta 或测试版本)
  • 如果元数据中的 CurrentVersion(特别是在更新检查模式 RepoManifest 的情况下)大于 Google Play 或下载页面上的版本,你可能不需要更新,只需添加一个虚拟构建版本即可,如 Build Version:1.2,34,!not published by the developer,subdir=main
  • 如果你还没有通过构建现有版本来克隆源代码存储库(一旦构建开始,你可以退出)
  • 更改到存储库中: pushd build/package-name
  • la 提醒自己 VCS 类型。让我们假设它是 Mercurial(我几乎不熟悉它)
  • hg revert -a; hg pull; hg up以获取最新代码。记下新的 tag
  • hg log |less 并将单行描述读回上一版本以快速了解最新更改并找到与前面提到的当前版本相对应的修订或标签
  • ` hg up “tag”` 切换到标签或修订版(以确保你正在审核将要构建的内容)
  • hg log -p 例如 libs | build.xml | AndroidManifest.xml | project.properties | res/raw | assets | .gitmodules | .classpath 仔细查看一些重要文件的变化(就更新而言)。如果找到新 jar(或旧 jar 的新版本),则必须对其进行验证,以查看它们是从规范来源中找到的,并且自由开源;首先要尝试打开 jar 以查看类名(unzip -l) 并访问例如 http://central.maven.org/maven2/io/netty/ 在这里你可以找到校验和进行比较。记下用于错误报告的 jar,例如 bugsense 或 ACRA
  • 如果你发现私有文件在元数据中添加了一个虚拟构建版本,并在元数据中添加了一些关于原因的词,请在底部添加 NoSourceSince 并在描述中添加一行以 Status: 开头的说明应用无法更新
  • find . -type f -executable 来定位任何脚本和事物。请注意,ant 还会执行它在 build.xml 和 custom_rules.xml 中找到的任何内容!
  • $find .-name '\*'| xargs file --mime | grep executable|shared-lib 来看看周围是否有预编译器。这些通常会被 F-Droid 检测到,并且通常位于res/raw/ , assets/ 或jni/。
  • 在你的编辑器中打开一些文件,比如 README、许可证,可能是 res/xml 中包含变更日志、project.properties 的文件;如果适用,运行 git submodule。所有这些都将提供有关可能需要从以前的构建中更改哪些内容的线索。很可能不会提供有关 Android 库的信息,因此你必须寻找其他线索,例如在提交日志中。如果一切都失败了: cd ../srclibs/ActionLibrary 并检查最新的代码以找到合适的提交。
  • 必要时编写补丁,尽管元数据中的 sed 通常是更好的选择: mkdir ../../metadata/package-name; hg diff > ../../metadata/package-name.diff
  • popd; vi metadata/package-name.txt添加一个新的构建版本
  • fdroid build -p package-name -t -l -v | less(使用 fdroidserver 中的完成脚本) 请注意, –install 目前不会在版本名称/代码与元数据不同时发出警告。此外,proguard 也没有启用(因为它是一个调试构建);如果由于某种原因没有安装,它也不会警告你。
  • 用调试密钥签名 jarsigner -keystore\~/.android/debug.keystore -digestalg SHA1 -sigalg SHA1withRSA tmp/com.seawolfsanctuary.keepingtracks_20130727.apk androiddebugkey
  • adb install tmp/com.seawolfsanctuary.keepingtracks_20130727.apk -a并看看结果。特别是看一下“关于”屏幕。 如果使用了错误报告库,请确认崩溃报告是可选的(Android Manifest 在这里可以提供帮助)。如果崩溃报告是默认打开的,那么该应用需要一个负面特征。广告同理。
  • 在 AutoUpdateMode 上方添加下一次的任何信息,并查看更新检查模式是否需要任何调整。
  • 快速查看描述和网址,看看是否有任何需要更新的内容
  • 提交新的 srclibs 和 extlibs git commit build/extlibs/volley/* 并且如果 jar 来自新的位置,则包括 source.txt
  • 如果没有什么特别的,直接用 commitupdates 脚本提交。如果没有,请在 git commit 的正文中包含尽可能多的信息

要做的事情很多,但经验表明,保持警惕是个好主意,当然,随着时间的推移,这个过程会越来越快…… 祝你好运!