Things to check:
1. does your config.xml contain well-formed, valid XML? Please check with a lint or online validator
2. are your index.html and config.xml in the same directory?
3. are you sure you don't have any other file in your assets called 'index.html', anywhere in the directory structure?
2. Yes, both in www
3. Yes, and this seems to be the issue:
Our repository contains a submodule, which is located on the same level as the _www_ folder. That submodule also contains an index.html, however *it does not contain a config.xml*.
The reason the build is working with manual upload, is because the content of that submodule is not getting downloaded, when I download the zip of the repo from BitBucket.
I've just tried downloading the submodule content from its repository, and putting it in the zip of our main repository, so that we have _www_ with config.xml and index.html and _zsc_ with index.html *only*. That produced the same result, as when fetching from the repository - no configurations recognized.
I then deleted the index.html in the submodule folder, and uploaded the zip again. That worked, and PHB recognized the config settings.
*This is still a problem:*
1. It worked yesterday. No changes to either config.xml nor the directory structure were made
2. Renaming the index.html file in the submodule is not an option. Another team is working with the repository in the submodule, and they need only the _web_ part of the project. Later, our build task pulls the latest code for the submodule, and copies it's content into the _www_folder
3. Why would another index.html confuse PHB, when there's one on the same level as the config.xml? Setting
`<content src="index.html" />`
in the config.xml did not help.
Of course that did not help, because PGB needs to find your config first. It expects the config at the same directory as the first index.html it meets.
Our repository contains a submodule, which is located on the same level as the _www_ folder.
You can't have that. Index and Config need to be at the top level. You can't have another directory at the same level.
The _Of course_ would be justified, if this logic was explicitly stated in the documentation. From the research we did, the impression was that it works the direct opposite way: PGB takes the index.html in the directory where the first config.xml was found.
Why is there a `content` tag in config.xml, that specifies, which index.html to take, otherwise? By the logic you proposed, it finds the index.html, takes the config in the same directory, and then redirects to another index.html?
Regardless, our second index.html is located in a directory named _zsrc_. Unless PGB has some custom directory lookup sequence, I would assume that _www_ has precedence over _zsrc_.
You seem to be a bit too much focussed on something like "/www".
Please be aware that Phonegap Build doesn't require any specific directory naming at all. For that matter, It doesn't even require any directories!
All it wants is a starting point with the index.html, config.xml and the default icon.png. PGB will work from there, and this directory (preferably the root directory "/") will be the Project Root. Everything else will be under the Project Root, which is why I always suggest to put index.html, config.xml and icon.png in the root directory of the zip or repo.
Why is there a `content` tag in config.xml, that specifies, which index.html to take, otherwise?
It is to indicate which html document is to be displayed once the splash screen disappears. It's the starting document for the app execution...NOT for the app generation!
I would assume that _www_ has precedence over _zsrc_.
Your assumption may be logical, but still incorrect. Phonegap Build doesn't care what your directories are named, and you may well do without /www. Suppose you have
which one should take precedence, now?