cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vladimir Kotikov (Akvelon)" <v-vlk...@microsoft.com>
Subject RE: Question about ios non-custom frameworks
Date Fri, 02 Oct 2015 15:14:17 GMT
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
Mime
View raw message