You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Craig Payne (JIRA)" <ji...@apache.org> on 2014/06/02 06:47:01 UTC

[jira] [Updated] (CB-6845) Prepare step adds duplicate preferences to iOS Platform's config.xml file for some plugins

     [ https://issues.apache.org/jira/browse/CB-6845?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Craig Payne updated CB-6845:
----------------------------

    Description: 
NOTE - I'm actually using version 3.4.1-0.1.0, but it won't let me input that as a version number)

I'm using the "Cross-Platform Workflow" and I ran into a problem where some of the preferences for the SplashScreen were not working as I expected.  It turned out that the Prepare step was adding the same Preferences I already had defined in the top level config.xml - but with Different values to the Platform specific version of the config.xml file.  Adding to the confusion, the prepare step modifies the:

     platform/ios/APPNAME/config.xml

but NOT the:

     platform/ios/build/emulator/APPNAME.app/config.xml

But during the Build step, they become identical again - to each other, but not to the top-level config.xml, of course.

-----

 I already have in the top-level config.xml before I run 'prepare':

    <preference name="AutoHideSplashScreen" value="false" />
    <preference name="FadeSplashScreen" value="true" />
    <preference name="FadeSplashScreenDuration" value=".25" />
    <preference name="ShowSplashScreenSpinner" value="false" />
    <preference name="StatusBarOverlaysWebView" value="false" />

On iOS the prepare step ADDS:

     <preference name="AutoHideSplashScreen" value="true" />
     <preference name="ShowSplashScreenSpinner" value="true" />
     <preference name="StatusBarOverlaysWebView" value="true" />
    +
   Also adds Features for each Plugin declared

I believe that this effectively overwrites several settings (as it puts the added preferences later in the file).

On Android I haven't yet seen it overwrite any of the Preferences, so this might be limited to iOS.

---

I'm going to try to workaround this using a Hook, but I'd prefer to see the config.xml parsed and Preferences not reset - certainly, not without some kind of warning.

  was:
NOTE - I'm actually using version 3.4.1-0.1.0, but it won't let me input that as a version number)

I'm using the "Cross-Platform Workflow" and I ran into a problem where some of the preferences for the SplashScreen were not working as I expected.  It turned out that the Prepare step was adding the same Preferences I already had defined in the top level config.xml - but with Different values to the Platform specific version of the config.xml file.  Adding to the confusion, the prepare step modifies the:

     platform/ios/APPNAME/config.xml

but NOT the:

     platform/ios/build/emulator/APPNAME.app/config.xml

-----

 I already have in the top-level config.xml before I run 'prepare':

    <preference name="AutoHideSplashScreen" value="false" />
    <preference name="FadeSplashScreen" value="true" />
    <preference name="FadeSplashScreenDuration" value=".25" />
    <preference name="ShowSplashScreenSpinner" value="false" />
    <preference name="StatusBarOverlaysWebView" value="false" />

On iOS the prepare step ADDS:

     <preference name="AutoHideSplashScreen" value="true" />
     <preference name="ShowSplashScreenSpinner" value="true" />
     <preference name="StatusBarOverlaysWebView" value="true" />
    +
   Also adds Features for each Plugin declared

I believe that this effectively overwrites several settings (as it puts the added preferences later in the file).

On Android I haven't yet seen it overwrite any of the Preferences, so this might be limited to iOS.

So, I think there are 2 issues here:
  One - The 'prepare' step overwrites my preferences
  Two - The emulator will, presumably, behave differently than an actual
            device using the same build due to the different resultant
            config.xml files in the two platform/ios/* locations.

---

I'm going to try to workaround this using a Hook, but I'd prefer to see the config.xml parsed and Preferences not reset - certainly, not without some kind of warning.


> Prepare step adds duplicate preferences to iOS Platform's config.xml file for some plugins
> ------------------------------------------------------------------------------------------
>
>                 Key: CB-6845
>                 URL: https://issues.apache.org/jira/browse/CB-6845
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: CLI, iOS
>    Affects Versions: 3.4.0
>         Environment: MacOS Mavericks.  Project supports both iOS and Android.
>            Reporter: Craig Payne
>            Priority: Minor
>
> NOTE - I'm actually using version 3.4.1-0.1.0, but it won't let me input that as a version number)
> I'm using the "Cross-Platform Workflow" and I ran into a problem where some of the preferences for the SplashScreen were not working as I expected.  It turned out that the Prepare step was adding the same Preferences I already had defined in the top level config.xml - but with Different values to the Platform specific version of the config.xml file.  Adding to the confusion, the prepare step modifies the:
>      platform/ios/APPNAME/config.xml
> but NOT the:
>      platform/ios/build/emulator/APPNAME.app/config.xml
> But during the Build step, they become identical again - to each other, but not to the top-level config.xml, of course.
> -----
>  I already have in the top-level config.xml before I run 'prepare':
>     <preference name="AutoHideSplashScreen" value="false" />
>     <preference name="FadeSplashScreen" value="true" />
>     <preference name="FadeSplashScreenDuration" value=".25" />
>     <preference name="ShowSplashScreenSpinner" value="false" />
>     <preference name="StatusBarOverlaysWebView" value="false" />
> On iOS the prepare step ADDS:
>      <preference name="AutoHideSplashScreen" value="true" />
>      <preference name="ShowSplashScreenSpinner" value="true" />
>      <preference name="StatusBarOverlaysWebView" value="true" />
>     +
>    Also adds Features for each Plugin declared
> I believe that this effectively overwrites several settings (as it puts the added preferences later in the file).
> On Android I haven't yet seen it overwrite any of the Preferences, so this might be limited to iOS.
> ---
> I'm going to try to workaround this using a Hook, but I'd prefer to see the config.xml parsed and Preferences not reset - certainly, not without some kind of warning.



--
This message was sent by Atlassian JIRA
(v6.2#6252)