How/when to modify AndroidManifest.xml for commandline build?
-
I'm building an Android apk using
qmake
,make
&androiddeployqt
(all build scripted; I'm not using Qt Creator). It works good, but there are some configuration "app metadata" things I want to do (like locking orientation to landscape mode) which apparently need me to editAndroidManifest.xml
. Thing is, the first time I ever see anAndroidManifest.xml
is whenandroiddeployqt
creates a couple of them in the deployment target folder (one in the folder, another apparently identical one in thebin/
subdir)... and then there's one baked into the.apk
when it's done.At what point am I supposed to make modifications to the
AndroidManifest.xml
file? If I copied one into the target deployment folder before androiddeployqt ran, would it respect it? Or is the idea to edit the file in the apk somehow?I'm a bit more used to the iOS system where I get a chance to mess with the
Info.plist
file, in it between themake -spec macx-xcode
(which I think creates one) and themacdeployqt
. In the Mac world, there's aPListBuddy
tool for modifying.plist
files (although I used to resort tosed
in my build scripts before I discovered that); any equivalent supposed to be used for modifying Android manifests? -
Aha... just found mention of
ANDROID_PACKAGE_SOURCE_DIR
in http://doc.qt.io/qt-5/deployment-android.html ... saysandroiddeployqt
will copy anAndroidManifest.xml
from there... will give it a try. -
OK, in my app's .pro file, for android builds
ANDROID_PACKAGE_SOURCE_DIR
points at a folder where my build script does:cp ${QTDIR}/src/android/templates/AndroidManifest.xml . sed 's|android:screenOrientation="unspecified"|android:screenOrientation="sensorLandscape"|' < AndroidManifest.xml > AndroidManifest.xml.tmp mv AndroidManifest.xml.tmp AndroidManifest.xml sed 's|"org.qtproject.example"|"int_.myorg.myapp"|' < AndroidManifest.xml > AndroidManifest.xml.tmp mv AndroidManifest.xml.tmp AndroidManifest.xml sed 's|"-- %%INSERT_APP_NAME%% --"|"My Application Name"|' < AndroidManifest.xml > AndroidManifest.xml.tmp # But don't override %%INSERT_APP_LIB_NAME%%! mv AndroidManifest.xml.tmp AndroidManifest.xml
(The
int_
is bit obscure... butint.myorg.myapp
really doesn't work; see https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html !)...and that gets me an application which is landscape locked, displays "My Application Name" to the user, and which creates a data area
int_.myorg.myapp
.Next step is to figure out how to provide an icon.