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.xmlis whenandroiddeployqtcreates 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.apkwhen it's done.At what point am I supposed to make modifications to the
AndroidManifest.xmlfile? 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.plistfile, in it between themake -spec macx-xcode(which I think creates one) and themacdeployqt. In the Mac world, there's aPListBuddytool for modifying.plistfiles (although I used to resort tosedin 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_DIRin http://doc.qt.io/qt-5/deployment-android.html ... saysandroiddeployqtwill copy anAndroidManifest.xmlfrom there... will give it a try. -
OK, in my app's .pro file, for android builds
ANDROID_PACKAGE_SOURCE_DIRpoints 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.myappreally 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.