MABS 8.1 folder structure change

Hello,

Why did OutSystems change the folder structure of the generated Cordova app when generating a build for iOS using MABS 8.1? We're getting an error while generating an app because our plugin is trying to open the "plist" file in "platforms/ios/[appname]/[appname]-Info.plist" and OutSystems says it's not there.  Why was it changed? If I test our plugin in a normal Cordova, I don't get this error. If this change was intentional, it's going to be very tedious developing plugins for OutSystems going forward.

Pedro Remedios 

Solution

@Pedro Remedios apology for the delay. I have managed to replicate the problem and this occurs if the attribute `<name>` on the config.xml is multi line, e.g.:

<name>

    Some App

</name>


Because the BranchIO plugin code is reading the content of the tag name in verbatim here resulting in updatePlist.js to set filePath as 

'platforms/ios/

        Some App

    /

        Some App

    -Info.plist'

mvp_badge
MVP
Solution

Hi Pedro,

Be sure to also open a support case with OutSystems, as this seems like a question that can only be answered by OutSystems themselves, not by the community.

I will. Thank you

mvp_badge
MVP

I've also raised this internally with OutSystems, though I haven't had any confirmation yet. I'll let you know if I hear something.

MABS 8.1 continues to use the same cordova-cli and cordova-ios engine versions as MABS 8.0 and typically folder structure changes occur on one of those two components.

Is it a specific plugin that is accessing the file via a hook? If so, could you try and replicate it by isolating the plugin?

The official cordova plugin for Branch.IO is trying to access "platforms/ios" when modifying the plist.

updatePlist.js

Solution

@Pedro Remedios apology for the delay. I have managed to replicate the problem and this occurs if the attribute `<name>` on the config.xml is multi line, e.g.:

<name>

    Some App

</name>


Because the BranchIO plugin code is reading the content of the tag name in verbatim here resulting in updatePlist.js to set filePath as 

'platforms/ios/

        Some App

    /

        Some App

    -Info.plist'

That make should make sense but this is only occurring in OutSystems which probably means that the app name is multiline in the config.xml generated by OutSystems.

Indeed, the latest MABS generates a config.xml which is formatted, thus the "name" node is similar to the one I've posted before. 

The generated XML is not wrong in terms of XML correctness. It seems that the parser in use by the plugin is incorrectly handling this content.


Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.