It isn't clear that ODR (on-demand resources) is the appropriate solution for what you're trying to do. If you object to the resources being downloaded and stored locally, then you are objecting to ODR itself. So perhaps a different solution would be more appropriate.
However, having said all that, let me tell you what the usual approach to ODR is. The idea is that your app needs instant access to some resources — that's why you're using ODR to store the resources locally in the first place — but it doesn't need access to all of them all the time. Therefore you divide the resources into groups and you only maintain locally those groups that the user needs right now (or, if you have a way of anticipating the user's needs, those groups that the user needs right now or will need very soon). As soon as you tell the system that a certain group of resources is no longer needed, the system is free to delete them locally if (as you say) "it starts to be a problem".
So, to sum up, it sounds like either you are using ODR incorrectly or ODR is not the approach you needed in the first place.
For example, if the goal is simply to make a resource occasionally available to the app via the Internet, then yes, just store the resources on your own server and have your app access a needed resource when it is needed; your app can store the resource locally temporarily, if needed, and in that case it is free to delete the app local when it is not needed. But that, I am at pains to emphasize, is not ODR. It's just your app talking to a server. You definitely should not use ODR as a substitute for that; in other words, if you are using ODR merely because you're trying to get Apple to act as your server, then don't — that's not what ODR is.