為什麼要介紹上架到 F-Droid 而不是 Google Play Store 呢?關於上架到 Google Play Store 的教學已經多到不用我再多寫一篇,大部分人應該也都已經做過,而且即使沒有看教學, Google 的網站也做得很平易近人,很容易在它的引導下完成。
白話來說,就是個自由開源軟體的 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 (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 來看一下血̸淚̸史̸內容。
官方文件有寫到,可以利用 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 中要填寫的資料。
順利的話,在Gitlab Merge Request 中跟 F-Droid maintainer 來回溝通幾次,應該對方就會幫你 merge 描述檔到 fdroiddata repo 中。接下來,大約要等 2 到 4 天才會看到自己的 App 出現在 F-Droid 網站上或是 F-Droid App 中。
雖然整個流程沒有像 Google Play Console 那麼方便,審核也是人工的,而且 deployment 要等的時間是以天來計算,但可以因此造福到不同族群的使用者,還是件好事。
Fastlane Data Example for EinkBro