I would like to deploy many applications, but dependecies prevent my installation.So, I drew a schema for my explanations.
An application consists of core and dependent objects. When you create a new object for an application, by default it becomes a core object. Core objects are published and installed with the applications. Dependent objects are pre-requisites to application installation. So, dependent objects must be installed in a tenant before the application depending on them is installed.
The possible reason for Application B complaining about the necessity of Application C is, you might have configured complex relationships in Application B which is dependent on Application C. The warning messages/errors will be displayed on the screen while generating the application xml to install the specified dependent objects/apps before installing the current app (generated xml).
Thanks for your answer.
The Application B has just a "Related Object C Records Components". Whereas Application C has two lookup fields of Application B.
I don't think it's a complex relationships.