电子书阅读器上的浏览器 [Day28] 上架到 F-Droid

https://ithelp.ithome.com.tw/upload/images/20210923/20140260uEPQQQtU7X.png

为什麽要介绍上架到 F-Droid 而不是 Google Play Store 呢?关於上架到 Google Play Store 的教学已经多到不用我再多写一篇,大部分人应该也都已经做过,而且即使没有看教学, Google 的网站也做得很平易近人,很容易在它的引导下完成。

什麽是 F-Droid

白话来说,就是个自由开源软件的 Google Play Store 。官网上的简介是这麽写的:F-Droid 是一个可在 Android 平台上安装的自由与开源的应用程序目录,可供你轻松浏览,安装并持续追踪装置上应用程序的更新。

Google 已经有推出了 Play Store,为什麽还会冒出 F-Droid 呢?Google Play Store 虽然方便,但要上架 App 必须要符合它订下的各种规范;而且 Play Store 上的大部分 App 为了赚钱,或是为了保护自己的利益,都不会把程序码释出,而且还会在 App 中塞了一大堆追踪使用者行为的实作,或是到处显示广告。

对於部分比较在意个人隐私,或是在遇到 App 不好用时,更想自己动手东改西改的人来说,如果使用的 App 是 Open Source的,在使用上可以有更大的弹性。另外,有些 Android 设备则是原本就没有内建 Google Play Store,需要有其他比较方便的下载 App 方式。

不过,跟 Google Play Store 上的两三百万个 App 比起来,截至 2021 年 2 月,F-Droid 上只包含了约 3,800 个应用程序。少归少,够用就好,上面还有些软件是 Google Play Store 上无法上架的好用工具,这就待大家自己去挖掘了。

发布 browser 到 F-Droid 的理由

我开发的browser (EinkBro) 是一个专门开发给电子书阅读器使用的浏览器。电子书阅读器大致可以分成封闭式和开放式的系统。封闭式就是出厂时设备上有什麽软件,就只能使用那些软件,无法再自行安装其他的程序。开放式则是可以透过某些方式安装 Android App。但并不是所有的开放式阅读器都支援 Google Play Store,这类的阅读器使用者要自己想办法下载 apk 再安装,或是先找到一个专门在帮忙下载安装 App 的软件,省掉这些麻烦。

EinkBro 刚上线到 Google Play Store 时,最常被问的就是,有没有上架到 F-Droid,以及是不是可以支援 Reader Mode。所以,在完成 Reader Mode 之後,也花了点时间把它上架到 F-Droid,让更多人可以方便地安装和升级。

如何进行

为了让开发者可以顺利的上架 App 到 F-Droid 上,F-Droid 官方已经有写了蛮完整的文件,详细方法可以看一下下面两篇文章。

https://f-droid.org/zh_Hant/docs/Submitting_to_F-Droid_Quick_Start_Guide/

https://dev.to/sanandmv7/how-to-publish-your-apps-on-f-droid-2epn

再来会介绍我操作的步骤和一些注意事项。这些内容可以缩短 merge request 时跟 F-Droid 维护者来来回回的修正。我大约花了一周才完成,有兴趣的话,可以点文章最後面的 merge request 来看一下血̸泪̸史̸内容。

  • F-Droid 的程序码都是放在 Gitlab 上,所以需要先建立自己在 Gitlab 上的帐号
  • git clone fdroidserver 和 fdroiddata 这两个 repo
  • 在 fdroiddata 中,加入自己 fork 好的 repo 为 remote branch
  • 在 /metadata/ 目录中,建立属於自己 app 的 yml 描述档。以 EinkBro 来当例子的话,我建立的文件是 ,内容如下

https://ithelp.ithome.com.tw/upload/images/20210923/20140260Ofh94oMw69.png

官方文件有写到,可以利用 fdroid import --url github_repo app_dir 建立 yml 档。但我一直试不成功。所以後来是抓 template 下来改的。抓 template 的方式是:
wget -O metadata/info.plateaukao.einkbro.yml https://gitlab.com/fdroid/fdroiddata/raw/master/templates/app-full

template 中的栏位很多,但其实只要填我上面的那些栏位就行了。其他的资讯,F-Droid maintainer 会叫你写在 fastlane 的相关文件里。

在自己的 App Github repo 建立 fastlane 的相关讯息。fastlane 要写哪些资料可以参考我在文章最後附的连结,主要是类似 Google Play Store Listing 中要填写的资料。

https://ithelp.ithome.com.tw/upload/images/20210923/20140260csuVA5FZrR.png

  • 将版本的 changelog 写在特定的档案,然後设定在 yml 档案中,让 F-Droid 可以读得到。
  • 将使用到的权限要求写在 fastlane 的文件中, 并解释用途为何。

後记

顺利的话,在Gitlab Merge Request 中跟 F-Droid maintainer 来回沟通几次,应该对方就会帮你 merge 描述档到 fdroiddata repo 中。接下来,大约要等 2 到 4 天才会看到自己的 App 出现在 F-Droid 网站上或是 F-Droid App 中。

虽然整个流程没有像 Google Play Console 那麽方便,审核也是人工的,而且 deployment 要等的时间是以天来计算,但可以因此造福到不同族群的使用者,还是件好事。

相关连结

EinkBro@F-Droid

Merge Request on Gitlab

Fastlane Data Example for EinkBro


<<:  Day 13 - Add Binary

>>:  语法糖小测验: Scope functions & Extension function

#14 JS: create a calculator by prompt()

Final Calculator Design <!DOCTYPE html> <...

#19数据上的各种距离(4)

tags: tags: 2021IT 杰卡德相似系数(Jaccard Similarity Coef...

【ModernWeb'21 VIRTUAL EVENT 议程整理】(非官方)

ModernWeb 是台湾网站技术人的年度盛会,有许多 Web 技术高手分享经验, 今年同样采线上的...

成员 19 人:

撰写中 在求发展的道路上,又过了一日...... 这时,成员 19 人。 ...

onnx - Ubuntu18.04 yolov3 tiny 转 onnx 使用 Python 3.6.9

onnx - Ubuntu18.04 yolov3 tiny 转 onnx 使用 Python 3....