Uploaded image for project: 'Apache Cordova'
  1. Apache Cordova
  2. CB-4036

<platform> tag should have a "version" attribute

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • None
    • cordova-plugman
    • None

    Description

      This might be hole that we didn't consider.

      I know implicitly if the plugin supported an "engine" version we support what the engine supports, but here could be one scenario.

      For example, with iOS 7, a plugin CDVFooBar use this awesome NSWhizBang framework. Fine, with iOS 7, you have to of course build with the iOS 7 SDK, and you can support iOS 6 with a Deploy Target build setting.

      It runs on iOS 7 - yay.
      It.. blows up on iOS 6 at runtime, because of course NSWhizBang framework does not exist on iOS 6.

      Now you say, why don't you do Obj-C runtime checks and weak link the framework? Yes, the plugin author can do that but a plugin user, by parsing the plugin xml (using a tool, or optically, whatever) cannot know that the plugin does NOT work on iOS 6 - and even though it "runs" on iOS 6, it does nothing, which is useless and wastes a lot of time.

      So - my proposal is, to add a "version" attribute on the <platform> tag. It should follow the syntax for the <engine> version attribute.

      What would be the default if the version attribute is not there? Not sure what a reasonable default is yet.

      Attachments

        Issue Links

          Activity

            People

              timkim Tim Kim
              shazron Shazron Abdullah
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: