Apache Cordova
  1. Apache Cordova
  2. CB-109

PhoneGap Library confuses the Marketplace capability detection

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 1.2.0
    • Fix Version/s: 2.0.0
    • Component/s: WP7
    • Labels:
      None

      Description

      Originally filed here: https://github.com/phonegap/phonegap-wp7/issues/40

      When WP7 applications are submitted to the marketplace the phone capabilities they use are determined via static code analysis. This means that applications which use PhoneGap are listed as having the following capabilities, regardless of whether they are used or not:

      data services, movement and directional sensor, microphone, music and video library, owner identity, camera, contacts, camera, compass

      See this article for more details:

      http://www.scottlogic.co.uk/blog/colin/2011/11/property-finder-the-first-html5-based-windows-phone-7-application/#comment-95352

      Unless the marketplace approval changes, I think PhoenGap for WP7 needs to be split into multiple assemblies based on the phone capability it uses.

        Activity

        Hide
        Dirkjan Mollema added a comment - - edited

        I confirm this. Is there a workaround available for this?
        Having simple apps which require all the user permissions will make users hesitate to download and install the app.
        Imo this issue should have a higher priority

        Show
        Dirkjan Mollema added a comment - - edited I confirm this. Is there a workaround available for this? Having simple apps which require all the user permissions will make users hesitate to download and install the app. Imo this issue should have a higher priority
        Hide
        Christoph added a comment -

        I agree, this is a show stopper. Please increase priority.
        Any workaround would be appreciated.

        Show
        Christoph added a comment - I agree, this is a show stopper. Please increase priority. Any workaround would be appreciated.
        Hide
        Filip Maj added a comment -

        First, we need to land support for programmatic installation of Cordova plugins. This is slated for 2.0; we are working hard to land this.

        After that lands, then you as a user will be able to create a Cordova application and manually only add the plugins (APIs) that your application is using.

        Until then, as a workaround: clone the source, remove any APIs (Commands) that your application is not using, build the library and rebuild your app.

        Show
        Filip Maj added a comment - First, we need to land support for programmatic installation of Cordova plugins. This is slated for 2.0; we are working hard to land this. After that lands, then you as a user will be able to create a Cordova application and manually only add the plugins (APIs) that your application is using. Until then, as a workaround: clone the source, remove any APIs (Commands) that your application is not using, build the library and rebuild your app.
        Hide
        Dirkjan Mollema added a comment - - edited

        I can confirm this workaround.
        The easiest way to do this is to open the source in Visual Studio, but open the CordovaClassLibBare. The Bare one only includes the basic modules, you can add modules you need.
        Then build the solution and copy the new dll to your Cordova project (the app).

        Show
        Dirkjan Mollema added a comment - - edited I can confirm this workaround. The easiest way to do this is to open the source in Visual Studio, but open the CordovaClassLibBare. The Bare one only includes the basic modules, you can add modules you need. Then build the solution and copy the new dll to your Cordova project (the app).
        Hide
        Jesse MacFadyen added a comment -

        This has been addressed with changes to the project structure.
        The 'new' way to remove a capability and therefore the user presented permission nag is to remove the assemblies and cordova commands from the project.

        The workaround verified by DirkjanDirkjan Mollema is still available to projects using external project linkage.

        Show
        Jesse MacFadyen added a comment - This has been addressed with changes to the project structure. The 'new' way to remove a capability and therefore the user presented permission nag is to remove the assemblies and cordova commands from the project. The workaround verified by Dirkjan Dirkjan Mollema is still available to projects using external project linkage.

          People

          • Assignee:
            Jesse MacFadyen
            Reporter:
            Jesse MacFadyen
          • Votes:
            2 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development