(This issue was caught before release.)
You cannot upload an Android app built with a pre-release version of Titanium 9.0.0 to Firebase App Distribution (used for beta testing) if it includes one of the following modules.
Google's website shows the following error when attempting to upload the APK.
There was an error processing your distribution. Ensure you are uploading a valid IPA or APK and try again.
You can upload the APK to Google Play without issues. You can install/run the APK on devices as well. So far, this only appears to be an issue with Firebase.
Steps to reproduce:
- Build kitchensink-v2 for Android.
- Go to the Firebase Console webpage: https://console.firebase.google.com
- Select a Firebase project. (Create one if you don't have one.)
- Go to the "App Distribution" section.
- Drag-and-drop the built APK to the Releases section.
- Notice the upload errors out with the message shown above.
Any module that is set up to inject "AndroidManifest.xml" settings via its "timodule.xml" will have this problem. It's an issue with the XML merge handling code which is wrongly injecting xmlns:android="" namespace declarations within the child elements. Google requires the android namespace to be declared in the root <manifest/> element and will throw a fit if you add it to the child elements too.
This is really a bug in the node.js "xmldom" module. It's doing a string reference equality check via == instead of a string value equality check via ===.
xmldom - dom.js#L951