Tuesday, December 7, 2010

Capabilities - Removing Networking and Location Capabilities

Well, well, well.... I've learnt my lesson again.  Don't use something you do not know well.  I was using the copyright object/thingamagig and did not understand what it did and what it's purpose was, but I felt I should insert my copyright in my app, so I used it.

Well it looks like it was the culprit causing my app to have a Location and Networking Capability, when my app did not have a need for either.

I found this by taking a two headed approach.

  1. I built a Hello world application, checking on the capabilities at each step.
    1. Using the new Capabilities detection tool
      1. On my Vista 64 machine it was found here after installing it: C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.0\Tools\CapDetect
      2. In a Command window (Dos Window)
      3. goto the above directory
      4. And run the following
        1. CapabilityDetection.exe Rules.xml  "C:\Users\David\Documents\Visual Studio 2010\Projects\HelloWorldWindowsPhoneApplication\HelloWorldWindowsPhoneApplication\Bin\Debug"
  2. I removed unnecessary items from the working app one by one to find running the above tool to see what the culprit was.

Microsoft's instructions can be found here: http://msdn.microsoft.com/en-us/library/gg180730(VS.92).aspx


I think Capabilities is a mis-nomer.  In my case and I think most cases we would want our apps to have the minimum amount of capabilities our apps require.  Why would a user want to buy/download an app that has a location requirement, that does not have a perceived need for it, a user would have privacy concerns.

Now I need to resubmit my apps.