<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Android on KDE Blogs</title><link>https://blogs.kde.org/categories/android/</link><description>Recent content in Android on KDE Blogs</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Tue, 31 Mar 2026 18:04:10 +0300</lastBuildDate><atom:link href="https://blogs.kde.org/categories/android/index.xml" rel="self" type="application/rss+xml"/><item><title>Farewell, Binary Factory! Add Craft Jobs for Your Apps to KDE's GitLab Now</title><link>https://blogs.kde.org/2024/01/30/farewell-binary-factory-add-craft-jobs-your-apps-kdes-gitlab-now/</link><pubDate>Tue, 30 Jan 2024 00:00:00 +0000</pubDate><author>Ingo Klöcker</author><guid>https://blogs.kde.org/2024/01/30/farewell-binary-factory-add-craft-jobs-your-apps-kdes-gitlab-now/</guid><description>&lt;p&gt;This is the final update on the migration of the Craft jobs from &lt;a href="https://binary-factory.kde.org"&gt;Binary Factory&lt;/a&gt; to &lt;a href="https://invent.kde.org"&gt;KDE's GitLab&lt;/a&gt;.
Since the &lt;a href="https://blogs.kde.org/2023/12/20/gitlab-microsoft-store"&gt;last blog&lt;/a&gt; the last missing pieces have been put in place.&lt;/p&gt;
&lt;p&gt;We now build a KF6 runtime which is used for the &lt;a href="https://userbase.kde.org/Tutorials/Flatpak#Nightly_KDE_Apps"&gt;nightly flatpaks&lt;/a&gt; of many of the apps that will be part of &lt;a href="https://kde.org/announcements/megarelease/6/rc1/"&gt;KDE's Megarelease 6&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Moreover, additionally to signing the sideload APPX packages (see &lt;a href="https://blogs.kde.org/2023/12/20/gitlab-microsoft-store"&gt;previous blog&lt;/a&gt;) the Windows Craft jobs now also sign the NSIS (&lt;code&gt;.exe&lt;/code&gt;) installers and all binaries included in the installers. This completes the port of the Windows Craft jobs from Binary Factory to KDE's GitLab.&lt;/p&gt;
&lt;p&gt;Now is the time to add GitLab jobs to your project for builds previously run on Binary Factory. The 24.02 release branch has been cleared for using our signing and publishing services, so that you can prepare builds of AppImages, Flatpaks, Android packages, macOS installers, and Windows installers for the 24.02 release of your project, or any other release if you release independent of KDE Gear. To enable those builds add one or more of the following &lt;a href="https://invent.kde.org/sysadmin/ci-utilities/-/tree/master/gitlab-templates?ref_type=heads#our-gitlab-cicd-pipelines"&gt;GitLab templates&lt;/a&gt; to your project's &lt;code&gt;.gitlab-ci.yml&lt;/code&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;craft-appimage.yml (Qt 5), craft-appimage-qt6.yml (Qt 6)&lt;/li&gt;
&lt;li&gt;flatpak.yml&lt;/li&gt;
&lt;li&gt;craft-android-apks.yml (Qt 5), craft-android-qt6-apks.yml (Qt 6)&lt;/li&gt;
&lt;li&gt;craft-macos-arm64.yml (Qt 5), craft-macos-arm64-qt6.yml (Qt 6)&lt;/li&gt;
&lt;li&gt;craft-macos-x86-64.yml (Qt 5), craft-macos-x86-64-qt6.yml (Qt 6)&lt;/li&gt;
&lt;li&gt;craft-windows-x86-64.yml (Qt 5), craft-windows-x86-64-qt6.yml (Qt 6)&lt;/li&gt;
&lt;li&gt;craft-windows-mingw64.yml (Qt 5), craft-windows-mingw64-qt6.yml (Qt 6)&lt;/li&gt;
&lt;/ul&gt;
All jobs except for the Flatpak job use Craft for building and packaging your app. You may have to add a &lt;code&gt;.craft.ini&lt;/code&gt; file to your project's root folder for &lt;a href="https://invent.kde.org/sysadmin/ci-utilities/-/tree/master/gitlab-templates?ref_type=heads#details"&gt;overriding the defaults&lt;/a&gt; of Craft and the Craft blueprints of your project or your project's dependencies.
&lt;p&gt;&lt;b&gt;What's Next&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Next I'll work on making it possible to create and publish Android Application Bundles (AAB) additionally to APKs for your Android apps. Application Bundles contain the binaries for all supported architectures in a single package (instead of multiple different APKs for each architecture). This packaging format is required for new applications published on Google Play.&lt;/p&gt;</description></item><item><title>APKs now built on invent</title><link>https://blogs.kde.org/2023/11/13/apks-now-built-invent/</link><pubDate>Mon, 13 Nov 2023 00:00:00 +0000</pubDate><author>Ingo Klöcker</author><guid>https://blogs.kde.org/2023/11/13/apks-now-built-invent/</guid><description>&lt;p&gt;The migration of jobs from &lt;a href="https://binary-factory.kde.org"&gt;Binary Factory&lt;/a&gt; to &lt;a href="https://invent.kde.org"&gt;KDE's GitLab&lt;/a&gt; continues. Last week almost all jobs that built APKs were migrated to invent.kde.org. The only remaining Android job on Binary Factory doesn't use Craft.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://invent.kde.org/sysadmin/ci-utilities/-/blob/master/gitlab-templates/README.md?ref_type=heads#android-1"&gt;Android APK jobs&lt;/a&gt; running on invent are the first jobs that make use of our &lt;a href="https://invent.kde.org/sysadmin/ci-notary-service"&gt;CI Notary Services&lt;/a&gt; delegating tasks that require sensitive information (e.g. the keys to sign the APKs or the credentials to upload the APKs to our F-Droid repositories) to services running outside of GitLab. Currently, the &lt;a href="https://invent.kde.org/sysadmin/ci-notary-service/-/blob/master/doc/apksigner.md?ref_type=heads"&gt;apksigner&lt;/a&gt; service and the &lt;a href="https://invent.kde.org/sysadmin/ci-notary-service/-/blob/master/doc/fdroidpublisher.md?ref_type=heads"&gt;fdroidpublisher&lt;/a&gt; service are live. The configuration of the services can be found in the &lt;a href="https://invent.kde.org/sysadmin/ci-utilities/-/tree/master/signing?ref_type=heads"&gt;sysadmin/ci-utilities&lt;/a&gt; repository.&lt;/p&gt;
&lt;p&gt;As before, the APKs are published in our F-Droid repositories:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://cdn.kde.org/android/stable-releases/fdroid/repo/"&gt;KDE Android Release Builds&lt;/a&gt; provides APKs built from the 23.08 branches.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cdn.kde.org/android/nightly/fdroid/repo/"&gt;KDE Android Nightly Builds&lt;/a&gt; provides APKs built from the master branches.&lt;/li&gt;
&lt;/ul&gt;
Many apps have already switched from Qt 5 to Qt 6, but the Qt 6 APKs are not yet ready for public consumption. Not even as nightly builds. Therefore many &amp;quot;nightly&amp;quot; builds are many weeks old.
&lt;p&gt;The migration to invent has a few implications. On Binary Factory all APKs (release and nightly) were rebuilt once a day even if nothing changed. On invent the APKs are rebuilt whenever a change is pushed to the release/23.08 branch or the master branch of a project. Another change is that on invent any KDE developer can manually trigger a new pipeline to build the APKs (e.g. if a bug in a dependency was fixed). On Binary Factory you often needed to ask someone to trigger a build for you.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Building APKs&lt;/b&gt;
If you want to start building APKs for your project then add the &lt;code&gt;craft-android-apks.yml&lt;/code&gt; template for Qt 5 or the &lt;code&gt;craft-android-qt6-apks.yml&lt;/code&gt; template for Qt 6 to the &lt;code&gt;.gitlab-ci-yml&lt;/code&gt; of your project. Note that you must use the &lt;code&gt;include:project&lt;/code&gt; format (&lt;a href="https://invent.kde.org/sysadmin/ci-utilities/-/tree/master/gitlab-templates?ref_type=heads#our-gitlab-cicd-pipelines"&gt;example&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;The jobs will build unsigned APKs. To enable signing your project (more precisely, a branch of your project) needs to be cleared for using the signing service. This is done by adding your project to the &lt;a href="https://invent.kde.org/sysadmin/ci-utilities/-/tree/master/signing?ref_type=heads#apksigner"&gt;project settings of the apksigner&lt;/a&gt;. The master branch is cleared by default for all applications listed in the project settings, so that you only need to add two lines: The repo path on invent and the ID of your application. The key used to sign your application will best be created by us directly on the machine that does the signing.&lt;/p&gt;
&lt;p&gt;Once you think the APKs are ready for publication you can enable publishing in our F-Droid repositories by adding your project to the &lt;a href="https://invent.kde.org/sysadmin/ci-utilities/-/tree/master/signing?ref_type=heads#fdroidpublisher"&gt;project settings of the fdroidpublisher&lt;/a&gt;. Because some Qt 6 APKs are not yet ready for publication although their build succeeds, by default the master branch is not cleared for publishing. This means you will have to add five lines to the project settings of fdroidpublisher.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Outlook&lt;/b&gt;
To complete the Android jobs/services a job/service for submitting APKs to Google Play will go live soon. It's currently only used by &lt;a href="https://apps.kde.org/itinerary"&gt;Itinerary&lt;/a&gt; but, in view of our &lt;a href="https://www.youtube.com/watch?v=MzpoTuHuciE"&gt;Make a Living&lt;/a&gt; initiative, we hope to publish more apps on Google Play to create some revenue to fund our work. Creating and publishing Android Application Bundles (AAB), the new packaging format required for new applications published on Google Play, will follow soon after.&lt;/p&gt;
&lt;p&gt;Then we'll add signing of Windows artifacts and installers and submission to the Microsoft Store, signing and publishing of Flatpaks, and signing and publishing of builds for macOS.&lt;/p&gt;</description></item></channel></rss>