Problems when removing an App Setting

I'd like to remove a setting that is now redundant, from the settings for my app.

I commented out the definition for the setting in settings.xml, rebuilt the app, ran it on the simulator, and found that all of the settings for the app were erased.

I thought this might be a Simulator issue so I built and uploaded the Beta version and downloaded it to my watch.

Rather than updating the existing app on my watch, the existing Beta version was not changed (shows old version number when run, and has all settings)

Rather than UPDATING the existing Beta version, a SECOND COPY of the app was loaded as if it's a different app.

When running that second copy, the newer version number is shown and all settings are blank or their default value as you'd expect with a new app installation.

Is there a way to remove, or hide a parameter in Settings without ending up with a second copy of the app, and without erasing existing settings in an existing installation of the app ??

I am building with SDK 8.1.0

Thanks

Jeff

  • Every app has it's unique I'd in the manifest. It sounds like when you created the beta app you obviously had to change the id, but you assume it would upgrade your existing non-beta app?

    The way to test:

    Create beta app with new manifest id and old code (include the old settings)

    Upload the beta app, download it from the store.

    Remove the old settings, bump version , build, upload to store.

    Wait until it appears in the store listing (in Connect IQ) and it's upgraded in your device *)

    Test on the device.

    *) there are some long known bugs in either the developer dashboard or Connect IQ or both, so many times I don't see the update of the beta app in Connect IQ, or worse I see it's upgrading (no version indicated) but on the device I still have the old app.

    To work around these bugs I always do the following in beta apps:

    - have the version visible somewhere in the app

    - bump that version every time before I build it for uploading to the store

    - check the version as, often it's still the old app...

    - if 10 minutes after I uploaded a new version it's still not on my device I bump the version, do another build, upload, ... It seems that usually ** this kicks something in the backend that causes either version n+1 or n+2 to appear on my device

    **) every once in a while even this doesn't help and we have to send emails to the CIQ team to fix their backend because apps are stuck for days

  • Thanks.

    I’ve done this type of testing with the Beta version for a long time without issues before this.

    I didn’t change anything in the manifest so there’s something else happening here.

  • Your strange problem doesn't seem to be related to settings. There were some devs claiming this week that sometimes beta apps become published. What you experienced sounds equally unlikely. For it to happen there must be a huge bug in the Garmin ciq backend servers. I'm not saying it's impossible, maybe it's something new, but very unlikely.

    For a new app you'd need a new id in the manifest.

    The store wouldn't let you upload it under the existing app.

    In Connect IQ you would see install instead of upgrade.

    And BTW you should be able to see the new beta app in your dashboard.

    Are you also testing your app vuavsude-loading? Maybe that has some strange effect.

  • This is why you want to be careful when changing app settings/properties in an existing app.  A change can cause the set file to get reset.  It's happened with others in the past, and it's why I very rarely change anything with app settings in an existing app.   It's something you want to have pretty finalized before you first publish the app, or you'll get users complaining about losing their settings

    As far as the two versions, that should only happen if you've used 2 different AppIds in the manifest - like if you had a beta version and a public version and used the wrong AppId when you updated.

  • Thanks Jim.

    I've veified that the App UUID is the UUID for the Beta build, so there's real mystery here. As I said, I've done a lot of this kind of testing with the Beta version (app store currently shows internal version 200 for the beta version), and I didn't change anything in the manifest, so something else seems to be going on.

    So is there no way to hide / remove a setting without losing existing settings ??

    I made a point of not messing with properties.xml, just settings.xml in hopes that not changing the underlying storage would result in hiding the setting but keeping existing stored properties.

    I'll do more testing, but this seems like a serious bug if making a change to settings blows away all other stored values for all existing users when they update the app.

  • My 2 coins:

    1) on simulator: when you change something in the settings (omit, add, change text etc…), the simulator will reset all settings to default on next build - and mostly there appears a warning like „the settings were resettet due to changes…“

    2) on real device with app installed from store, changes in settings (omit one or add one) will not change the other settings on your device - normally. At least thats what happens to my apps.

  • 1. Update the existing app with the existing settings, and get it to save a copy of them to Storage.

    2. Give it a reasonable time to get updated on user devices

    3. Release the new version with the redundant setting removed. In onUpdate check if all settings are defaults. If they are, see if any settings have been saved to Storage and restore them. Then delete the copies from Storage.

  • Interesting idea. 

    Thanks

  • Jim & Flocsy,

    Thanks for your help with the app confusion. It turned out to be a error on my part. I thought that the app on my watch was the Beta version. It was actually the Released version. 

    I'll get back to the question about settings now.