How can I test that my app properties (user configurable) stuff is working without publishing to the app store?
You can test the settings on a real device, you just can't test setting them. You can set the proper values in the simulator and then copy the settings file from the simulator (%Temp%\Garmin\Apps\SETTINGS\) to your device.
Hi again jim_m_58,
I need to test also the WatchFace settings in my own watch. But where can I find the .SET file to copy to my watch Garmin/Apps/SETTINGS folder.
I'm in a Macbook M3, and I can't find the simulator folder to be able to copy that file.
I've taken a look at these links but didn't find anything.
https://forums.garmin.com/developer/connect-iq/i/bug-reports/app-settings-editor-in-sim-is-useless-to-test-settings-xml-locally-works-only-with-the-store-version
And here the $TMPDIR/Garmin/Apps don't work for me:
https://forums.garmin.com/developer/connect-iq/f/discussion/1608/where-is-simulator-object-store-file-stored-on-mac-osx
Any take on this?
To be honest, the easiest thing to do it upload it to the app store, but mark it as a beta app (it's on the first screen where you have the iq file and the version). You can then use your phone to change settings, and not generate a new .set file for anything you want to try.
https://developer.garmin.com/connect-iq/core-topics/beta-apps/#betaapps
I'm a windows guy so can't help you with the temp directory on a mac.
And here the $TMPDIR/Garmin/Apps don't work for me:
https://forums.garmin.com/developer/connect-iq/f/discussion/1608/where-is-simulator-object-store-file-stored-on-mac-osx
Yeah it's been changed on both Windows and macOS since that post.
Windows: %TMP%\com.garmin.connectiq\GARMIN
macOS: $TMPDIR/com.garmin.connectiq/GARMIN
(If you use a very old SDK, it may still use the old tmp dir which lacks the com.garmin.connectiq path component, but newer SDKs def user the newer paths.)
Hi lads,
FlowState, thanks for sharing the paths to the GARMIN folder. However the .SET file copy approach didn't work for me.
I ran the command $TMPDIR/com.garmin.connectiq/GARMIN/APPS/SETTINGS, and that yielded the following path: /var/folders/3_/890c6v6x33g1mwn1tnsywp500000gn/T/com.garmin.connectiq/GARMIN/APPS/SETTINGS
I copied the .SET file to my watch SETTINGS folder, but still I can't customize the setting in the watch, it only appears the Apply button when I search the app in the Watch's Watch Faces menu. Other installed ones from Connect IQ do have the customize option.
So, I think I'll give it a try to jim_m_58's approach, releasing a beta version to test app settings.
Thank you guys.
I copied the .SET file to my watch SETTINGS folder, but still I can't customize the setting in the watch, it only appears the Apply button when I search the app in the Watch's Watch Faces menu. Other installed ones from Connect IQ do have the customize option.
To be clear, there's two types of settings:
1) the type of settings that this thread is talking about, which are available for all CIQ devices, are defined in resource property/settings .XML, and exist in a .SET file in GARMIN/APPS/SETTINGS. These settings are accessed using the Connect IQ app (for iOS or Android) or Garmin Express (PC or Mac). They are not accessed from the device itself.
[https://developer.garmin.com/connect-iq/core-topics/properties-and-app-settings/]
2) "on-device settings" (not available for data fields and watch faces on older devices). This the type of settings that you're thinking of when you talk about Connect IQ watch faces that allow settings to be changed on the watch itself.
On-device settings are available for CIQ data fields and watch faces, since CIQ API level 3.2.0. For other app types - widgets and device apps - devs have always been able to implement their own settings UI without any special support from the framework. Data fields and watch faces need special support for on-device settings bc they have very limited / nonexistent user input capabilities, and they lack the ability to push a new view which would allow for full user input.
Or as Garmin puts it:
[https://developer.garmin.com/connect-iq/core-topics/properties-and-app-settings/#ondevicewatchfaceanddatafieldsettings (scroll to the bottom of the page)
On Device Watch Face and Data Field Settings
Since API level 3.2.0
Device applications, widgets, and audio content providers all accept user input that allow them to implement on-device settings in the app. Watch faces and data fields are not allowed to accept input or push views that would allow on device configuration.
If you want to provide an on-device settings user interface for your watch face or data field, you can implement
AppBase.getSettingsView()
.getSettingsView()
functions similarly toAppBase.getInitialView()
where you return aWatchUi.View
andWatchUi.InputDelegate
pair that can serve as the initial view.Watch face configuration is available to the user in the system Watch Face menu. Data field configuration is available from the activity menu.
It's not a bad idea to release a beta version, as it will allow you to test your settings in the Connect IQ app. But it won't allow you to change settings on the watch itself.