Date: Thu, 28 Mar 2024 21:59:58 +0000 (UTC)
Message-ID: <1191036824.11.1711663198547@9447877af510>
Subject: Exported From Confluence
MIME-Version: 1.0
Content-Type: multipart/related;
boundary="----=_Part_10_1566450220.1711663198547"
------=_Part_10_1566450220.1711663198547
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Content-Location: file:///C:/exported.html
-
Prerequisites
-
Building
-
Signing
-
QA Release
-
Production release
-
Debug Logs
-
Playstore
Prerequisites
Before creating any release artifacts, remember to tag the commit on Git=
hub for the codebase version that you'll use to create the release whether:=
This is helpful when one wants to revert back or check out the code base=
that created the specific release(s).
In the tag, add a bullet list summary of the main features/fixes introdu=
ced.
If it is a release (as opposed to snapshot), use the Github =
Draft Release feature after tagging. Check out https://help.github.com/en/articles/creating-releas=
es
NB: It is not recommended to do that for the snapshot v=
ersions.
Building
In order to create a release APK, all libraries in the OpenSRP chain hav=
e to have been built in the release variant. That is, if your application d=
epends on the opensrp-client-core library, the library has to be b=
uilt in the release variant.
If your implementation uses the opensrp-client-immunization lib=
rary, that has to be built in the release variant. The immunization library=
itself depends on opensrp-client-core library, so before building=
the immunization library variant in release, it has to reference the relea=
se variant of the opensrp-client-core library.
For the case of GIZ Malawi for example: The architecture looks like this=
. Each arrow can be read as "Depends on".
&n=
bsp; =
 =
; &nbs=
p;
As one can see from above, the child health module depends on 4 librarie=
s which have to be built in release variant before it is itself built in re=
lease variant. GIZ Malawi which is the implementation app then imports the =
release version of the child health module as well as release variants of t=
he other modules requires.
Signing
A release APK must be signed. This is done by selecting the Create Signe=
d APK option from within android studio when building the APK.
QA
OpenSRP general debug key is available but you can create your own if th=
e app is for QA or demo purposes. Remember, if you intend to simulate an up=
grade on the next release you will need to sign the APK with the same debug=
release key.
Production
On an actual production release however, you need to use the existing Op=
enSRP production/release key to publish the APK. One should always sign the=
production APK with the same release key.
Debug logs
In production, it is bad practice to have debug logs turned on. They may=
carry sensitive information that was being logged during development. To e=
nsure that the release APK does not have debug logging, add this snippet to=
your proguard-rules file (proguard-rules.pro).
-assumenosideeffects class android.util.Log {
pub=
lic static *** d(...);
}
This strips ou=
t debug logs but you can strip out other modes as well.
Some information should never be logged using the modes if you don't int=
end to strip them. For more info, check out https://developer.android.com/reference/android/util/Log
Playstore
Some OpenSRP apps need to be deployed on the Google Playstore. Any such =
releases should follow the above steps before uploading go Google.
Currently OpenSRP uses the the old signing approach to manage keys howev=
er there are plans to shift to the newly recommended upload key + signe=
d key approach described here =
https://developer.android.com/studio/publish/app-signing
Why build a=
release version for QA?
Sometimes the process of creating the release which includes shrink=
ing, optimization and obfuscation produces unexpected side effects that may=
be easily caught in the QA process.
Why follow this release process for production APKs?
Unlike the debug variant, the release variant is highly optimized for si=
ze and performance. For more information on this and more checkout this lin=
k https://developer.android.com/=
studio/build/shrink-code.html
NB: For releases, OpenSRP is currently in the process o=
f implementing a regular release schedule for the release variants of the l=
ibraries to be upload on maven.
If the project has Github Actions CI/CD set up, see:
How to set up Android client CI/CD on Github
------=_Part_10_1566450220.1711663198547
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/fb5a774b78e0c359704bc75792d8650ba36a49dc80f3931087fa72c400aad1c3
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
7bXX9E7Qvn37R80m6LCSxKwn3eD69Onzls/kXbeoqEh3mZSUlJSnkLxLsG9cccUVY5DJrKysZN9a
T3lXF0SoqSRvk49S/HhpHvTuSeTdunXrx80mUN5xyPvee+99x2fyPnncuHHfpKK80V3VpEmTPGSS
8k4BVq1apVIw8i798MMPPZX3jTfeSHnHV0+6wfXs2dN38i4oKEhJeWMf/+Mf/0h5J7+/3x0o7+rB
yDv15J2fn5+y8mbkLanzYCrKu3pQ3lWD8vYOyjsN5Y1KRzcEPrOuoMC4Nc2ax5pmzYPxyv5HQr8b
krW8tW4M7Z9ZP/Rb0zCPtT3WOiu7qiNZ3SZO+rytPFrbHlkWVvlYn1t5tZeVtYy1nL2M7d9jr6/I
77ZPt77HqlNr3fb6si+DK2qs9dvr1b4Nkd+VSvKuLL/R2ne0/cDepu31bk2z/o+sO/u+Yq9r+zyV
7ROUdxrKu5IGkBCirTve6X6Wd6zyi/zc+j9yGA+xlo1nnSea1/6Z03UGVd7xllt1ceO7KO80krfV
YHB797p169SLL76ox0FxcbHClRy4xRng9ltc/I/59u/frw4fPqzHcdfmF198oXDHIe54hEw//fRT
NWPGDDVz5ky1aNEivfwzzzyD24/VSy+9pCZMmKAmT56sXn31VT3/kSNH9LxjxoxRmzdv1rf9Ll26
VC/39ttv6+8Kirytshs1apTe9uPHj6vZs2erwsJCXX4AZYbP8T9uYHnvvffUd999p5577jn9OcoI
5YEywvCVV17Rt0GD119/XUfFYPHixbou8P8TTzyBmzT0slg36hLTsS0oqy+//FKXNW4wwmcTJ07U
9fDBBx+oNWvWqJEjR6qnn35ar/epp55SBQUF6vHHH1f79u1Ta9euVR999JH6xz/+oT9/8803dX1j
/oceekitXr36P9pTkOVtRdkoZ5QNsK7UQrl98sknejrKrqioSE9DmWJ+1KW1LOoBn0+dOlV9/vnn
ejqWwzTU61dffaXLEXWFOgJLlixR48ePV4899pjCtdoo36NHj+p6RZ2gzF944QXdlrCfRJY55Z1G
8rYaKmQybtw4de2116pHHnlEffvtt+q3v/2tHm/UqJGeZ+jQoap9+/Z6p4YItm7dqh5++GHVu3dv
1bFjRy19NESk1157Te3atUv16NFD9e/fXzeqyy+/XM2ZM0c3QCwzbdo03egx/9ixY9W8efP0//ff
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
AAAAAElFTkSuQmCC
------=_Part_10_1566450220.1711663198547--