The previous email was broken due to Ctrl+Enter, sorry ☹ I’m looking into the tests failures on OS X, caused by PlatformApi refactoring and it seems they caused by double caching of ios pbxproj files: first time in ios_parser [1] and second time in PlatformMunger (through ConfigKeeper class) [2], [3]. It seems that at some time one file get cached twice and then saving one cached instance we’re overwriting changes, saved from another cache.
So I have a question: What is the idea of dealing with xcode files and, in particular , with non-custom frameworks in PlatformMunger instead of ios plugin handler, along with custom frameworks. The one reason I see is that we need to count references to these frameworks, so if two or more plugins references same frameworks, removal of one of them won’t remove framework reference from pbxproj file. However, if this this is the only reason, would it make sense to move non-custom frameworks related logic to plugin handler? This will resolve those caching issues and looks more intuitive and easier to maintain for me. I’ve made some prototype work on this refactoring and it seems to work fine. See this commit for details: [4] ----- [1] https://github.com/MSOpenTech/cordova-lib/blob/master/cordova-lib/src/plugman/platforms/ios.js#L210 [2] https://github.com/MSOpenTech/cordova-lib/blob/master/cordova-common/src/ConfigChanges/ConfigChanges.js#L91 [3] https://github.com/MSOpenTech/cordova-lib/blob/master/cordova-common/src/ConfigChanges/ConfigKeeper.js#L47 [4] https://github.com/MSOpenTech/cordova-lib/commit/699bfe44a917b264815dc99efa0d770b766fa3a9 - Best regards, Vladimir From: Vladimir Kotikov (Akvelon) Sent: Friday, October 2, 2015 6:04 PM To: dev@cordova.apache.org Subject: Question about ios non-custom frameworks Hi, guys. I’m looking into the tests failures on OS X, caused by PlatformApi refactoring and it seems they caused by double caching of ios pbxproj files: first time in ios_parser [1] and second time in PlatformMunger (through ConfigFile class) [2], [3]. It seems that at some time one file get cached twice and then saving one cached instance we’re overwriting changes, saved from another cache. [1] https://github.com/MSOpenTech/cordova-lib/blob/master/cordova-lib/src/plugman/platforms/ios.js#L210