<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://forums.garmin.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Wiki</title><link>https://forums.garmin.com/developer/connect-iq/w/wiki</link><description>A growing set of useful information for the Connect IQ Developer Community.</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><item><title>New Developer FAQ</title><link>https://forums.garmin.com/developer/connect-iq/w/wiki/4/new-developer-faq</link><pubDate>Mon, 03 Mar 2025 15:52:03 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:f550ecc7-adab-4078-99fc-58b61b8587dd</guid><dc:creator>Brandon.ConnectIQ</dc:creator><description>Current Revision posted to Wiki by Brandon.ConnectIQ on 3/3/2025 3:52:03 PM&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="Where can I download the SDK?" href="#sdk-download"&gt;Where can I download the SDK?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="How do I get started with Connect IQ?" href="#get-started"&gt;How do I get started with Connect IQ?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="Can I build apps that will work on any device that supports Connect IQ?" href="#any-device"&gt;I just downloaded the latest SDK. Can I build apps that will work on any device that supports Connect IQ?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="Am I allowed to charge for my app though the Connect IQ app store?" href="#charge"&gt;Am I allowed to charge for my app though the Connect IQ app store?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="Can I display seconds on my watch face?" href="#display-seconds"&gt;Can I display seconds on my watch face?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="How do I format output padded with leading zeros?" href="#leading-zeros"&gt;How do I format output padded with leading zeros?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="How can I load the apps I develop to my device for testing purposes?" href="#testing-purposes"&gt;How can I load the apps I develop to my device for testing purposes?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="I have side-loaded an app as described above, but app settings won't work. Why is this?" href="#app-settings"&gt;I have side-loaded an app as described above, but app settings won&amp;#39;t work. Why is this?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="My app uses app settings, and it sometimes crashes after changing the settings, but the rest of the time it works fine. What can cause this?" href="#settings-crash"&gt;My app uses app settings, and it sometimes crashes after changing the settings, but the rest of the time it works fine. What can cause this?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="I keep getting a &amp;quot;Too Many Arguments Error&amp;quot;, but I never used to get this. What is going on?" href="#too-many-arguments"&gt;I keep getting a &amp;quot;Too Many Arguments Error&amp;quot;, but I never used to get this. What is going on?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="How can I test or debug Connect IQ apps I am developing?" href="#debugging"&gt;How can I test or debug Connect IQ apps I am developing?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="I think that I've found a bug with CIQ. How do I report it?" href="#report-bugs"&gt;I think that I&amp;#39;ve found a bug with CIQ. How do I report it?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="sdk-download"&gt;&lt;/a&gt; Where can I download the SDK?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The latest version of the SDK can be found at &lt;a href="http://developer.garmin.com/connect-iq/sdk/" rel="noopener noreferrer" target="_blank"&gt;http://developer.garmin.com/connect-iq/sdk/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="get-started"&gt;&lt;/a&gt; How do I get started with Connect IQ?&lt;/strong&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;The&amp;nbsp;&lt;/span&gt;&lt;a href="https://developer.garmin.com/connect-iq/connect-iq-basics/"&gt;Connect IQ Basics Guide&lt;/a&gt;&lt;span&gt; is a good place&lt;/span&gt;&lt;span&gt; to start gaining familiarity with Monkey C and Connect IQ. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Once you&amp;#39;re set up, take a look at the &lt;a href="https://developer.garmin.com/connect-iq/core-topics/"&gt;Core Topics&lt;/a&gt; and &lt;a href="https://developer.garmin.com/connect-iq/user-experience-guidelines/"&gt;User Experience Guide&lt;/a&gt; for more in-depth info. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;a title="API Documentation" href="http://developer.garmin.com/connect-iq/api-docs/"&gt;API Documentation&lt;/a&gt; and more &lt;a href="https://developer.garmin.com/connect-iq/monkey-c/"&gt;Monkey C&lt;/a&gt; specifics are also available on our developer site.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;The SDK includes a set of sample apps in the &amp;#39;samples&amp;#39; folder that demonstrate some of the basic capabilities of Connect IQ.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;If you have questions along the way, these forums are the best place to go for assistance. Many questions have already been answered in previously posted threads, however both the Connect IQ team and several experienced developers monitor the forums to answer new questions or respond to issues you may encounter.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;b&gt;&lt;a id="any-device"&gt;&lt;/a&gt; I just downloaded the latest SDK. Can I build apps that will work on any device that supports Connect IQ?&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Yes! We have designed the SDK so that you can target any Connect IQ-compatible devices, regardless of the Connect IQ version they support. A project can be configured to target a minimum SDK version, which limits the selectable target devices to those that support the selected Connect IQ version. Targeting the newest version of Connect IQ will limit the devices that can run your app, but will give you access to all of the latest goodies. Anything built targeting earlier SDK versions will work on the latest devices, so allows your app to run on more devices as long as you don&amp;#39;t need the newest features for your app.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The minimum SDK selector is designed to build for the highest supported SDK for each device. For example, consider this set of devices: device A (3.x), B (2.x), and C (1.x). The table below illustrates how the build system is designed to function:&lt;/span&gt;&lt;/p&gt;
&lt;table class="text_table" align="center"&gt;
&lt;tbody&gt;
&lt;tr class="text_table_tr" valign="top"&gt;
&lt;td class="text_table_td"&gt;&lt;b&gt;Minimum SDK Selected&lt;/b&gt;&lt;/td&gt;
&lt;td class="text_table_td"&gt;&lt;b&gt;Eligible Target Devices&lt;/b&gt;&lt;/td&gt;
&lt;td class="text_table_td"&gt;&lt;b&gt;What Gets Built&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="text_table_tr" valign="top"&gt;
&lt;td class="text_table_td"&gt;3.0.x&lt;/td&gt;
&lt;td class="text_table_td"&gt;A&lt;/td&gt;
&lt;td class="text_table_td"&gt;3.0.x PRG for A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="text_table_tr" valign="top"&gt;
&lt;td class="text_table_td"&gt;2.4.x&lt;/td&gt;
&lt;td class="text_table_td"&gt;A, B&lt;/td&gt;
&lt;td class="text_table_td"&gt;3.0.x PRG for A, 2.4.x PRG for B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="text_table_tr" valign="top"&gt;
&lt;td class="text_table_td"&gt;1.2.x&lt;/td&gt;
&lt;td class="text_table_td"&gt;A, B, C&lt;/td&gt;
&lt;td class="text_table_td"&gt;3.0.x PRG for A, 2.4.x PRG for B, 1.2.x PRG for C&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="charge"&gt;&lt;/a&gt;&amp;nbsp;Am I allowed to charge for my app though the Connect IQ app store?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Yes, you are! Garmin offers a monetization solution that allows you to accept payments for your apps directly through the App Store. You can read more about it in the &lt;a href="https://developer.garmin.com/connect-iq/monetization/"&gt;Monetization&lt;/a&gt; docs.&lt;br /&gt;&lt;br /&gt;It is also acceptable to list prices, link to payment sites, or ask for donations on the Connect IQ app store as long as solicitations are related to your app and you mark&amp;nbsp;that the app requires payments, etc., in the app listing details.. The app store falls under the the&amp;nbsp;&lt;/span&gt;&lt;a href="http://developer.garmin.com/connect-iq/sdk/" rel="noopener noreferrer" target="_blank"&gt;Connect IQ SDK License Agreement&lt;/a&gt;&lt;span&gt;, which does not forbid solicitation for sales of apps by app developers. However, solicitation for business on Garmin sites other than the app store (such as this forum) is prohibited but Garmin&amp;#39;s&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.garmin.com/en-US/legal/terms-of-use" rel="noopener noreferrer" target="_blank"&gt;Terms of Use&lt;/a&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="display-seconds"&gt;&lt;/a&gt; Can I display seconds on my watch face?&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Yes, you can! However, one priority of Connect IQ is the preservation of battery life, so we have a system in place that governs how often watch faces may be updated. Generally, watch faces update once per minute in low power mode, and once per second when in full power mode. The watch will enter full power mode for a few seconds when the user gestures to look at it, and then returns to low power mode. Developers will often detect this transition to full power mode, display a seconds indicator for a few moments, and then hide the seconds indicator once the device returns to low power mode. &lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Newer devices may also support Always On watch faces, which can update once per second as long as they operate within certain limits.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;You can find out more about low power mode, full power mode, and Always On watch faces in the &lt;a href="https://developer.garmin.com/connect-iq/connect-iq-basics/"&gt;Connect IQ Basics Guide&lt;/a&gt;, or read about the related APIs in the&amp;nbsp;&lt;a href="http://developer.garmin.com/downloads/connect-iq/monkey-c/doc/Toybox/WatchUi/WatchFace.html" rel="noopener noreferrer" target="_blank"&gt;API Docs&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="leading-zeros"&gt;&lt;/a&gt; How do I format output padded with leading zeros?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Many Connect IQ apps include time values that require leading zeros. For example, time written in an HH:MM:SS format appears as &amp;quot;12:05:05&amp;quot; rather than &amp;quot;12:5:5&amp;quot;. Monkey C includes&amp;nbsp;&lt;/span&gt;&lt;a href="https://developer.garmin.com/connect-iq/api-docs/Toybox/Lang.html#format-instance_function"&gt;string formatting functions&lt;/a&gt;&lt;span&gt;&amp;nbsp;that can get this job done using a &lt;/span&gt;&lt;code&gt;%02d&lt;/code&gt;&lt;span&gt; format specifier.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;A common error is to specify a format of &lt;code&gt;%.2d&lt;/code&gt; or &lt;code&gt;%0.2d&lt;/code&gt;. This may pad a decimal with leading zeros in some languages, such as in C++&amp;#39;s&amp;nbsp;&lt;/span&gt;&lt;code&gt;&lt;a href="http://www.cplusplus.com/reference/cstdio/printf/" rel="noopener noreferrer" target="_blank"&gt;printf()&lt;/a&gt;&lt;/code&gt;&lt;span&gt;&amp;nbsp;function, but Monkey C follows the&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1336.pdf" rel="noopener noreferrer" target="_blank"&gt;C99 standard&lt;/a&gt;&lt;span&gt;. C99 requires the &lt;code&gt;0&lt;/code&gt; flag to specify padding with leading zeros for &lt;code&gt;d&lt;/code&gt;, &lt;code&gt;i&lt;/code&gt;, &lt;code&gt;o&lt;/code&gt;, &lt;code&gt;u&lt;/code&gt;, &lt;code&gt;x&lt;/code&gt;, &lt;code&gt;X&lt;/code&gt;, &lt;code&gt;a&lt;/code&gt;, &lt;code&gt;A&lt;/code&gt;, &lt;code&gt;e&lt;/code&gt;, &lt;code&gt;f&lt;/code&gt;, &lt;code&gt;F&lt;/code&gt;, &lt;code&gt;g&lt;/code&gt;, and &lt;code&gt;G&lt;/code&gt; conversions. In addition, C99 states that if a precision is specified with &amp;#39;&lt;code&gt;.&lt;/code&gt;&amp;#39;, the the &lt;code&gt;0&lt;/code&gt; flag is ignored.&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="testing-purposes"&gt;&lt;/a&gt; How can I load the apps I develop to my device for testing purposes?&lt;/b&gt;&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Apps are typically installed to devices via the&amp;nbsp;&lt;/span&gt;&lt;a href="https://apps.garmin.com/en-US/" rel="noopener noreferrer" target="_blank"&gt;Connect IQ App Store&lt;/a&gt;&lt;span&gt;, but it&amp;#39;s often useful to side-load an app to a device for testing without having to first upload a version to the app store. Here&amp;#39;s how (this assumes you already have the &lt;a href="https://marketplace.visualstudio.com/items?itemName=garmin.monkey-c"&gt;Monkey C Visual Studio Code Extension&lt;/a&gt; installed):&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span&gt;In Visual Studio Code, choose&amp;nbsp;&lt;em&gt;View&amp;nbsp;&lt;/em&gt;&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;i&gt;Command Palette...&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;/em&gt;Select&amp;nbsp;&lt;em&gt;Monkey C: Build for Device&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Select the target product from the device list&lt;/li&gt;
&lt;li&gt;Choose an output location for the build&lt;/li&gt;
&lt;li&gt;Select either &lt;em&gt;Debug&lt;/em&gt; or&amp;nbsp;&lt;em&gt;Release&lt;/em&gt; depending on your intent (&lt;em&gt;&lt;/em&gt;either will build a PRG that will run on a device)&lt;/li&gt;
&lt;li&gt;Connect your device to the computer via USB (it should appear as a drive)&lt;/li&gt;
&lt;li&gt;Copy the PRG file from the output location to &lt;code&gt;/GARMIN/APPS&lt;/code&gt; on your device&lt;/li&gt;
&lt;li&gt;Disconnect your device; the app should be available for use&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="app-settings"&gt;&lt;/a&gt; I have side-loaded an app as described above, but app settings won&amp;#39;t work. Why is this?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://developer.garmin.com/connect-iq/core-topics/app-settings/"&gt;App settings&lt;/a&gt;&lt;span&gt;&amp;nbsp;allow user to configure an app via the &lt;a href="https://buy.garmin.com/en-US/US/p/616398/pn/010-CONIQ-00"&gt;Connect IQ Store app&lt;/a&gt;, &lt;/span&gt;&lt;a href="http://software.garmin.com/en-US/express.html" rel="noopener noreferrer" target="_blank"&gt;Garmin Express&lt;/a&gt;&lt;span&gt;, or&amp;nbsp;&lt;/span&gt;&lt;a href="https://buy.garmin.com/en-US/US/on-the-go/apps/garmin-connect-mobile/prod125677.html" rel="noopener noreferrer" target="_blank"&gt;Garmin Connect Mobile&lt;/a&gt;&lt;span&gt;, and depend on the Connect IQ App Store to function properly. When an app is side loaded, this connection to the Connect IQ App Store is never established. If you have an app that uses app settings that needs to be tested, you may submit the app to the Connect IQ App Store and test out the settings features while the app is either in a beta state or pending approval.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;b&gt;&lt;a id="settings-crash"&gt;&lt;/a&gt; My app uses app settings, and it sometimes crashes after changing the settings, but the rest of the time it works fine. What can cause this?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In the past, there have been issues where the client used to manage app settings, like the &lt;a href="https://buy.garmin.com/en-US/US/p/616398/pn/010-CONIQ-00"&gt;Connect IQ Store app&lt;/a&gt;, &lt;a href="http://software.garmin.com/en-US/express.html" rel="noopener noreferrer" target="_blank"&gt;Garmin Express&lt;/a&gt;, or &lt;a href="https://buy.garmin.com/en-US/US/on-the-go/apps/garmin-connect-mobile/prod125677.html" rel="noopener noreferrer" target="_blank"&gt;Garmin Connect Mobile&lt;/a&gt;, has returned a setting value with an unexpected type, so it&amp;#39;s good practice to check a setting value to ensure it&amp;#39;s the expected type. For example, this code will check for a null value and convert the value to a Number as long as it is not null. Otherwise, a default value is returned:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;pre class="ui-code" data-mode="java"&gt;function readKeyInt(myApp,key,thisDefault) {
    var value = myApp.getProperty(key);
    if(value == null || !(value instanceof Number)) {
        if(value != null) {
            value = value.toNumber();
        } else {
            value = thisDefault;
        }
    }
    return value;
}&lt;/pre&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;&lt;a id="too-many-arguments"&gt;&lt;/a&gt; I keep getting a &amp;quot;Too Many Arguments Error&amp;quot;, but I never used to get this. What is going on?&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;We added a a feature in the 2.1.2 SDK release to perform an argument count check on function and method calls. This was included as part of a larger security effort, which includes things like app signing and encryption of app data. Overall, this is a good thing, since it promotes more robust source code prevents some potential security exploits. Unfortunately, it has also caused some apps to crash on 1.3.x and 2.x devices when built with the 2.1.2 SDK even though these same apps execute without issue when built with earlier SDK releases. This kind of crash appears in the&amp;nbsp;&lt;code&gt;CIQ_LOG.TXT&lt;/code&gt; or &lt;code&gt;CIQ_LOG.YML&lt;/code&gt; file as a &lt;em&gt;Too many arguments&lt;/em&gt; error, signifying the argument count check has failed. Here are a couple of examples that illustrate potential causes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Missing &lt;code&gt;state&lt;/code&gt; arguments for the &lt;code&gt;onStart()&lt;/code&gt;&amp;nbsp;and&amp;nbsp;&lt;code&gt;onStop()&lt;/code&gt; methods. These are currently unused arguments and were passed implicitly in earlier versions of Connect IQ, but must now be included explicitly.&lt;/li&gt;
&lt;li&gt;An&amp;nbsp;&lt;code&gt;initialize()&lt;/code&gt; method that takes an array of options but to which none are passed&lt;code&gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="debugging"&gt;&lt;/a&gt; How can I test or debug Connect IQ apps I am developing?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;A simple way to test Connect IQ apps is to include&amp;nbsp;&lt;/span&gt;&lt;code&gt;System.println()&lt;/code&gt;&lt;span&gt;&amp;nbsp;statements at strategic points in your app. Within Eclipse, these&lt;/span&gt;&lt;span&gt; statements will output to the console. On a device,&lt;/span&gt;&lt;i&gt;&lt;span&gt; &lt;/span&gt;&lt;/i&gt;these &lt;span&gt;statements write to the &lt;code&gt;/GARMIN/APPS/LOGS&lt;/code&gt;&lt;/span&gt;&lt;code&gt;&amp;lt;APPNAME&amp;gt;.TXT&lt;/code&gt;&lt;span&gt;&amp;nbsp;file, if it exists&lt;/span&gt;&lt;span&gt;. This file is not automatically created, so must be created manually and named to match the name of the app&amp;#39;s &lt;code&gt;PRG&lt;/code&gt; file. For example, to log output from&amp;nbsp;&lt;/span&gt;&lt;code&gt;/GARMIN/APPS/MYAPP.PRG&lt;/code&gt;&lt;span&gt;, create the &lt;/span&gt;&lt;code&gt;/GARMIN/APPS/LOGS/MYAPP.TXT&lt;/code&gt;&lt;span&gt; file.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;For more advanced debugging, Connect IQ has a unit testing framework called &lt;em&gt;Run No Evil&lt;/em&gt;, and a debugger that&amp;#39;s included in the Connect IQ plug-in for Eclipse that can be used to dig into potential issues within the Connect IQ simulator. Check out the &lt;a href="https://developer.garmin.com/connect-iq/core-topics/debugging/"&gt;Debugging &lt;/a&gt;and &lt;a href="https://developer.garmin.com/connect-iq/core-topics/unit-testing/"&gt;Unit Testing&lt;/a&gt; chapters of the Core Topics Guide for more info.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;In addition to these tools, there are two general types of on-device crash that can occur related to Connect IQ, which each generate log files:&amp;nbsp;&lt;/span&gt;app crashes&lt;span&gt;&amp;nbsp;and&amp;nbsp;&lt;/span&gt;device crashes&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;App crashes&lt;/strong&gt; typically result in an app quitting unexpectedly or displaying an &amp;#39;IQ!&amp;#39; icon, but does not cause the entire device to crash or reboot. This kind of crash is most commonly due to a bug in an app, though it can also be due to a bug in Connect IQ itself&lt;/span&gt;&lt;i&gt;.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;span&gt;Whenever an app crash occurs, a &lt;code&gt;/GARMIN/APPS/LOGS/&lt;/code&gt;&lt;/span&gt;&lt;code&gt;CIQ_LOG.YML&lt;/code&gt;&lt;span&gt; file is written&lt;/span&gt;&lt;span&gt; to the device, which usually contains a call stack from the app (older devices may write a &lt;code&gt;CIQ_LOG.TXT&lt;/code&gt; file).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Device crashes&lt;/strong&gt; typically cause the device to reboot or freeze. These indicate a Connect IQ or device firmware bug, and should be much less common than app crashes. When a device crash occurs, an&amp;nbsp;&lt;/span&gt;&lt;code&gt;ERR_LOG.TXT&lt;/code&gt;&lt;span&gt; file is typically written to&amp;nbsp;&lt;/span&gt;&lt;code&gt;/GARMIN&lt;/code&gt; or &lt;code&gt;/GARMIN/DEBUG&lt;/code&gt;&lt;span&gt; on the device, containing stack trace information related to the crash. Garmin&amp;#39;s device teams can take a look at the device crash logs to determine the cause of the crash and will typically provide a fix in a future firmware release.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;When any crash log file exceeds 5 KB, it will automatically be archived to&amp;nbsp;&lt;/span&gt;&lt;code&gt;&amp;lt;LOGNAME&amp;gt;.BAK&lt;/code&gt;&lt;span&gt;, and a new log will be started. Any old &lt;code&gt;.BAK&lt;/code&gt; files will be overwritten when the archive occurs, so the maximum practical space available for logging is ~10 KB.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;b&gt;&lt;a id="report-bugs"&gt;&lt;/a&gt;&amp;nbsp;I think that I&amp;#39;ve found a bug with CIQ. How do I report it?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;If you think you&amp;#39;ve found a Connect IQ bug, please report it in the &lt;a title="Connect IQ Bug Reports" href="/developer/connect-iq/i/bug-reports"&gt;Connect IQ Bug Reports&lt;/a&gt; tool!&amp;nbsp; Please make sure to read the &lt;a title="Bug Reporting Rules" href="/developer/connect-iq/w/wiki/5/bug-reports-faq"&gt;Bug Reporting FAQ&lt;/a&gt; to ensure you provide us with the information we need to investigate the problem. Be advised that if you post about a bug in the discussion forum, your thread may be moved or deleted.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Getting Started, New Developer, CIQ, Connect IQ, New&lt;/div&gt;
</description></item><item><title>New Developer FAQ</title><link>https://forums.garmin.com/developer/connect-iq/w/wiki/4/new-developer-faq/revision/20</link><pubDate>Mon, 03 Mar 2025 15:50:15 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:f550ecc7-adab-4078-99fc-58b61b8587dd</guid><dc:creator>Brandon.ConnectIQ</dc:creator><description>Revision 20 posted to Wiki by Brandon.ConnectIQ on 3/3/2025 3:50:15 PM&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="Where can I download the SDK?" href="#sdk-download"&gt;Where can I download the SDK?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="How do I get started with Connect IQ?" href="#get-started"&gt;How do I get started with Connect IQ?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="Can I build apps that will work on any device that supports Connect IQ?" href="#any-device"&gt;I just downloaded the latest SDK. Can I build apps that will work on any device that supports Connect IQ?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="Am I allowed to charge for my app though the Connect IQ app store?" href="#charge"&gt;Am I allowed to charge for my app though the Connect IQ app store?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="Can I display seconds on my watch face?" href="#display-seconds"&gt;Can I display seconds on my watch face?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="How do I format output padded with leading zeros?" href="#leading-zeros"&gt;How do I format output padded with leading zeros?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="How can I load the apps I develop to my device for testing purposes?" href="#testing-purposes"&gt;How can I load the apps I develop to my device for testing purposes?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="I have side-loaded an app as described above, but app settings won't work. Why is this?" href="#app-settings"&gt;I have side-loaded an app as described above, but app settings won&amp;#39;t work. Why is this?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="My app uses app settings, and it sometimes crashes after changing the settings, but the rest of the time it works fine. What can cause this?" href="#settings-crash"&gt;My app uses app settings, and it sometimes crashes after changing the settings, but the rest of the time it works fine. What can cause this?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="I keep getting a &amp;quot;Too Many Arguments Error&amp;quot;, but I never used to get this. What is going on?" href="#too-many-arguments"&gt;I keep getting a &amp;quot;Too Many Arguments Error&amp;quot;, but I never used to get this. What is going on?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="How can I test or debug Connect IQ apps I am developing?" href="#debugging"&gt;How can I test or debug Connect IQ apps I am developing?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="I think that I've found a bug with CIQ. How do I report it?" href="#report-bugs"&gt;I think that I&amp;#39;ve found a bug with CIQ. How do I report it?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="#reviews"&gt;My app is receiving inappropriate reviews. Is there something I can do about that?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="sdk-download"&gt;&lt;/a&gt; Where can I download the SDK?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The latest version of the SDK can be found at &lt;a href="http://developer.garmin.com/connect-iq/sdk/" rel="noopener noreferrer" target="_blank"&gt;http://developer.garmin.com/connect-iq/sdk/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="get-started"&gt;&lt;/a&gt; How do I get started with Connect IQ?&lt;/strong&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;The&amp;nbsp;&lt;/span&gt;&lt;a href="https://developer.garmin.com/connect-iq/connect-iq-basics/"&gt;Connect IQ Basics Guide&lt;/a&gt;&lt;span&gt; is a good place&lt;/span&gt;&lt;span&gt; to start gaining familiarity with Monkey C and Connect IQ. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Once you&amp;#39;re set up, take a look at the &lt;a href="https://developer.garmin.com/connect-iq/core-topics/"&gt;Core Topics&lt;/a&gt; and &lt;a href="https://developer.garmin.com/connect-iq/user-experience-guidelines/"&gt;User Experience Guide&lt;/a&gt; for more in-depth info. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;a title="API Documentation" href="http://developer.garmin.com/connect-iq/api-docs/"&gt;API Documentation&lt;/a&gt; and more &lt;a href="https://developer.garmin.com/connect-iq/monkey-c/"&gt;Monkey C&lt;/a&gt; specifics are also available on our developer site.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;The SDK includes a set of sample apps in the &amp;#39;samples&amp;#39; folder that demonstrate some of the basic capabilities of Connect IQ.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;If you have questions along the way, these forums are the best place to go for assistance. Many questions have already been answered in previously posted threads, however both the Connect IQ team and several experienced developers monitor the forums to answer new questions or respond to issues you may encounter.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;b&gt;&lt;a id="any-device"&gt;&lt;/a&gt; I just downloaded the latest SDK. Can I build apps that will work on any device that supports Connect IQ?&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Yes! We have designed the SDK so that you can target any Connect IQ-compatible devices, regardless of the Connect IQ version they support. A project can be configured to target a minimum SDK version, which limits the selectable target devices to those that support the selected Connect IQ version. Targeting the newest version of Connect IQ will limit the devices that can run your app, but will give you access to all of the latest goodies. Anything built targeting earlier SDK versions will work on the latest devices, so allows your app to run on more devices as long as you don&amp;#39;t need the newest features for your app.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The minimum SDK selector is designed to build for the highest supported SDK for each device. For example, consider this set of devices: device A (3.x), B (2.x), and C (1.x). The table below illustrates how the build system is designed to function:&lt;/span&gt;&lt;/p&gt;
&lt;table class="text_table" align="center"&gt;
&lt;tbody&gt;
&lt;tr class="text_table_tr" valign="top"&gt;
&lt;td class="text_table_td"&gt;&lt;b&gt;Minimum SDK Selected&lt;/b&gt;&lt;/td&gt;
&lt;td class="text_table_td"&gt;&lt;b&gt;Eligible Target Devices&lt;/b&gt;&lt;/td&gt;
&lt;td class="text_table_td"&gt;&lt;b&gt;What Gets Built&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="text_table_tr" valign="top"&gt;
&lt;td class="text_table_td"&gt;3.0.x&lt;/td&gt;
&lt;td class="text_table_td"&gt;A&lt;/td&gt;
&lt;td class="text_table_td"&gt;3.0.x PRG for A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="text_table_tr" valign="top"&gt;
&lt;td class="text_table_td"&gt;2.4.x&lt;/td&gt;
&lt;td class="text_table_td"&gt;A, B&lt;/td&gt;
&lt;td class="text_table_td"&gt;3.0.x PRG for A, 2.4.x PRG for B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="text_table_tr" valign="top"&gt;
&lt;td class="text_table_td"&gt;1.2.x&lt;/td&gt;
&lt;td class="text_table_td"&gt;A, B, C&lt;/td&gt;
&lt;td class="text_table_td"&gt;3.0.x PRG for A, 2.4.x PRG for B, 1.2.x PRG for C&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="charge"&gt;&lt;/a&gt;&amp;nbsp;Am I allowed to charge for my app though the Connect IQ app store?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Yes, you are! Garmin offers a monetization solution that allows you to accept payments for your apps directly through the App Store. You can read more about it in the &lt;a href="https://developer.garmin.com/connect-iq/monetization/"&gt;Monetization&lt;/a&gt; docs.&lt;br /&gt;&lt;br /&gt;It is also acceptable to list prices, link to payment sites, or ask for donations on the Connect IQ app store as long as solicitations are related to your app and you mark&amp;nbsp;that the app requires payments, etc., in the app listing details.. The app store falls under the the&amp;nbsp;&lt;/span&gt;&lt;a href="http://developer.garmin.com/connect-iq/sdk/" rel="noopener noreferrer" target="_blank"&gt;Connect IQ SDK License Agreement&lt;/a&gt;&lt;span&gt;, which does not forbid solicitation for sales of apps by app developers. However, solicitation for business on Garmin sites other than the app store (such as this forum) is prohibited but Garmin&amp;#39;s&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.garmin.com/en-US/legal/terms-of-use" rel="noopener noreferrer" target="_blank"&gt;Terms of Use&lt;/a&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="display-seconds"&gt;&lt;/a&gt; Can I display seconds on my watch face?&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Yes, you can! However, one priority of Connect IQ is the preservation of battery life, so we have a system in place that governs how often watch faces may be updated. Generally, watch faces update once per minute in low power mode, and once per second when in full power mode. The watch will enter full power mode for a few seconds when the user gestures to look at it, and then returns to low power mode. Developers will often detect this transition to full power mode, display a seconds indicator for a few moments, and then hide the seconds indicator once the device returns to low power mode. &lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Newer devices may also support Always On watch faces, which can update once per second as long as they operate within certain limits.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;You can find out more about low power mode, full power mode, and Always On watch faces in the &lt;a href="https://developer.garmin.com/connect-iq/connect-iq-basics/"&gt;Connect IQ Basics Guide&lt;/a&gt;, or read about the related APIs in the&amp;nbsp;&lt;a href="http://developer.garmin.com/downloads/connect-iq/monkey-c/doc/Toybox/WatchUi/WatchFace.html" rel="noopener noreferrer" target="_blank"&gt;API Docs&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="leading-zeros"&gt;&lt;/a&gt; How do I format output padded with leading zeros?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Many Connect IQ apps include time values that require leading zeros. For example, time written in an HH:MM:SS format appears as &amp;quot;12:05:05&amp;quot; rather than &amp;quot;12:5:5&amp;quot;. Monkey C includes&amp;nbsp;&lt;/span&gt;&lt;a href="https://developer.garmin.com/connect-iq/api-docs/Toybox/Lang.html#format-instance_function"&gt;string formatting functions&lt;/a&gt;&lt;span&gt;&amp;nbsp;that can get this job done using a &lt;/span&gt;&lt;code&gt;%02d&lt;/code&gt;&lt;span&gt; format specifier.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;A common error is to specify a format of &lt;code&gt;%.2d&lt;/code&gt; or &lt;code&gt;%0.2d&lt;/code&gt;. This may pad a decimal with leading zeros in some languages, such as in C++&amp;#39;s&amp;nbsp;&lt;/span&gt;&lt;code&gt;&lt;a href="http://www.cplusplus.com/reference/cstdio/printf/" rel="noopener noreferrer" target="_blank"&gt;printf()&lt;/a&gt;&lt;/code&gt;&lt;span&gt;&amp;nbsp;function, but Monkey C follows the&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1336.pdf" rel="noopener noreferrer" target="_blank"&gt;C99 standard&lt;/a&gt;&lt;span&gt;. C99 requires the &lt;code&gt;0&lt;/code&gt; flag to specify padding with leading zeros for &lt;code&gt;d&lt;/code&gt;, &lt;code&gt;i&lt;/code&gt;, &lt;code&gt;o&lt;/code&gt;, &lt;code&gt;u&lt;/code&gt;, &lt;code&gt;x&lt;/code&gt;, &lt;code&gt;X&lt;/code&gt;, &lt;code&gt;a&lt;/code&gt;, &lt;code&gt;A&lt;/code&gt;, &lt;code&gt;e&lt;/code&gt;, &lt;code&gt;f&lt;/code&gt;, &lt;code&gt;F&lt;/code&gt;, &lt;code&gt;g&lt;/code&gt;, and &lt;code&gt;G&lt;/code&gt; conversions. In addition, C99 states that if a precision is specified with &amp;#39;&lt;code&gt;.&lt;/code&gt;&amp;#39;, the the &lt;code&gt;0&lt;/code&gt; flag is ignored.&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="testing-purposes"&gt;&lt;/a&gt; How can I load the apps I develop to my device for testing purposes?&lt;/b&gt;&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Apps are typically installed to devices via the&amp;nbsp;&lt;/span&gt;&lt;a href="https://apps.garmin.com/en-US/" rel="noopener noreferrer" target="_blank"&gt;Connect IQ App Store&lt;/a&gt;&lt;span&gt;, but it&amp;#39;s often useful to side-load an app to a device for testing without having to first upload a version to the app store. Here&amp;#39;s how (this assumes you already have the &lt;a href="https://marketplace.visualstudio.com/items?itemName=garmin.monkey-c"&gt;Monkey C Visual Studio Code Extension&lt;/a&gt; installed):&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span&gt;In Visual Studio Code, choose&amp;nbsp;&lt;em&gt;View&amp;nbsp;&lt;/em&gt;&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;i&gt;Command Palette...&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;/em&gt;Select&amp;nbsp;&lt;em&gt;Monkey C: Build for Device&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Select the target product from the device list&lt;/li&gt;
&lt;li&gt;Choose an output location for the build&lt;/li&gt;
&lt;li&gt;Select either &lt;em&gt;Debug&lt;/em&gt; or&amp;nbsp;&lt;em&gt;Release&lt;/em&gt; depending on your intent (&lt;em&gt;&lt;/em&gt;either will build a PRG that will run on a device)&lt;/li&gt;
&lt;li&gt;Connect your device to the computer via USB (it should appear as a drive)&lt;/li&gt;
&lt;li&gt;Copy the PRG file from the output location to &lt;code&gt;/GARMIN/APPS&lt;/code&gt; on your device&lt;/li&gt;
&lt;li&gt;Disconnect your device; the app should be available for use&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="app-settings"&gt;&lt;/a&gt; I have side-loaded an app as described above, but app settings won&amp;#39;t work. Why is this?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://developer.garmin.com/connect-iq/core-topics/app-settings/"&gt;App settings&lt;/a&gt;&lt;span&gt;&amp;nbsp;allow user to configure an app via the &lt;a href="https://buy.garmin.com/en-US/US/p/616398/pn/010-CONIQ-00"&gt;Connect IQ Store app&lt;/a&gt;, &lt;/span&gt;&lt;a href="http://software.garmin.com/en-US/express.html" rel="noopener noreferrer" target="_blank"&gt;Garmin Express&lt;/a&gt;&lt;span&gt;, or&amp;nbsp;&lt;/span&gt;&lt;a href="https://buy.garmin.com/en-US/US/on-the-go/apps/garmin-connect-mobile/prod125677.html" rel="noopener noreferrer" target="_blank"&gt;Garmin Connect Mobile&lt;/a&gt;&lt;span&gt;, and depend on the Connect IQ App Store to function properly. When an app is side loaded, this connection to the Connect IQ App Store is never established. If you have an app that uses app settings that needs to be tested, you may submit the app to the Connect IQ App Store and test out the settings features while the app is either in a beta state or pending approval.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;b&gt;&lt;a id="settings-crash"&gt;&lt;/a&gt; My app uses app settings, and it sometimes crashes after changing the settings, but the rest of the time it works fine. What can cause this?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In the past, there have been issues where the client used to manage app settings, like the &lt;a href="https://buy.garmin.com/en-US/US/p/616398/pn/010-CONIQ-00"&gt;Connect IQ Store app&lt;/a&gt;, &lt;a href="http://software.garmin.com/en-US/express.html" rel="noopener noreferrer" target="_blank"&gt;Garmin Express&lt;/a&gt;, or &lt;a href="https://buy.garmin.com/en-US/US/on-the-go/apps/garmin-connect-mobile/prod125677.html" rel="noopener noreferrer" target="_blank"&gt;Garmin Connect Mobile&lt;/a&gt;, has returned a setting value with an unexpected type, so it&amp;#39;s good practice to check a setting value to ensure it&amp;#39;s the expected type. For example, this code will check for a null value and convert the value to a Number as long as it is not null. Otherwise, a default value is returned:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;pre class="ui-code" data-mode="java"&gt;function readKeyInt(myApp,key,thisDefault) {
    var value = myApp.getProperty(key);
    if(value == null || !(value instanceof Number)) {
        if(value != null) {
            value = value.toNumber();
        } else {
            value = thisDefault;
        }
    }
    return value;
}&lt;/pre&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;&lt;a id="too-many-arguments"&gt;&lt;/a&gt; I keep getting a &amp;quot;Too Many Arguments Error&amp;quot;, but I never used to get this. What is going on?&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;We added a a feature in the 2.1.2 SDK release to perform an argument count check on function and method calls. This was included as part of a larger security effort, which includes things like app signing and encryption of app data. Overall, this is a good thing, since it promotes more robust source code prevents some potential security exploits. Unfortunately, it has also caused some apps to crash on 1.3.x and 2.x devices when built with the 2.1.2 SDK even though these same apps execute without issue when built with earlier SDK releases. This kind of crash appears in the&amp;nbsp;&lt;code&gt;CIQ_LOG.TXT&lt;/code&gt; or &lt;code&gt;CIQ_LOG.YML&lt;/code&gt; file as a &lt;em&gt;Too many arguments&lt;/em&gt; error, signifying the argument count check has failed. Here are a couple of examples that illustrate potential causes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Missing &lt;code&gt;state&lt;/code&gt; arguments for the &lt;code&gt;onStart()&lt;/code&gt;&amp;nbsp;and&amp;nbsp;&lt;code&gt;onStop()&lt;/code&gt; methods. These are currently unused arguments and were passed implicitly in earlier versions of Connect IQ, but must now be included explicitly.&lt;/li&gt;
&lt;li&gt;An&amp;nbsp;&lt;code&gt;initialize()&lt;/code&gt; method that takes an array of options but to which none are passed&lt;code&gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="debugging"&gt;&lt;/a&gt; How can I test or debug Connect IQ apps I am developing?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;A simple way to test Connect IQ apps is to include&amp;nbsp;&lt;/span&gt;&lt;code&gt;System.println()&lt;/code&gt;&lt;span&gt;&amp;nbsp;statements at strategic points in your app. Within Eclipse, these&lt;/span&gt;&lt;span&gt; statements will output to the console. On a device,&lt;/span&gt;&lt;i&gt;&lt;span&gt; &lt;/span&gt;&lt;/i&gt;these &lt;span&gt;statements write to the &lt;code&gt;/GARMIN/APPS/LOGS&lt;/code&gt;&lt;/span&gt;&lt;code&gt;&amp;lt;APPNAME&amp;gt;.TXT&lt;/code&gt;&lt;span&gt;&amp;nbsp;file, if it exists&lt;/span&gt;&lt;span&gt;. This file is not automatically created, so must be created manually and named to match the name of the app&amp;#39;s &lt;code&gt;PRG&lt;/code&gt; file. For example, to log output from&amp;nbsp;&lt;/span&gt;&lt;code&gt;/GARMIN/APPS/MYAPP.PRG&lt;/code&gt;&lt;span&gt;, create the &lt;/span&gt;&lt;code&gt;/GARMIN/APPS/LOGS/MYAPP.TXT&lt;/code&gt;&lt;span&gt; file.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;For more advanced debugging, Connect IQ has a unit testing framework called &lt;em&gt;Run No Evil&lt;/em&gt;, and a debugger that&amp;#39;s included in the Connect IQ plug-in for Eclipse that can be used to dig into potential issues within the Connect IQ simulator. Check out the &lt;a href="https://developer.garmin.com/connect-iq/core-topics/debugging/"&gt;Debugging &lt;/a&gt;and &lt;a href="https://developer.garmin.com/connect-iq/core-topics/unit-testing/"&gt;Unit Testing&lt;/a&gt; chapters of the Core Topics Guide for more info.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;In addition to these tools, there are two general types of on-device crash that can occur related to Connect IQ, which each generate log files:&amp;nbsp;&lt;/span&gt;app crashes&lt;span&gt;&amp;nbsp;and&amp;nbsp;&lt;/span&gt;device crashes&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;App crashes&lt;/strong&gt; typically result in an app quitting unexpectedly or displaying an &amp;#39;IQ!&amp;#39; icon, but does not cause the entire device to crash or reboot. This kind of crash is most commonly due to a bug in an app, though it can also be due to a bug in Connect IQ itself&lt;/span&gt;&lt;i&gt;.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;span&gt;Whenever an app crash occurs, a &lt;code&gt;/GARMIN/APPS/LOGS/&lt;/code&gt;&lt;/span&gt;&lt;code&gt;CIQ_LOG.YML&lt;/code&gt;&lt;span&gt; file is written&lt;/span&gt;&lt;span&gt; to the device, which usually contains a call stack from the app (older devices may write a &lt;code&gt;CIQ_LOG.TXT&lt;/code&gt; file).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Device crashes&lt;/strong&gt; typically cause the device to reboot or freeze. These indicate a Connect IQ or device firmware bug, and should be much less common than app crashes. When a device crash occurs, an&amp;nbsp;&lt;/span&gt;&lt;code&gt;ERR_LOG.TXT&lt;/code&gt;&lt;span&gt; file is typically written to&amp;nbsp;&lt;/span&gt;&lt;code&gt;/GARMIN&lt;/code&gt; or &lt;code&gt;/GARMIN/DEBUG&lt;/code&gt;&lt;span&gt; on the device, containing stack trace information related to the crash. Garmin&amp;#39;s device teams can take a look at the device crash logs to determine the cause of the crash and will typically provide a fix in a future firmware release.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;When any crash log file exceeds 5 KB, it will automatically be archived to&amp;nbsp;&lt;/span&gt;&lt;code&gt;&amp;lt;LOGNAME&amp;gt;.BAK&lt;/code&gt;&lt;span&gt;, and a new log will be started. Any old &lt;code&gt;.BAK&lt;/code&gt; files will be overwritten when the archive occurs, so the maximum practical space available for logging is ~10 KB.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;b&gt;&lt;a id="report-bugs"&gt;&lt;/a&gt;&amp;nbsp;I think that I&amp;#39;ve found a bug with CIQ. How do I report it?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;If you think you&amp;#39;ve found a Connect IQ bug, please report it in the &lt;a title="Connect IQ Bug Reports" href="/developer/connect-iq/i/bug-reports"&gt;Connect IQ Bug Reports&lt;/a&gt; tool!&amp;nbsp; Please make sure to read the &lt;a title="Bug Reporting Rules" href="/developer/connect-iq/w/wiki/5/bug-reports-faq"&gt;Bug Reporting FAQ&lt;/a&gt; to ensure you provide us with the information we need to investigate the problem. Be advised that if you post about a bug in the discussion forum, your thread may be moved or deleted.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="reviews"&gt;&lt;/a&gt; My app is receiving inappropriate reviews. Is there something I can do about that?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Developers may flag reviews of their own apps they believe are inappropriate and provide a reason explaining why. Store admins will evaluate each case and remove reviews that violate Garmin&amp;#39;s Terms of Use (see&amp;nbsp;&lt;a href="https://www.garmin.com/en-US/legal/terms-of-use/"&gt;https://www.garmin.com/en-US/legal/terms-of-use/&lt;/a&gt;).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Getting Started, New Developer, CIQ, Connect IQ, New&lt;/div&gt;
</description></item><item><title>New Developer FAQ</title><link>https://forums.garmin.com/developer/connect-iq/w/wiki/4/new-developer-faq/revision/19</link><pubDate>Mon, 03 Mar 2025 15:33:33 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:f550ecc7-adab-4078-99fc-58b61b8587dd</guid><dc:creator>Brandon.ConnectIQ</dc:creator><description>Revision 19 posted to Wiki by Brandon.ConnectIQ on 3/3/2025 3:33:33 PM&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="Where can I download the SDK?" href="#sdk-download"&gt;Where can I download the SDK?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="How do I get started with Connect IQ?" href="#get-started"&gt;How do I get started with Connect IQ?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="Can I build apps that will work on any device that supports Connect IQ?" href="#any-device"&gt;I just downloaded the latest SDK. Can I build apps that will work on any device that supports Connect IQ?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="Am I allowed to charge for my app though the Connect IQ app store?" href="#charge"&gt;Am I allowed to charge for my app though the Connect IQ app store?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="Can I display seconds on my watch face?" href="#display-seconds"&gt;Can I display seconds on my watch face?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="How do I format output padded with leading zeros?" href="#leading-zeros"&gt;How do I format output padded with leading zeros?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="How can I load the apps I develop to my device for testing purposes?" href="#testing-purposes"&gt;How can I load the apps I develop to my device for testing purposes?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="I have side-loaded an app as described above, but app settings won't work. Why is this?" href="#app-settings"&gt;I have side-loaded an app as described above, but app settings won&amp;#39;t work. Why is this?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="My app uses app settings, and it sometimes crashes after changing the settings, but the rest of the time it works fine. What can cause this?" href="#settings-crash"&gt;My app uses app settings, and it sometimes crashes after changing the settings, but the rest of the time it works fine. What can cause this?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="I keep getting a &amp;quot;Too Many Arguments Error&amp;quot;, but I never used to get this. What is going on?" href="#too-many-arguments"&gt;I keep getting a &amp;quot;Too Many Arguments Error&amp;quot;, but I never used to get this. What is going on?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="How can I test or debug Connect IQ apps I am developing?" href="#debugging"&gt;How can I test or debug Connect IQ apps I am developing?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="I think that I've found a bug with CIQ. How do I report it?" href="#report-bugs"&gt;I think that I&amp;#39;ve found a bug with CIQ. How do I report it?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="#reviews"&gt;My app is receiving inappropriate reviews. Is there something I can do about that?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="sdk-download"&gt;&lt;/a&gt; Where can I download the SDK?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The latest version of the SDK can be found at &lt;a href="http://developer.garmin.com/connect-iq/sdk/" rel="noopener noreferrer" target="_blank"&gt;http://developer.garmin.com/connect-iq/sdk/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="get-started"&gt;&lt;/a&gt; How do I get started with Connect IQ?&lt;/strong&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;The&amp;nbsp;&lt;/span&gt;&lt;a href="https://developer.garmin.com/connect-iq/connect-iq-basics/"&gt;Connect IQ Basics Guide&lt;/a&gt;&lt;span&gt; is a good place&lt;/span&gt;&lt;span&gt; to start gaining familiarity with Monkey C and Connect IQ. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Once you&amp;#39;re set up, take a look at the &lt;a href="https://developer.garmin.com/connect-iq/core-topics/"&gt;Core Topics&lt;/a&gt; and &lt;a href="https://developer.garmin.com/connect-iq/user-experience-guidelines/"&gt;User Experience Guide&lt;/a&gt; for more in-depth info. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;a title="API Documentation" href="http://developer.garmin.com/connect-iq/api-docs/"&gt;API Documentation&lt;/a&gt; and more &lt;a href="https://developer.garmin.com/connect-iq/monkey-c/"&gt;Monkey C&lt;/a&gt; specifics are also available on our developer site.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;The SDK includes a set of sample apps in the &amp;#39;samples&amp;#39; folder that demonstrate some of the basic capabilities of Connect IQ.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;If you have questions along the way, these forums are the best place to go for assistance. Many questions have already been answered in previously posted threads, however both the Connect IQ team and several experienced developers monitor the forums to answer new questions or respond to issues you may encounter.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;b&gt;&lt;a id="any-device"&gt;&lt;/a&gt; I just downloaded the latest SDK. Can I build apps that will work on any device that supports Connect IQ?&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Yes! We have designed the SDK so that you can target any Connect IQ-compatible devices, regardless of the Connect IQ version they support. A project can be configured to target a minimum SDK version, which limits the selectable target devices to those that support the selected Connect IQ version. Targeting the newest version of Connect IQ will limit the devices that can run your app, but will give you access to all of the latest goodies. Anything built targeting earlier SDK versions will work on the latest devices, so allows your app to run on more devices as long as you don&amp;#39;t need the newest features for your app.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The minimum SDK selector is designed to build for the highest supported SDK for each device. For example, consider this set of devices: device A (3.x), B (2.x), and C (1.x). The table below illustrates how the build system is designed to function:&lt;/span&gt;&lt;/p&gt;
&lt;table class="text_table" align="center"&gt;
&lt;tbody&gt;
&lt;tr class="text_table_tr" valign="top"&gt;
&lt;td class="text_table_td"&gt;&lt;b&gt;Minimum SDK Selected&lt;/b&gt;&lt;/td&gt;
&lt;td class="text_table_td"&gt;&lt;b&gt;Eligible Target Devices&lt;/b&gt;&lt;/td&gt;
&lt;td class="text_table_td"&gt;&lt;b&gt;What Gets Built&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="text_table_tr" valign="top"&gt;
&lt;td class="text_table_td"&gt;3.0.x&lt;/td&gt;
&lt;td class="text_table_td"&gt;A&lt;/td&gt;
&lt;td class="text_table_td"&gt;3.0.x PRG for A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="text_table_tr" valign="top"&gt;
&lt;td class="text_table_td"&gt;2.4.x&lt;/td&gt;
&lt;td class="text_table_td"&gt;A, B&lt;/td&gt;
&lt;td class="text_table_td"&gt;3.0.x PRG for A, 2.4.x PRG for B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="text_table_tr" valign="top"&gt;
&lt;td class="text_table_td"&gt;1.2.x&lt;/td&gt;
&lt;td class="text_table_td"&gt;A, B, C&lt;/td&gt;
&lt;td class="text_table_td"&gt;3.0.x PRG for A, 2.4.x PRG for B, 1.2.x PRG for C&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="charge"&gt;&lt;/a&gt;&amp;nbsp;Am I allowed to charge for my app though the Connect IQ app store?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Yes, you are! Garmin offers a monetization solution that allows you to accept payments for your apps directly through the App Store. You can read more about it in the &lt;a href="https://developer.garmin.com/connect-iq/monetization/"&gt;Monetization&lt;/a&gt; docs.&lt;br /&gt;&lt;br /&gt;It is also acceptable to list prices, link to payment sites, or ask for donations on the Connect IQ app store as long as solicitations are related to your app and you mark&amp;nbsp;that the app requires payments, etc., in the app listing details.. The app store falls under the the&amp;nbsp;&lt;/span&gt;&lt;a href="http://developer.garmin.com/connect-iq/sdk/" rel="noopener noreferrer" target="_blank"&gt;Connect IQ SDK License Agreement&lt;/a&gt;&lt;span&gt;, which does not forbid solicitation for sales of apps by app developers. However, solicitation for business on Garmin sites other than the app store (such as this forum) is prohibited but Garmin&amp;#39;s&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.garmin.com/en-US/legal/terms-of-use" rel="noopener noreferrer" target="_blank"&gt;Terms of Use&lt;/a&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="display-seconds"&gt;&lt;/a&gt; Can I display seconds on my watch face?&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Yes, you can! However, one priority of Connect IQ is the preservation of battery life, so we have a system in place that governs how often watch faces may be updated. Generally, watch faces update once per minute in low power mode, and once per second when in full power mode. The watch will enter full power mode for a few seconds when the user gestures to look at it, and then returns to low power mode. Developers will often detect this transition to full power mode, display a seconds indicator for a few moments, and then hide the seconds indicator once the device returns to low power mode. &lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Newer devices may also support Always On watch faces, which can update once per second as long as they operate within certain limits.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;You can find out more about low power mode, full power mode, and Always On watch faces in the &lt;a href="https://developer.garmin.com/connect-iq/connect-iq-basics/"&gt;Connect IQ Basics Guide&lt;/a&gt;, or read about the related APIs in the&amp;nbsp;&lt;a href="http://developer.garmin.com/downloads/connect-iq/monkey-c/doc/Toybox/WatchUi/WatchFace.html" rel="noopener noreferrer" target="_blank"&gt;API Docs&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="leading-zeros"&gt;&lt;/a&gt; How do I format output padded with leading zeros?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Many Connect IQ apps include time values that require leading zeros. For example, time written in an HH:MM:SS format appears as &amp;quot;12:05:05&amp;quot; rather than &amp;quot;12:5:5&amp;quot;. Monkey C includes&amp;nbsp;&lt;/span&gt;&lt;a href="https://developer.garmin.com/connect-iq/api-docs/Toybox/Lang.html#format-instance_function"&gt;string formatting functions&lt;/a&gt;&lt;span&gt;&amp;nbsp;that can get this job done using a &lt;/span&gt;&lt;code&gt;%02d&lt;/code&gt;&lt;span&gt; format specifier.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;A common error is to specify a format of &lt;code&gt;%.2d&lt;/code&gt; or &lt;code&gt;%0.2d&lt;/code&gt;. This may pad a decimal with leading zeros in some languages, such as in C++&amp;#39;s&amp;nbsp;&lt;/span&gt;&lt;code&gt;&lt;a href="http://www.cplusplus.com/reference/cstdio/printf/" rel="noopener noreferrer" target="_blank"&gt;printf()&lt;/a&gt;&lt;/code&gt;&lt;span&gt;&amp;nbsp;function, but Monkey C follows the&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1336.pdf" rel="noopener noreferrer" target="_blank"&gt;C99 standard&lt;/a&gt;&lt;span&gt;. C99 requires the &lt;code&gt;0&lt;/code&gt; flag to specify padding with leading zeros for &lt;code&gt;d&lt;/code&gt;, &lt;code&gt;i&lt;/code&gt;, &lt;code&gt;o&lt;/code&gt;, &lt;code&gt;u&lt;/code&gt;, &lt;code&gt;x&lt;/code&gt;, &lt;code&gt;X&lt;/code&gt;, &lt;code&gt;a&lt;/code&gt;, &lt;code&gt;A&lt;/code&gt;, &lt;code&gt;e&lt;/code&gt;, &lt;code&gt;f&lt;/code&gt;, &lt;code&gt;F&lt;/code&gt;, &lt;code&gt;g&lt;/code&gt;, and &lt;code&gt;G&lt;/code&gt; conversions. In addition, C99 states that if a precision is specified with &amp;#39;&lt;code&gt;.&lt;/code&gt;&amp;#39;, the the &lt;code&gt;0&lt;/code&gt; flag is ignored.&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="testing-purposes"&gt;&lt;/a&gt; How can I load the apps I develop to my device for testing purposes?&lt;/b&gt;&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Apps are typically installed to devices via the&amp;nbsp;&lt;/span&gt;&lt;a href="https://apps.garmin.com/en-US/" rel="noopener noreferrer" target="_blank"&gt;Connect IQ App Store&lt;/a&gt;&lt;span&gt;, but it&amp;#39;s often useful to side-load an app to a device for testing without having to first upload a version to the app store. Here&amp;#39;s how:&lt;/span&gt;&lt;/p&gt;
&lt;ol class="decimal"&gt;
&lt;li&gt;In Eclipse, choose&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;i&gt;Connect IQ &amp;gt; Build for Device Wizard&amp;hellip;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;In the Build for Device Wizard window:
&lt;ul&gt;
&lt;li&gt;Choose the project you wish to build&lt;/li&gt;
&lt;li&gt;Choose the target device&lt;/li&gt;
&lt;li&gt;Choose the SDK version to target&lt;/li&gt;
&lt;li&gt;Specify a signing key&lt;/li&gt;
&lt;li&gt;Set an output location&lt;/li&gt;
&lt;li&gt;Click&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;i&gt;Finish&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Connect your device to the computer via USB (it should appear as a drive)&lt;/li&gt;
&lt;li&gt;Copy the PRG file made by the Build for Device Wizard from the output location to &lt;code&gt;/GARMIN/APPS&lt;/code&gt; on your device&lt;/li&gt;
&lt;li&gt;Disconnect your device; the app should be available for use&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="app-settings"&gt;&lt;/a&gt; I have side-loaded an app as described above, but app settings won&amp;#39;t work. Why is this?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://developer.garmin.com/connect-iq/core-topics/app-settings/"&gt;App settings&lt;/a&gt;&lt;span&gt;&amp;nbsp;allow user to configure an app via the &lt;a href="https://buy.garmin.com/en-US/US/p/616398/pn/010-CONIQ-00"&gt;Connect IQ Store app&lt;/a&gt;, &lt;/span&gt;&lt;a href="http://software.garmin.com/en-US/express.html" rel="noopener noreferrer" target="_blank"&gt;Garmin Express&lt;/a&gt;&lt;span&gt;, or&amp;nbsp;&lt;/span&gt;&lt;a href="https://buy.garmin.com/en-US/US/on-the-go/apps/garmin-connect-mobile/prod125677.html" rel="noopener noreferrer" target="_blank"&gt;Garmin Connect Mobile&lt;/a&gt;&lt;span&gt;, and depend on the Connect IQ App Store to function properly. When an app is side loaded, this connection to the Connect IQ App Store is never established. If you have an app that uses app settings that needs to be tested, you may submit the app to the Connect IQ App Store and test out the settings features while the app is either in a beta state or pending approval.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;b&gt;&lt;a id="settings-crash"&gt;&lt;/a&gt; My app uses app settings, and it sometimes crashes after changing the settings, but the rest of the time it works fine. What can cause this?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In the past, there have been issues where the client used to manage app settings, like the &lt;a href="https://buy.garmin.com/en-US/US/p/616398/pn/010-CONIQ-00"&gt;Connect IQ Store app&lt;/a&gt;, &lt;a href="http://software.garmin.com/en-US/express.html" rel="noopener noreferrer" target="_blank"&gt;Garmin Express&lt;/a&gt;, or &lt;a href="https://buy.garmin.com/en-US/US/on-the-go/apps/garmin-connect-mobile/prod125677.html" rel="noopener noreferrer" target="_blank"&gt;Garmin Connect Mobile&lt;/a&gt;, has returned a setting value with an unexpected type, so it&amp;#39;s good practice to check a setting value to ensure it&amp;#39;s the expected type. For example, this code will check for a null value and convert the value to a Number as long as it is not null. Otherwise, a default value is returned:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;pre class="ui-code" data-mode="java"&gt;function readKeyInt(myApp,key,thisDefault) {
    var value = myApp.getProperty(key);
    if(value == null || !(value instanceof Number)) {
        if(value != null) {
            value = value.toNumber();
        } else {
            value = thisDefault;
        }
    }
    return value;
}&lt;/pre&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;&lt;a id="too-many-arguments"&gt;&lt;/a&gt; I keep getting a &amp;quot;Too Many Arguments Error&amp;quot;, but I never used to get this. What is going on?&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;We added a a feature in the 2.1.2 SDK release to perform an argument count check on function and method calls. This was included as part of a larger security effort, which includes things like app signing and encryption of app data. Overall, this is a good thing, since it promotes more robust source code prevents some potential security exploits. Unfortunately, it has also caused some apps to crash on 1.3.x and 2.x devices when built with the 2.1.2 SDK even though these same apps execute without issue when built with earlier SDK releases. This kind of crash appears in the&amp;nbsp;&lt;code&gt;CIQ_LOG.TXT&lt;/code&gt; or &lt;code&gt;CIQ_LOG.YML&lt;/code&gt; file as a &lt;em&gt;Too many arguments&lt;/em&gt; error, signifying the argument count check has failed. Here are a couple of examples that illustrate potential causes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Missing &lt;code&gt;state&lt;/code&gt; arguments for the &lt;code&gt;onStart()&lt;/code&gt;&amp;nbsp;and&amp;nbsp;&lt;code&gt;onStop()&lt;/code&gt; methods. These are currently unused arguments and were passed implicitly in earlier versions of Connect IQ, but must now be included explicitly.&lt;/li&gt;
&lt;li&gt;An&amp;nbsp;&lt;code&gt;initialize()&lt;/code&gt; method that takes an array of options but to which none are passed&lt;code&gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="debugging"&gt;&lt;/a&gt; How can I test or debug Connect IQ apps I am developing?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;A simple way to test Connect IQ apps is to include&amp;nbsp;&lt;/span&gt;&lt;code&gt;System.println()&lt;/code&gt;&lt;span&gt;&amp;nbsp;statements at strategic points in your app. Within Eclipse, these&lt;/span&gt;&lt;span&gt; statements will output to the console. On a device,&lt;/span&gt;&lt;i&gt;&lt;span&gt; &lt;/span&gt;&lt;/i&gt;these &lt;span&gt;statements write to the &lt;code&gt;/GARMIN/APPS/LOGS&lt;/code&gt;&lt;/span&gt;&lt;code&gt;&amp;lt;APPNAME&amp;gt;.TXT&lt;/code&gt;&lt;span&gt;&amp;nbsp;file, if it exists&lt;/span&gt;&lt;span&gt;. This file is not automatically created, so must be created manually and named to match the name of the app&amp;#39;s &lt;code&gt;PRG&lt;/code&gt; file. For example, to log output from&amp;nbsp;&lt;/span&gt;&lt;code&gt;/GARMIN/APPS/MYAPP.PRG&lt;/code&gt;&lt;span&gt;, create the &lt;/span&gt;&lt;code&gt;/GARMIN/APPS/LOGS/MYAPP.TXT&lt;/code&gt;&lt;span&gt; file.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;For more advanced debugging, Connect IQ has a unit testing framework called &lt;em&gt;Run No Evil&lt;/em&gt;, and a debugger that&amp;#39;s included in the Connect IQ plug-in for Eclipse that can be used to dig into potential issues within the Connect IQ simulator. Check out the &lt;a href="https://developer.garmin.com/connect-iq/core-topics/debugging/"&gt;Debugging &lt;/a&gt;and &lt;a href="https://developer.garmin.com/connect-iq/core-topics/unit-testing/"&gt;Unit Testing&lt;/a&gt; chapters of the Core Topics Guide for more info.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;In addition to these tools, there are two general types of on-device crash that can occur related to Connect IQ, which each generate log files:&amp;nbsp;&lt;/span&gt;app crashes&lt;span&gt;&amp;nbsp;and&amp;nbsp;&lt;/span&gt;device crashes&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;App crashes&lt;/strong&gt; typically result in an app quitting unexpectedly or displaying an &amp;#39;IQ!&amp;#39; icon, but does not cause the entire device to crash or reboot. This kind of crash is most commonly due to a bug in an app, though it can also be due to a bug in Connect IQ itself&lt;/span&gt;&lt;i&gt;.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;span&gt;Whenever an app crash occurs, a &lt;code&gt;/GARMIN/APPS/LOGS/&lt;/code&gt;&lt;/span&gt;&lt;code&gt;CIQ_LOG.YML&lt;/code&gt;&lt;span&gt; file is written&lt;/span&gt;&lt;span&gt; to the device, which usually contains a call stack from the app (older devices may write a &lt;code&gt;CIQ_LOG.TXT&lt;/code&gt; file).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Device crashes&lt;/strong&gt; typically cause the device to reboot or freeze. These indicate a Connect IQ or device firmware bug, and should be much less common than app crashes. When a device crash occurs, an&amp;nbsp;&lt;/span&gt;&lt;code&gt;ERR_LOG.TXT&lt;/code&gt;&lt;span&gt; file is typically written to&amp;nbsp;&lt;/span&gt;&lt;code&gt;/GARMIN&lt;/code&gt; or &lt;code&gt;/GARMIN/DEBUG&lt;/code&gt;&lt;span&gt; on the device, containing stack trace information related to the crash. Garmin&amp;#39;s device teams can take a look at the device crash logs to determine the cause of the crash and will typically provide a fix in a future firmware release.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;When any crash log file exceeds 5 KB, it will automatically be archived to&amp;nbsp;&lt;/span&gt;&lt;code&gt;&amp;lt;LOGNAME&amp;gt;.BAK&lt;/code&gt;&lt;span&gt;, and a new log will be started. Any old &lt;code&gt;.BAK&lt;/code&gt; files will be overwritten when the archive occurs, so the maximum practical space available for logging is ~10 KB.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;b&gt;&lt;a id="report-bugs"&gt;&lt;/a&gt;&amp;nbsp;I think that I&amp;#39;ve found a bug with CIQ. How do I report it?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;If you think you&amp;#39;ve found a Connect IQ bug, please report it in the &lt;a title="Connect IQ Bug Reports" href="/developer/connect-iq/i/bug-reports"&gt;Connect IQ Bug Reports&lt;/a&gt; tool!&amp;nbsp; Please make sure to read the &lt;a title="Bug Reporting Rules" href="/developer/connect-iq/w/wiki/5/bug-reports-faq"&gt;Bug Reporting FAQ&lt;/a&gt; to ensure you provide us with the information we need to investigate the problem. Be advised that if you post about a bug in the discussion forum, your thread may be moved or deleted.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="reviews"&gt;&lt;/a&gt; My app is receiving inappropriate reviews. Is there something I can do about that?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Developers may flag reviews of their own apps they believe are inappropriate and provide a reason explaining why. Store admins will evaluate each case and remove reviews that violate Garmin&amp;#39;s Terms of Use (see&amp;nbsp;&lt;a href="https://www.garmin.com/en-US/legal/terms-of-use/"&gt;https://www.garmin.com/en-US/legal/terms-of-use/&lt;/a&gt;).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Getting Started, New Developer, CIQ, Connect IQ, New&lt;/div&gt;
</description></item><item><title>Getting Started with Connect IQ BLE Development</title><link>https://forums.garmin.com/developer/connect-iq/w/wiki/19/getting-started-with-connect-iq-ble-development</link><pubDate>Tue, 15 Oct 2024 17:02:07 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:4f4abd96-e5b5-46ee-bd10-d6de608751dd</guid><dc:creator>Ashley.Garmin</dc:creator><description>Current Revision posted to Wiki by Ashley.Garmin on 10/15/2024 5:02:07 PM&lt;br /&gt;
&lt;p&gt;Starting with Connect IQ version 3.1.0, developers have the ability to communicate directly with devices via the Bluetooth Low Energy wireless communication protocol. This has opened up a whole new world of possibilities for what can be done with Connect IQ. For the uninitiated, the setup process to get started can seem quite daunting. The purpose of this setup guide is to help lighten the load to get developers off the ground as quickly as possible.&lt;br /&gt;&lt;span style="font-family:inherit;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="resources"&gt;Resources&lt;/h2&gt;
&lt;p&gt;When going through this guide, developers will want to keep a few things handy.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Connect IQ BLE API Documentation -&amp;nbsp;&lt;/strong&gt;Having the &lt;a href="https://developer.garmin.com/connect-iq/api-docs/Toybox/BluetoothLowEnergy.html"&gt;API Documentation&lt;/a&gt; close by will be critical (especially in the later steps of this document).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Nordic nRF52 DK -&amp;nbsp;&lt;/strong&gt;The Connect IQ team has built out the Connect IQ SDK tools to be compatible with the &lt;a href="https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52-DK"&gt;Nordic nRF52 DK&lt;/a&gt; Bluetooth 5 and Bluetooth mesh Development Kit for nRF52810.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Nordic Documentation Page -&amp;nbsp;&lt;/strong&gt;The &lt;a href="https://www.nordicsemi.com/DocLib?Product=nRF52832%20core%20documentation&amp;amp;tags=nRF52832%2CnRF52+DK"&gt;Nordic Documentation&lt;/a&gt; has links to all of the resources needed to use the nRF52 DK.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521--mce%253Aprotected%2520%25253C%252521--mce%25253Aprotected%252520%2525253C%25252521--mce%2525253Aprotected%25252520%252525253C%2525252521--mce%252525253Aprotected%2525252520%25252525253C%252525252521--%252525252520%252525252520%252525252520%252525252520and%252525252520nRF52832%252525252520SoCs%252525252520and%252525252520the%252525252520Nordic%252525252520%25252525255BnRF52840%252525252520Dongle%25252525255D%25252525255Bdongle%25252525255D.%252525252520--%25252525253E--%252525253E--%2525253E--%25253E--%253E--%3E--&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;nRF Connect For Desktop -&amp;nbsp;&lt;/strong&gt;The &lt;a href="https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Connect-for-desktop"&gt;nRF Connect For Desktop&lt;/a&gt; application allows developers to flash new firmware to the board, monitor connections, etc. This software is necessary to program the board to work correctly with the Connect IQ simulator.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;An up-to-date Connect IQ SDK -&amp;nbsp;&lt;/strong&gt;To use the BLE APIs, developers should be working with the current version of the Connect IQ SDK.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Firmware for the nRF52 DK or nRF52840 Dongle -&amp;nbsp;&lt;/strong&gt;The memory layout of the&amp;nbsp;development board will need to be flashed to a different firmware for use with the Connect IQ SDK:&amp;nbsp;&lt;a href="https://developer.garmin.com/downloads/connect-iq/connectivity_2.0.1_115k2_with_s132_5.0.zip"&gt;nRF52 DK firmware&lt;/a&gt;&amp;nbsp;or &lt;a href="https://developer.garmin.com/downloads/connect-iq/connectivity_1.0.0_usb_with_s132_5.1.0.zip"&gt;nRF52840 Dongle firmware&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521--mce%253Aprotected%2520%25253C%252521--mce%25253Aprotected%252520%2525253C%25252521--mce%2525253Aprotected%25252520%252525253C%2525252521--mce%252525253Aprotected%2525252520%25252525253C%252525252521--*%252525252520%25252525255BnRF52840%252525252520Dongle%252525252520firmware%25252525255D%25252525255BDongle_firmware%25252525255D--%25252525253E--%252525253E--%2525253E--%25253E--%253E--%3E--&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="windows"&gt;Windows&lt;/h3&gt;
&lt;p&gt;The drivers and applications needed to communicate with the nRF52 DK are all included in the installation of &lt;a href="https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Connect-for-desktop"&gt;nRF Connect for Desktop&lt;/a&gt; for the Windows platform. Once this application is installed along with the necessary drivers, the nRF52 DK should be found by the nRF Connect for Desktop application.&lt;/p&gt;
&lt;p&gt;At this point, proceed to the &lt;a href="#Using-Nordic-nRF-Connect"&gt;Using Nordic nRF Connect&lt;/a&gt; section.&lt;/p&gt;
&lt;h3 id="mac"&gt;Mac&lt;/h3&gt;
&lt;p&gt;When using macOS, developers will need to manually install the JLink/JTrace USB drivers to communicate with the nRF52 DK board. To do so, download and install the Segger JLink installer &lt;a href="https://www.segger.com/downloads/jlink/JLink_MacOSX_V622g.pkg"&gt;package 6.22g&lt;/a&gt; for Mac.&lt;/p&gt;
&lt;p&gt;Once this is completed, developers will need to install the &lt;a href="https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Connect-for-desktop"&gt;nRF Connect for Desktop&lt;/a&gt; for Mac.&lt;/p&gt;
&lt;p&gt;At this point, proceed to the &lt;a href="#Using-Nordic-nRF-Connect"&gt;Using Nordic nRF Connect&lt;/a&gt; section.&lt;/p&gt;
&lt;h3 id="linux"&gt;Linux&lt;/h3&gt;
&lt;p&gt;When using Linux, developers will need to manually install the JLink/JTrace USB drivers to communicate with the nRF52 DK board. To do so, download and install using the appropriate Segger JLink installer for Linux:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;32-bit: &lt;a href="https://www.segger.com/downloads/jlink/JLink_Linux_V622g_i386.deb"&gt;JLink_6.22g - 32&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;64-bit: &lt;a href="https://www.segger.com/downloads/jlink/JLink_Linux_V622g_x86_64.deb"&gt;JLink_6.22g - 64&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once this is completed developers will need to install the &lt;a href="https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Connect-for-desktop"&gt;nRF Connect for Desktop&lt;/a&gt; for Linux.&lt;/p&gt;
&lt;p&gt;At this point, proceed to the &lt;a href="#Using-Nordic-nRF-Connect"&gt;Using Nordic nRF Connect&lt;/a&gt; section.&lt;/p&gt;
&lt;h3 id="usingnordicnrfconnect"&gt;Using Nordic nRF Connect&lt;/h3&gt;
&lt;p&gt;The nRF Connect Desktop application will need to be installed. Please see the above sections for the appropriate links.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Once installed, launch the application. Click &lt;em&gt;Add/remove apps&lt;/em&gt;&lt;/p&gt;
&lt;em&gt;&lt;img alt=" " src="/resized-image/__size/320x240/__key/communityserver-wikis-components-files/00-00-00-00-01/pastedimage1556206427467v2.png" /&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install the &lt;em&gt;Programmer&lt;/em&gt; app.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Plug in the nRF52 board.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Launch&lt;/em&gt; the &lt;em&gt;Programmer&lt;/em&gt; app.&lt;/p&gt;
&lt;img alt=" " src="/resized-image/__size/320x240/__key/communityserver-wikis-components-files/00-00-00-00-01/nRFConnectProgrammerLaunch.png" /&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Near the top left, click &lt;em&gt;Select device&lt;/em&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select the correct device.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;em&gt;Read&lt;/em&gt; to see the Memory Layout of the connected device.&lt;a class="footnote" id="fnref:12" title="see footnote" href="#fn:12"&gt;[12]&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Drag and drop or click &lt;em&gt;Add HEX file&lt;/em&gt; to prepare the desired Memory Layout with the proper &lt;code&gt;.hex&lt;/code&gt; file.&lt;/p&gt;
&lt;img alt=" " src="/resized-image/__size/320x240/__key/communityserver-wikis-components-files/00-00-00-00-01/nRFConnectPrepMemoryLayout.png" /&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;em&gt;Erase &amp;amp; write&lt;/em&gt; to flash the new memory layout.&lt;/p&gt;
&lt;img alt=" " src="/resized-image/__size/320x240/__key/communityserver-wikis-components-files/00-00-00-00-01/nRFConnectWriteMemoryLayout.png" /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="findingthecomport"&gt;Finding The COM Port&lt;/h3&gt;
&lt;p&gt;Now that the board is properly communicating with the computer, it&amp;rsquo;s time to figure out which port it&amp;rsquo;s utilizing.&lt;/p&gt;
&lt;h4 id="windows"&gt;Windows&lt;/h4&gt;
&lt;p&gt;Open up Device Manager and find your device under &lt;code&gt;Ports&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;It will look something like this:&lt;/p&gt;
&lt;figure&gt;&lt;img alt=" " src="/resized-image/__size/320x240/__key/communityserver-wikis-components-files/00-00-00-00-01/nRFJLinkDevMgr.png" /&gt;&lt;/figure&gt;
&lt;p&gt;The communications port is listed in parentheses. In the example above the communications port is &lt;code&gt;COM4&lt;/code&gt;. Copy this to be used in a later step and proceed to &lt;a href="#setting-the-com-port"&gt;Setting the COM Port&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id="mac"&gt;Mac&lt;/h4&gt;
&lt;p&gt;Open up a terminal and type:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ls /dev/tty.usbmodem*
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;then press &lt;code&gt;Tab&lt;/code&gt;. This should list out the port information in the format &lt;code&gt;/dev/tty.usbmodem&amp;lt;number&amp;gt;&lt;/code&gt;. Copy this to be used in a later step and proceed to &lt;a href="#setting-the-com-port"&gt;Setting the COM Port&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id="linux"&gt;Linux&lt;/h4&gt;
&lt;p&gt;Open up a terminal and type:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ls /dev/ttyACM*
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;then press &lt;code&gt;Tab&lt;/code&gt;. This should list out the port information in the format &lt;code&gt;/dev/ttyACM&amp;lt;number&amp;gt;&lt;/code&gt;. Copy this to be used in a later step and proceed to &lt;a href="#setting-the-com-port"&gt;Setting the COM Port&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id="settingthecomport"&gt;Setting the COM Port&lt;/h4&gt;
&lt;p&gt;At this point the nRF52 is properly communicating with the development environment and the com port information has been retrieved. The final step is to set the COM port in the Connect IQ Simulator.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Launch the simulator via Eclipse or command line tools.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select &lt;em&gt;Settings&lt;/em&gt; &amp;gt; &lt;em&gt;BLE Settings&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In the dialog box, enter the COM port information from &lt;a href="#finding-the-com-port"&gt;Finding the COM Port&lt;/a&gt;.&lt;/p&gt;
&lt;img alt=" " src="/resized-image/__size/320x240/__key/communityserver-wikis-components-files/00-00-00-00-01/nRFSetComPortSim.png" /&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;em&gt;OK&lt;/em&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It&amp;rsquo;s possible that developers might encounter an error. This is likely due to a failure to set the COM Port for the Connect IQ simulator. If an error occurs, then developers have a few things they can check.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Double check the COM Port assignment:&lt;/strong&gt; Follow the steps for the correct environment to &lt;a href="#finding-the-com-port"&gt;find&lt;/a&gt; and confirm the COM Port.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ensure there are no copy/paste errors:&lt;/strong&gt; Double check the information entered when &lt;a href="#setting-the-com-port"&gt;setting the COM Port&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That&amp;rsquo;s it! If all goes well, then the Connect IQ Simulator will use the nRF52 DK board BLE chipset to communicate with nearby BLE devices per the Connect IQ Bluetooth Low Energy APIs. For more information on the APIs, please refer to the &lt;a href="https://developer.garmin.com/downloads/connect-iq/monkey-c/doc/Toybox.html"&gt;API documentation&lt;/a&gt; and sample applications included in the Connect IQ SDK.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: BLE, Getting Started, CIQ, FAQ&lt;/div&gt;
</description></item><item><title>App Approval Exceptions</title><link>https://forums.garmin.com/developer/connect-iq/w/wiki/10/app-approval-exceptions</link><pubDate>Wed, 15 May 2024 18:01:43 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:08f85234-7e96-4862-b87f-fb7aeb4af230</guid><dc:creator>Brandon.ConnectIQ</dc:creator><description>Current Revision posted to Wiki by Brandon.ConnectIQ on 5/15/2024 6:01:43 PM&lt;br /&gt;
&lt;p&gt;&lt;span&gt;Garmin is as permissive as possible when approving apps for inclusion on the Connect IQ app store. Aside from apps that contain offensive material or are subject to DMCA take-down requests, we&amp;#39;re happy to allow&amp;nbsp;most&amp;nbsp;everything else that our app developers would like to share with the Garmin community unless it falls under one of the following exceptions:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Extreme Sports&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Apps designed for &lt;span style="font-size:inherit;"&gt;scuba&lt;/span&gt; diving, free diving, skydiving, base-jumping, and extreme flight sports will not be listed on the app store for the following reasons:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;The diving features available on Descent products are the only Garmin features intended for underwater diving use.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;The altimeter/barometer feature available in some Garmin devices is intended to be used for general altitude reference only, and is not intended to be used for extreme sports such as skydiving, base-jumping or other activities that require the use of equipment that is designed and intended for such use. The Jumpmaster feature on Garmin tactix products is intended to be used for skydiving activities by experienced skydivers. This is the only Garmin feature that is intended for use while skydiving.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;span style="font-size:150%;"&gt;Aviation&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Aviation-specific apps (excluding aviation-themed Watch Faces) must include the following disclaimer at the top of their app description:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;WARNING: The app is intended only as an in-flight aid and should not be used as a primary information source. If the app contains a barometric altimeter, it will not function in a pressurized aircraft and should not be used in a pressurized aircraft.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Safety Awareness&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Apps designed for safety awareness purposes, such as incident detection or use with a Varia radar, may not be listed in the interest of customer safety.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Medical&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Apps designed for medical use may be subject to regulation by the U.S. Food and Drug Administration (FDA) as a device such that it needs clearance or approval by the agency before it can be lawfully marketed in the United States. The FDA has issued two guidance documents on the topic:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Mobile Medical App Guidance,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a class="external-link" href="https://www.fda.gov/media/80958/download" rel="nofollow"&gt;https://www.fda.gov/media/80958/download&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Clinical Decision Support Guidance,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a class="external-link" href="https://www.fda.gov/media/109618/download" rel="nofollow"&gt;https://www.fda.gov/media/109618/download&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Apps subject to these guidelines may be required to include&amp;nbsp;appropriate documentation. Otherwise, the app description must be updated to reflect that the app is not intended to be used for the purposes of medical treatment and is intended for educational purposes only.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Garmin designs and tests its products for their intended use to ensure safe operation and a positive customer experience. &lt;/span&gt;&lt;span&gt;If you have developed or are currently developing apps subject to these guidelines, we apologize and do not want to be a source of discouragement. You may still continue to build and distribute these apps as you wish outside of the Connect IQ app store, but we cannot allow content of this nature to be placed on any Garmin affiliated app resource.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Chinese National Flag&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;Chinese law describes the contexts within which the Chinese national flag may and may not be used. Article 20 of the Law of the PRC on the National Flag (&lt;a class="" href="http://www.lawinfochina.com/display.aspx?id=34075&amp;amp;lib=law"&gt;http://www.lawinfochina.com/display.aspx?id=34075&amp;amp;lib=law&lt;/a&gt;) states&amp;nbsp;that the national flag and the design shall not be used &lt;span&gt;in product appearance, for commercial use, or for trademark and patent licensing purposes.&lt;/span&gt;, which means it cannot be included in Connect IQ apps for display on Garmin products.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Garmin Branding&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Apps that use Garmin branding must comply with Garmin&amp;#39;s &lt;/span&gt;Consumer Brand Style Guide&lt;span&gt;, which includes specifications for things like logo colors, typeface, and positioning.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: awareness, Free Diving, Base-Jumping, Scuba, extreme sports, Approval, Extreme Flight, App Rejected, Diving, medical apps, Approval Exceptions, safety&lt;/div&gt;
</description></item><item><title>App Approval Exceptions</title><link>https://forums.garmin.com/developer/connect-iq/w/wiki/10/app-approval-exceptions/revision/9</link><pubDate>Wed, 15 May 2024 17:58:18 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:08f85234-7e96-4862-b87f-fb7aeb4af230</guid><dc:creator>Brandon.ConnectIQ</dc:creator><description>Revision 9 posted to Wiki by Brandon.ConnectIQ on 5/15/2024 5:58:18 PM&lt;br /&gt;
&lt;p&gt;&lt;span&gt;Garmin is as permissive as possible when approving apps for inclusion on the Connect IQ app store. Aside from apps that contain offensive material or are subject to DMCA take-down requests, we&amp;#39;re happy to allow&amp;nbsp;most&amp;nbsp;everything else that our app developers would like to share with the Garmin community unless it falls under one of the following exceptions:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Extreme Sports&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Apps designed for &lt;span style="font-size:inherit;"&gt;scuba&lt;/span&gt; diving, free diving, skydiving, base-jumping, and extreme flight sports will not be listed on the app store for the following reasons:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;The diving features available on Descent products are the only Garmin features intended for underwater diving use.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;The altimeter/barometer feature available in some Garmin devices is intended to be used for general altitude reference only, and is not intended to be used for extreme sports such as skydiving, base-jumping or other activities that require the use of equipment that is designed and intended for such use. The Jumpmaster feature on Garmin tactix products is intended to be used for skydiving activities by experienced skydivers. This is the only Garmin feature that is intended for use while skydiving.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;span style="font-size:150%;"&gt;Aviation&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Aviation-specific apps (excluding aviation-themed Watch Faces) must include the following disclaimer at the top of their app description:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;WARNING: The app is intended only as an in-flight aid and should not be used as a primary information source. If the app contains a barometric altimeter, it will not function in a pressurized aircraft and should not be used in a pressurized aircraft.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Safety Awareness&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Apps designed for safety awareness purposes, such as incident detection or use with a Varia radar, may not be listed in the interest of customer safety.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Medical&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Apps designed for medical use may be subject to regulation by the U.S. Food and Drug Administration (FDA) as a device such that it needs clearance or approval by the agency before it can be lawfully marketed in the United States. The FDA has issued two guidance documents on the topic:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Mobile Medical App Guidance,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a class="external-link" href="https://www.fda.gov/media/80958/download" rel="nofollow"&gt;https://www.fda.gov/media/80958/download&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Clinical Decision Support Guidance,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a class="external-link" href="https://www.fda.gov/media/109618/download" rel="nofollow"&gt;https://www.fda.gov/media/109618/download&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Apps subject to these guidelines may be required to include&amp;nbsp;appropriate documentation. Otherwise, the app description must be updated to reflect that the app is not intended to be used for the purposes of medical treatment and is intended for educational purposes only.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Garmin designs and tests its products for their intended use to ensure safe operation and a positive customer experience. &lt;/span&gt;&lt;span&gt;If you have developed or are currently developing apps subject to these guidelines, we apologize and do not want to be a source of discouragement. You may still continue to build and distribute these apps as you wish outside of the Connect IQ app store, but we cannot allow content of this nature to be placed on any Garmin affiliated app resource.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Chinese National Flag&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;Chinese law describes the contexts within which the Chinese national flag may and may not be used. Article 20 of the Law of the PRC on the National Flag (&lt;a class="" href="http://www.lawinfochina.com/display.aspx?id=34075&amp;amp;lib=law"&gt;http://www.lawinfochina.com/display.aspx?id=34075&amp;amp;lib=law&lt;/a&gt;) states&amp;nbsp;that the national flag and the design shall not be used as product appearance or commercial for trademark or patent licensing purpose, which means it cannot be included in Connect IQ apps for display on Garmin products.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Garmin Branding&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Apps that use Garmin branding must comply with Garmin&amp;#39;s &lt;/span&gt;Consumer Brand Style Guide&lt;span&gt;, which includes specifications for things like logo colors, typeface, and positioning.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: awareness, Free Diving, Base-Jumping, Scuba, extreme sports, Approval, Extreme Flight, App Rejected, Diving, medical apps, Approval Exceptions, safety&lt;/div&gt;
</description></item><item><title>New Developer FAQ</title><link>https://forums.garmin.com/developer/connect-iq/w/wiki/4/new-developer-faq/revision/18</link><pubDate>Tue, 16 Apr 2024 21:51:16 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:f550ecc7-adab-4078-99fc-58b61b8587dd</guid><dc:creator>Brandon.ConnectIQ</dc:creator><description>Revision 18 posted to Wiki by Brandon.ConnectIQ on 4/16/2024 9:51:16 PM&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="Where can I download the SDK?" href="#sdk-download"&gt;Where can I download the SDK?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="How do I get started with Connect IQ?" href="#get-started"&gt;How do I get started with Connect IQ?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="Can I build apps that will work on any device that supports Connect IQ?" href="#any-device"&gt;I just downloaded the latest SDK. Can I build apps that will work on any device that supports Connect IQ?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="Am I allowed to charge for my app though the Connect IQ app store?" href="#charge"&gt;Am I allowed to charge for my app though the Connect IQ app store?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="Can I display seconds on my watch face?" href="#display-seconds"&gt;Can I display seconds on my watch face?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="How do I format output padded with leading zeros?" href="#leading-zeros"&gt;How do I format output padded with leading zeros?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="How can I load the apps I develop to my device for testing purposes?" href="#testing-purposes"&gt;How can I load the apps I develop to my device for testing purposes?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="I have side-loaded an app as described above, but app settings won't work. Why is this?" href="#app-settings"&gt;I have side-loaded an app as described above, but app settings won&amp;#39;t work. Why is this?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="My app uses app settings, and it sometimes crashes after changing the settings, but the rest of the time it works fine. What can cause this?" href="#settings-crash"&gt;My app uses app settings, and it sometimes crashes after changing the settings, but the rest of the time it works fine. What can cause this?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="I keep getting a &amp;quot;Too Many Arguments Error&amp;quot;, but I never used to get this. What is going on?" href="#too-many-arguments"&gt;I keep getting a &amp;quot;Too Many Arguments Error&amp;quot;, but I never used to get this. What is going on?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="How can I test or debug Connect IQ apps I am developing?" href="#debugging"&gt;How can I test or debug Connect IQ apps I am developing?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;a title="I think that I've found a bug with CIQ. How do I report it?" href="#report-bugs"&gt;I think that I&amp;#39;ve found a bug with CIQ. How do I report it?&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="#reviews"&gt;My app is receiving inappropriate reviews. Is there something I can do about that?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="sdk-download"&gt;&lt;/a&gt; Where can I download the SDK?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The latest version of the SDK can be found at &lt;a href="http://developer.garmin.com/connect-iq/sdk/" rel="noopener noreferrer" target="_blank"&gt;http://developer.garmin.com/connect-iq/sdk/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="get-started"&gt;&lt;/a&gt; How do I get started with Connect IQ?&lt;/strong&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;The&amp;nbsp;&lt;/span&gt;&lt;a href="https://developer.garmin.com/connect-iq/connect-iq-basics/"&gt;Connect IQ Basics Guide&lt;/a&gt;&lt;span&gt; is a good place&lt;/span&gt;&lt;span&gt; to start gaining familiarity with Monkey C and Connect IQ. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Once you&amp;#39;re set up, take a look at the &lt;a href="https://developer.garmin.com/connect-iq/core-topics/"&gt;Core Topics&lt;/a&gt; and &lt;a href="https://developer.garmin.com/connect-iq/user-experience-guidelines/"&gt;User Experience Guide&lt;/a&gt; for more in-depth info. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;a title="API Documentation" href="http://developer.garmin.com/connect-iq/api-docs/"&gt;API Documentation&lt;/a&gt; and more &lt;a href="https://developer.garmin.com/connect-iq/monkey-c/"&gt;Monkey C&lt;/a&gt; specifics are also available on our developer site.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;The SDK includes a set of sample apps in the &amp;#39;samples&amp;#39; folder that demonstrate some of the basic capabilities of Connect IQ.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;If you have questions along the way, these forums are the best place to go for assistance. Many questions have already been answered in previously posted threads, however both the Connect IQ team and several experienced developers monitor the forums to answer new questions or respond to issues you may encounter.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;b&gt;&lt;a id="any-device"&gt;&lt;/a&gt; I just downloaded the latest SDK. Can I build apps that will work on any device that supports Connect IQ?&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Yes! We have designed the SDK so that you can target any Connect IQ-compatible devices, regardless of the Connect IQ version they support. A project can be configured to target a minimum SDK version, which limits the selectable target devices to those that support the selected Connect IQ version. Targeting the newest version of Connect IQ will limit the devices that can run your app, but will give you access to all of the latest goodies. Anything built targeting earlier SDK versions will work on the latest devices, so allows your app to run on more devices as long as you don&amp;#39;t need the newest features for your app.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The minimum SDK selector is designed to build for the highest supported SDK for each device. For example, consider this set of devices: device A (3.x), B (2.x), and C (1.x). The table below illustrates how the build system is designed to function:&lt;/span&gt;&lt;/p&gt;
&lt;table class="text_table" align="center"&gt;
&lt;tbody&gt;
&lt;tr class="text_table_tr" valign="top"&gt;
&lt;td class="text_table_td"&gt;&lt;b&gt;Minimum SDK Selected&lt;/b&gt;&lt;/td&gt;
&lt;td class="text_table_td"&gt;&lt;b&gt;Eligible Target Devices&lt;/b&gt;&lt;/td&gt;
&lt;td class="text_table_td"&gt;&lt;b&gt;What Gets Built&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="text_table_tr" valign="top"&gt;
&lt;td class="text_table_td"&gt;3.0.x&lt;/td&gt;
&lt;td class="text_table_td"&gt;A&lt;/td&gt;
&lt;td class="text_table_td"&gt;3.0.x PRG for A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="text_table_tr" valign="top"&gt;
&lt;td class="text_table_td"&gt;2.4.x&lt;/td&gt;
&lt;td class="text_table_td"&gt;A, B&lt;/td&gt;
&lt;td class="text_table_td"&gt;3.0.x PRG for A, 2.4.x PRG for B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="text_table_tr" valign="top"&gt;
&lt;td class="text_table_td"&gt;1.2.x&lt;/td&gt;
&lt;td class="text_table_td"&gt;A, B, C&lt;/td&gt;
&lt;td class="text_table_td"&gt;3.0.x PRG for A, 2.4.x PRG for B, 1.2.x PRG for C&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="charge"&gt;&lt;/a&gt;&amp;nbsp;Am I allowed to charge for my app though the Connect IQ app store?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Yes, you are! It is acceptable to list prices, link to payment sites, or ask for donations on the Connect IQ app store as long as solicitations are related to your app. The app store falls under the the&amp;nbsp;&lt;/span&gt;&lt;a href="http://developer.garmin.com/connect-iq/sdk/" rel="noopener noreferrer" target="_blank"&gt;Connect IQ SDK License Agreement&lt;/a&gt;&lt;span&gt;, which does not forbid solicitation for sales of apps by app developers. However, solicitation for business on Garmin sites other than the app store (such as this forum) is prohibited but Garmin&amp;#39;s&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.garmin.com/en-US/legal/terms-of-use" rel="noopener noreferrer" target="_blank"&gt;Terms of Use&lt;/a&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="display-seconds"&gt;&lt;/a&gt; Can I display seconds on my watch face?&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Yes, you can! However, one priority of Connect IQ is the preservation of battery life, so we have a system in place that governs how often watch faces may be updated. Generally, watch faces update once per minute in low power mode, and once per second when in full power mode. The watch will enter full power mode for a few seconds when the user gestures to look at it, and then returns to low power mode. Developers will often detect this transition to full power mode, display a seconds indicator for a few moments, and then hide the seconds indicator once the device returns to low power mode. &lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Newer devices may also support Always On watch faces, which can update once per second as long as they operate within certain limits.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;You can find out more about low power mode, full power mode, and Always On watch faces in the &lt;a href="https://developer.garmin.com/connect-iq/connect-iq-basics/"&gt;Connect IQ Basics Guide&lt;/a&gt;, or read about the related APIs in the&amp;nbsp;&lt;a href="http://developer.garmin.com/downloads/connect-iq/monkey-c/doc/Toybox/WatchUi/WatchFace.html" rel="noopener noreferrer" target="_blank"&gt;API Docs&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="leading-zeros"&gt;&lt;/a&gt; How do I format output padded with leading zeros?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Many Connect IQ apps include time values that require leading zeros. For example, time written in an HH:MM:SS format appears as &amp;quot;12:05:05&amp;quot; rather than &amp;quot;12:5:5&amp;quot;. Monkey C includes&amp;nbsp;&lt;/span&gt;&lt;a href="https://developer.garmin.com/connect-iq/api-docs/Toybox/Lang.html#format-instance_function"&gt;string formatting functions&lt;/a&gt;&lt;span&gt;&amp;nbsp;that can get this job done using a &lt;/span&gt;&lt;code&gt;%02d&lt;/code&gt;&lt;span&gt; format specifier.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;A common error is to specify a format of &lt;code&gt;%.2d&lt;/code&gt; or &lt;code&gt;%0.2d&lt;/code&gt;. This may pad a decimal with leading zeros in some languages, such as in C++&amp;#39;s&amp;nbsp;&lt;/span&gt;&lt;code&gt;&lt;a href="http://www.cplusplus.com/reference/cstdio/printf/" rel="noopener noreferrer" target="_blank"&gt;printf()&lt;/a&gt;&lt;/code&gt;&lt;span&gt;&amp;nbsp;function, but Monkey C follows the&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1336.pdf" rel="noopener noreferrer" target="_blank"&gt;C99 standard&lt;/a&gt;&lt;span&gt;. C99 requires the &lt;code&gt;0&lt;/code&gt; flag to specify padding with leading zeros for &lt;code&gt;d&lt;/code&gt;, &lt;code&gt;i&lt;/code&gt;, &lt;code&gt;o&lt;/code&gt;, &lt;code&gt;u&lt;/code&gt;, &lt;code&gt;x&lt;/code&gt;, &lt;code&gt;X&lt;/code&gt;, &lt;code&gt;a&lt;/code&gt;, &lt;code&gt;A&lt;/code&gt;, &lt;code&gt;e&lt;/code&gt;, &lt;code&gt;f&lt;/code&gt;, &lt;code&gt;F&lt;/code&gt;, &lt;code&gt;g&lt;/code&gt;, and &lt;code&gt;G&lt;/code&gt; conversions. In addition, C99 states that if a precision is specified with &amp;#39;&lt;code&gt;.&lt;/code&gt;&amp;#39;, the the &lt;code&gt;0&lt;/code&gt; flag is ignored.&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="testing-purposes"&gt;&lt;/a&gt; How can I load the apps I develop to my device for testing purposes?&lt;/b&gt;&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Apps are typically installed to devices via the&amp;nbsp;&lt;/span&gt;&lt;a href="https://apps.garmin.com/en-US/" rel="noopener noreferrer" target="_blank"&gt;Connect IQ App Store&lt;/a&gt;&lt;span&gt;, but it&amp;#39;s often useful to side-load an app to a device for testing without having to first upload a version to the app store. Here&amp;#39;s how:&lt;/span&gt;&lt;/p&gt;
&lt;ol class="decimal"&gt;
&lt;li&gt;In Eclipse, choose&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;i&gt;Connect IQ &amp;gt; Build for Device Wizard&amp;hellip;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;In the Build for Device Wizard window:
&lt;ul&gt;
&lt;li&gt;Choose the project you wish to build&lt;/li&gt;
&lt;li&gt;Choose the target device&lt;/li&gt;
&lt;li&gt;Choose the SDK version to target&lt;/li&gt;
&lt;li&gt;Specify a signing key&lt;/li&gt;
&lt;li&gt;Set an output location&lt;/li&gt;
&lt;li&gt;Click&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;i&gt;Finish&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Connect your device to the computer via USB (it should appear as a drive)&lt;/li&gt;
&lt;li&gt;Copy the PRG file made by the Build for Device Wizard from the output location to &lt;code&gt;/GARMIN/APPS&lt;/code&gt; on your device&lt;/li&gt;
&lt;li&gt;Disconnect your device; the app should be available for use&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="app-settings"&gt;&lt;/a&gt; I have side-loaded an app as described above, but app settings won&amp;#39;t work. Why is this?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://developer.garmin.com/connect-iq/core-topics/app-settings/"&gt;App settings&lt;/a&gt;&lt;span&gt;&amp;nbsp;allow user to configure an app via the &lt;a href="https://buy.garmin.com/en-US/US/p/616398/pn/010-CONIQ-00"&gt;Connect IQ Store app&lt;/a&gt;, &lt;/span&gt;&lt;a href="http://software.garmin.com/en-US/express.html" rel="noopener noreferrer" target="_blank"&gt;Garmin Express&lt;/a&gt;&lt;span&gt;, or&amp;nbsp;&lt;/span&gt;&lt;a href="https://buy.garmin.com/en-US/US/on-the-go/apps/garmin-connect-mobile/prod125677.html" rel="noopener noreferrer" target="_blank"&gt;Garmin Connect Mobile&lt;/a&gt;&lt;span&gt;, and depend on the Connect IQ App Store to function properly. When an app is side loaded, this connection to the Connect IQ App Store is never established. If you have an app that uses app settings that needs to be tested, you may submit the app to the Connect IQ App Store and test out the settings features while the app is either in a beta state or pending approval.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;b&gt;&lt;a id="settings-crash"&gt;&lt;/a&gt; My app uses app settings, and it sometimes crashes after changing the settings, but the rest of the time it works fine. What can cause this?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In the past, there have been issues where the client used to manage app settings, like the &lt;a href="https://buy.garmin.com/en-US/US/p/616398/pn/010-CONIQ-00"&gt;Connect IQ Store app&lt;/a&gt;, &lt;a href="http://software.garmin.com/en-US/express.html" rel="noopener noreferrer" target="_blank"&gt;Garmin Express&lt;/a&gt;, or &lt;a href="https://buy.garmin.com/en-US/US/on-the-go/apps/garmin-connect-mobile/prod125677.html" rel="noopener noreferrer" target="_blank"&gt;Garmin Connect Mobile&lt;/a&gt;, has returned a setting value with an unexpected type, so it&amp;#39;s good practice to check a setting value to ensure it&amp;#39;s the expected type. For example, this code will check for a null value and convert the value to a Number as long as it is not null. Otherwise, a default value is returned:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;pre class="ui-code" data-mode="java"&gt;function readKeyInt(myApp,key,thisDefault) {
    var value = myApp.getProperty(key);
    if(value == null || !(value instanceof Number)) {
        if(value != null) {
            value = value.toNumber();
        } else {
            value = thisDefault;
        }
    }
    return value;
}&lt;/pre&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;&lt;a id="too-many-arguments"&gt;&lt;/a&gt; I keep getting a &amp;quot;Too Many Arguments Error&amp;quot;, but I never used to get this. What is going on?&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;We added a a feature in the 2.1.2 SDK release to perform an argument count check on function and method calls. This was included as part of a larger security effort, which includes things like app signing and encryption of app data. Overall, this is a good thing, since it promotes more robust source code prevents some potential security exploits. Unfortunately, it has also caused some apps to crash on 1.3.x and 2.x devices when built with the 2.1.2 SDK even though these same apps execute without issue when built with earlier SDK releases. This kind of crash appears in the&amp;nbsp;&lt;code&gt;CIQ_LOG.TXT&lt;/code&gt; or &lt;code&gt;CIQ_LOG.YML&lt;/code&gt; file as a &lt;em&gt;Too many arguments&lt;/em&gt; error, signifying the argument count check has failed. Here are a couple of examples that illustrate potential causes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Missing &lt;code&gt;state&lt;/code&gt; arguments for the &lt;code&gt;onStart()&lt;/code&gt;&amp;nbsp;and&amp;nbsp;&lt;code&gt;onStop()&lt;/code&gt; methods. These are currently unused arguments and were passed implicitly in earlier versions of Connect IQ, but must now be included explicitly.&lt;/li&gt;
&lt;li&gt;An&amp;nbsp;&lt;code&gt;initialize()&lt;/code&gt; method that takes an array of options but to which none are passed&lt;code&gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;a id="debugging"&gt;&lt;/a&gt; How can I test or debug Connect IQ apps I am developing?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;A simple way to test Connect IQ apps is to include&amp;nbsp;&lt;/span&gt;&lt;code&gt;System.println()&lt;/code&gt;&lt;span&gt;&amp;nbsp;statements at strategic points in your app. Within Eclipse, these&lt;/span&gt;&lt;span&gt; statements will output to the console. On a device,&lt;/span&gt;&lt;i&gt;&lt;span&gt; &lt;/span&gt;&lt;/i&gt;these &lt;span&gt;statements write to the &lt;code&gt;/GARMIN/APPS/LOGS&lt;/code&gt;&lt;/span&gt;&lt;code&gt;&amp;lt;APPNAME&amp;gt;.TXT&lt;/code&gt;&lt;span&gt;&amp;nbsp;file, if it exists&lt;/span&gt;&lt;span&gt;. This file is not automatically created, so must be created manually and named to match the name of the app&amp;#39;s &lt;code&gt;PRG&lt;/code&gt; file. For example, to log output from&amp;nbsp;&lt;/span&gt;&lt;code&gt;/GARMIN/APPS/MYAPP.PRG&lt;/code&gt;&lt;span&gt;, create the &lt;/span&gt;&lt;code&gt;/GARMIN/APPS/LOGS/MYAPP.TXT&lt;/code&gt;&lt;span&gt; file.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;For more advanced debugging, Connect IQ has a unit testing framework called &lt;em&gt;Run No Evil&lt;/em&gt;, and a debugger that&amp;#39;s included in the Connect IQ plug-in for Eclipse that can be used to dig into potential issues within the Connect IQ simulator. Check out the &lt;a href="https://developer.garmin.com/connect-iq/core-topics/debugging/"&gt;Debugging &lt;/a&gt;and &lt;a href="https://developer.garmin.com/connect-iq/core-topics/unit-testing/"&gt;Unit Testing&lt;/a&gt; chapters of the Core Topics Guide for more info.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;In addition to these tools, there are two general types of on-device crash that can occur related to Connect IQ, which each generate log files:&amp;nbsp;&lt;/span&gt;app crashes&lt;span&gt;&amp;nbsp;and&amp;nbsp;&lt;/span&gt;device crashes&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;App crashes&lt;/strong&gt; typically result in an app quitting unexpectedly or displaying an &amp;#39;IQ!&amp;#39; icon, but does not cause the entire device to crash or reboot. This kind of crash is most commonly due to a bug in an app, though it can also be due to a bug in Connect IQ itself&lt;/span&gt;&lt;i&gt;.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;span&gt;Whenever an app crash occurs, a &lt;code&gt;/GARMIN/APPS/LOGS/&lt;/code&gt;&lt;/span&gt;&lt;code&gt;CIQ_LOG.YML&lt;/code&gt;&lt;span&gt; file is written&lt;/span&gt;&lt;span&gt; to the device, which usually contains a call stack from the app (older devices may write a &lt;code&gt;CIQ_LOG.TXT&lt;/code&gt; file).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Device crashes&lt;/strong&gt; typically cause the device to reboot or freeze. These indicate a Connect IQ or device firmware bug, and should be much less common than app crashes. When a device crash occurs, an&amp;nbsp;&lt;/span&gt;&lt;code&gt;ERR_LOG.TXT&lt;/code&gt;&lt;span&gt; file is typically written to&amp;nbsp;&lt;/span&gt;&lt;code&gt;/GARMIN&lt;/code&gt; or &lt;code&gt;/GARMIN/DEBUG&lt;/code&gt;&lt;span&gt; on the device, containing stack trace information related to the crash. Garmin&amp;#39;s device teams can take a look at the device crash logs to determine the cause of the crash and will typically provide a fix in a future firmware release.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;When any crash log file exceeds 5 KB, it will automatically be archived to&amp;nbsp;&lt;/span&gt;&lt;code&gt;&amp;lt;LOGNAME&amp;gt;.BAK&lt;/code&gt;&lt;span&gt;, and a new log will be started. Any old &lt;code&gt;.BAK&lt;/code&gt; files will be overwritten when the archive occurs, so the maximum practical space available for logging is ~10 KB.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;b&gt;&lt;a id="report-bugs"&gt;&lt;/a&gt;&amp;nbsp;I think that I&amp;#39;ve found a bug with CIQ. How do I report it?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;If you think you&amp;#39;ve found a Connect IQ bug, please report it in the &lt;a title="Connect IQ Bug Reports" href="/developer/connect-iq/i/bug-reports"&gt;Connect IQ Bug Reports&lt;/a&gt; tool!&amp;nbsp; Please make sure to read the &lt;a title="Bug Reporting Rules" href="/developer/connect-iq/w/wiki/5/bug-reports-faq"&gt;Bug Reporting FAQ&lt;/a&gt; to ensure you provide us with the information we need to investigate the problem. Be advised that if you post about a bug in the discussion forum, your thread may be moved or deleted.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="reviews"&gt;&lt;/a&gt; My app is receiving inappropriate reviews. Is there something I can do about that?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Developers may flag reviews of their own apps they believe are inappropriate and provide a reason explaining why. Store admins will evaluate each case and remove reviews that violate Garmin&amp;#39;s Terms of Use (see&amp;nbsp;&lt;a href="https://www.garmin.com/en-US/legal/terms-of-use/"&gt;https://www.garmin.com/en-US/legal/terms-of-use/&lt;/a&gt;).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Getting Started, New Developer, CIQ, Connect IQ, New&lt;/div&gt;
</description></item><item><title>App Approval Exceptions</title><link>https://forums.garmin.com/developer/connect-iq/w/wiki/10/app-approval-exceptions/revision/8</link><pubDate>Fri, 01 Mar 2024 19:18:14 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:08f85234-7e96-4862-b87f-fb7aeb4af230</guid><dc:creator>Brandon.ConnectIQ</dc:creator><description>Revision 8 posted to Wiki by Brandon.ConnectIQ on 3/1/2024 7:18:14 PM&lt;br /&gt;
&lt;p&gt;&lt;span&gt;Garmin is as permissive as possible when approving apps for inclusion on the Connect IQ app store. Aside from apps that contain offensive material or are subject to DMCA take-down requests, we&amp;#39;re happy to allow&amp;nbsp;most&amp;nbsp;everything else that our app developers would like to share with the Garmin community unless it falls under one of the following exceptions:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Extreme Sports&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Apps designed for &lt;span style="font-size:inherit;"&gt;scuba&lt;/span&gt; diving, free diving, skydiving, base-jumping, and extreme flight sports will not be listed on the app store for the following reasons:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;The diving features available on Descent products are the only Garmin features intended for underwater diving use.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;The altimeter/barometer feature available in some Garmin devices is intended to be used for general altitude reference only, and is not intended to be used for extreme sports such as skydiving, base-jumping or other activities that require the use of equipment that is designed and intended for such use. The Jumpmaster feature on Garmin tactix products is intended to be used for skydiving activities by experienced skydivers. This is the only Garmin feature that is intended for use while skydiving.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;In addition, aviation-specific apps (excluding aviation-themed Watch Faces) must include the following disclaimer at the top of their app description:&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;i&gt;WARNING: The app is intended only as an in-flight aid and should not be used as a primary information source. If the app contains a barometric altimeter, it will not function in a pressurized aircraft and should not be used in a pressurized aircraft.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Safety Awareness&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Apps designed for safety awareness purposes, such as incident detection or use with a Varia radar, may not be listed in the interest of customer safety.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Medical&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Apps designed for medical use may be subject to regulation by the U.S. Food and Drug Administration (FDA) as a device such that it needs clearance or approval by the agency before it can be lawfully marketed in the United States. The FDA has issued two guidance documents on the topic:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Mobile Medical App Guidance,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a class="external-link" href="https://www.fda.gov/media/80958/download" rel="nofollow"&gt;https://www.fda.gov/media/80958/download&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Clinical Decision Support Guidance,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a class="external-link" href="https://www.fda.gov/media/109618/download" rel="nofollow"&gt;https://www.fda.gov/media/109618/download&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Apps subject to these guidelines may be required to include&amp;nbsp;appropriate documentation. Otherwise, the app description must be updated to reflect that the app is not intended to be used for the purposes of medical treatment and is intended for educational purposes only.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Garmin designs and tests its products for their intended use to ensure safe operation and a positive customer experience. &lt;/span&gt;&lt;span&gt;If you have developed or are currently developing apps subject to these guidelines, we apologize and do not want to be a source of discouragement. You may still continue to build and distribute these apps as you wish outside of the Connect IQ app store, but we cannot allow content of this nature to be placed on any Garmin affiliated app resource.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: awareness, Free Diving, Base-Jumping, Scuba, extreme sports, Approval, Extreme Flight, App Rejected, Diving, medical apps, Approval Exceptions, safety&lt;/div&gt;
</description></item><item><title>Bug Reports FAQ</title><link>https://forums.garmin.com/developer/connect-iq/w/wiki/5/bug-reports-faq</link><pubDate>Wed, 28 Feb 2024 20:35:22 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:87be7e96-9de5-4778-8e54-9edffd7e5cd2</guid><dc:creator>Brandon.ConnectIQ</dc:creator><description>Current Revision posted to Wiki by Brandon.ConnectIQ on 2/28/2024 8:35:22 PM&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="Where can I report Connect IQ-related issues to Garmin?" href="#where-report"&gt;Where can I report Connect IQ-related issues and feature requests to Garmin?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What kind of issues should be reported?" href="#kind"&gt;What kind of issues should be reported?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What should I do before I report an issue with the Connect I Bug Reports tool?" href="#before-reporting"&gt;What should I do before I report an issue with the Connect IQ Bug Reports tool?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What information should be included in a new issue report?" href="#new-report"&gt;What information should be included in a new issue report?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What should I do if I find my issue has already been reported?" href="#already-reported"&gt;What should I do if I find my issue has already been reported?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What does Garmin do once an issue has been reported?" href="#Garmin-does"&gt;What happens once an issue has been reported?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="where-report"&gt;&lt;/a&gt; Where can I report Connect IQ-related issues and feature requests to Garmin?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Connect IQ developers can report issues to the Connect IQ team with the &lt;a title="Connect IQ Bug Reports" href="/developer/connect-iq/i/bug-reports"&gt;Connect IQ Bug Reports&lt;/a&gt; tool. &lt;span style="color:#ff0000;"&gt;&lt;em&gt;&lt;strong&gt;Please note that this tool is for reporting Connect IQ-related issues only.&lt;/strong&gt;&lt;/em&gt; &lt;span style="color:#000000;"&gt;Any non-Connect IQ-related issues (e.g. Garmin Connect, Garmin Connect Mobile, Health API, FIT SDK, etc.) will be closed and we will suggest a more appropriate forum.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Report Garmin Connect Web issues to&amp;nbsp;&lt;a href="/apps-software/mobile-apps-web/f/garmin-connect-web"&gt;https://forums.garmin.com/apps-software/mobile-apps-web/f/garmin-connect-web&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Report Garmin Connect Mobile Android issues to&amp;nbsp;&lt;a href="/apps-software/mobile-apps-web/f/garmin-connect-mobile-andriod"&gt;https://forums.garmin.com/apps-software/mobile-apps-web/f/garmin-connect-mobile-andriod&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Report Garmin Connect Mobile iOS issues to&amp;nbsp;&lt;a href="/apps-software/mobile-apps-web/f/garmin-connect-mobile-ios"&gt;https://forums.garmin.com/apps-software/mobile-apps-web/f/garmin-connect-mobile-ios&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Product-related issues can be reported to either&amp;nbsp;&lt;a href="/outdoor-recreation/"&gt;https://forums.garmin.com/outdoor-recreation/&lt;/a&gt;&amp;nbsp;or&amp;nbsp;&lt;a href="/sports-fitness/"&gt;https://forums.garmin.com/sports-fitness/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="kind"&gt;&lt;/a&gt; What kind of issues should be reported?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Please let us know about anything related to Connect IQ app development and execution, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Problems with the Connect IQ SDK and development tools&lt;/li&gt;
&lt;li&gt;Issues with the Monkey C language&lt;/li&gt;
&lt;li&gt;Problems with the Connect IQ APIs or related documentation&lt;/li&gt;
&lt;li&gt;Inconsistencies between app execution in the Connect IQ simulator and on Garmin devices&lt;/li&gt;
&lt;li&gt;Connect IQ app store problems&lt;/li&gt;
&lt;li&gt;Garmin-published Connect IQ app crashes (typically an &amp;#39;IQ!&amp;#39; icon will appear on the device screen when an app crashes)&lt;/li&gt;
&lt;li&gt;Device crashes/reboots when running Connect IQ apps&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="color:#ff0000;"&gt;&lt;em&gt;&lt;strong&gt;Note that we cannot help address app crashes in apps not developed and maintained by Garmin.&lt;/strong&gt;&lt;/em&gt; &lt;span style="color:#000000;"&gt;The best course of action is to contact the third-party developer using the &lt;strong&gt;Contact Developer&lt;/strong&gt; link on their app&amp;#39;s detail page on the app store.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="before-reporting"&gt;&lt;/a&gt; What should I do before I report an issue with the Connect IQ Bug Reports tool?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Before reporting any issues, please be sure to try:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Updating or Installing the newest version of Eclipse or VS Code&lt;/li&gt;
&lt;li&gt;Installing the latest version of the Connect IQ SDK, Eclipse plug-in, and VS Code extension&lt;/li&gt;
&lt;li&gt;Updating the software of your Garmin Device (if using physical device)&lt;/li&gt;
&lt;li&gt;Check for existing reports of the issue&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="new-report"&gt;&lt;/a&gt;&lt;strong&gt; What information should be included in a new issue report?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Descriptive Title (e.g. &amp;quot;Simulator Freezes Launching App in VS Code&amp;quot;)&lt;/li&gt;
&lt;li&gt;The Environment:
&lt;ul&gt;
&lt;li&gt;Operating System or Device, including OS or firmware version of device&lt;/li&gt;
&lt;li&gt;Connect IQ SDK version&lt;/li&gt;
&lt;li&gt;VS Code Extension version&lt;/li&gt;
&lt;li&gt;VS Code version&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;A detailed description of the issue&lt;/li&gt;
&lt;li&gt;Steps to reproduce the issue&lt;/li&gt;
&lt;li&gt;Images or videos that demonstrate the issue as appropriate&lt;/li&gt;
&lt;li&gt;App source code or a code sample that can reproduce the issue&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We may not be able to effectively investigate a problem without the right info, so please provide as much information as possible. We&amp;#39;ll follow up on the bug report if we need more information.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="already-reported"&gt;&lt;/a&gt; What should I do if I find my issue has already been reported?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Upvote the issue using the voting widget:&lt;/li&gt;
&lt;li&gt;Add any&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;new&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;information about the issue to the existing report as a reply&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Garmin-does"&gt;&lt;/a&gt; &lt;strong&gt;What happens once an issue or suggestion has been reported?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Once an issue is reported, it will automatically be in an &lt;em&gt;Under Revie&lt;/em&gt;w state, which means that it is in our queue to be investigated.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Once enough information is provided, the Connect IQ team will create an internal ticket to investigate the issue. At this point, the status will be updated to &lt;em&gt;Acknowledged.&lt;/em&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Tips and Tricks FAQ</title><link>https://forums.garmin.com/developer/connect-iq/w/wiki/107/tips-and-tricks-faq</link><pubDate>Tue, 12 Dec 2023 20:43:42 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:3ede78ce-7097-4042-8581-508474bf05a1</guid><dc:creator>Brandon.ConnectIQ</dc:creator><description>Current Revision posted to Wiki by Brandon.ConnectIQ on 12/12/2023 8:43:42 PM&lt;br /&gt;
&lt;p&gt;This is a place where we&amp;#39;re throw any interesting threads that contain development tips, tricks, and recommendations.&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Python tool for translating XML strings:&amp;nbsp;&lt;a href="/developer/connect-iq/f/discussion/292146/translate-strings-xml---python-code-and-web-tool"&gt;https://forums.garmin.com/developer/connect-iq/f/discussion/292146/translate-strings-xml---python-code-and-web-tool&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Tips for optimizing Monkey C Code:&amp;nbsp;&lt;a href="/developer/connect-iq/f/discussion/291568/optimizing-monkey-c-code"&gt;https://forums.garmin.com/developer/connect-iq/f/discussion/291568/optimizing-monkey-c-code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Prettier VS Code Extension:&amp;nbsp;&lt;a href="/developer/connect-iq/f/discussion/294852/big-update-to-prettier-extension-monkeyc"&gt;https://forums.garmin.com/developer/connect-iq/f/discussion/294852/big-update-to-prettier-extension-monkeyc&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Using GitHub Actions and Docker to test apps: &lt;a href="/developer/connect-iq/f/discussion/303170/connectiq-docker-image-and-github-action"&gt;https://forums.garmin.com/developer/connect-iq/f/discussion/303170/connectiq-docker-image-and-github-action&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Decoding PC line numbers in Connect IQ call stacks:&amp;nbsp;&lt;a href="/developer/connect-iq/f/discussion/231129/so-you-have-a-ciq_log-file-but-all-you-see-is-pc-without-a-friendly-stack-trace---what-to-do"&gt;https://forums.garmin.com/developer/connect-iq/f/discussion/231129/so-you-have-a-ciq_log-file-but-all-you-see-is-pc-without-a-friendly-stack-trace---what-to-do&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Bug Reports FAQ</title><link>https://forums.garmin.com/developer/connect-iq/w/wiki/5/bug-reports-faq/revision/14</link><pubDate>Fri, 13 Oct 2023 18:56:29 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:87be7e96-9de5-4778-8e54-9edffd7e5cd2</guid><dc:creator>Brandon.ConnectIQ</dc:creator><description>Revision 14 posted to Wiki by Brandon.ConnectIQ on 10/13/2023 6:56:29 PM&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="Where can I report Connect IQ-related issues to Garmin?" href="#where-report"&gt;Where can I report Connect IQ-related issues and feature requests to Garmin?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What kind of issues should be reported?" href="#kind"&gt;What kind of issues should be reported?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What should I do before I report an issue with the Connect I Bug Reports tool?" href="#before-reporting"&gt;What should I do before I report an issue with the Connect IQ Bug Reports tool?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What information should be included in a new issue report?" href="#new-report"&gt;What information should be included in a new issue report?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What should I do if I find my issue has already been reported?" href="#already-reported"&gt;What should I do if I find my issue has already been reported?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What does Garmin do once an issue has been reported?" href="#Garmin-does"&gt;What happens once an issue has been reported?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="where-report"&gt;&lt;/a&gt; Where can I report Connect IQ-related issues and feature requests to Garmin?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Connect IQ developers can report issues to the Connect IQ team with the &lt;a title="Connect IQ Bug Reports" href="/developer/connect-iq/i/bug-reports"&gt;Connect IQ Bug Reports&lt;/a&gt; tool. &lt;span style="color:#ff0000;"&gt;&lt;em&gt;&lt;strong&gt;Please note that this tool is for reporting Connect IQ-related issues only.&lt;/strong&gt;&lt;/em&gt; &lt;span style="color:#000000;"&gt;Any non-Connect IQ-related issues (e.g. Garmin Connect, Garmin Connect Mobile, Health API, FIT SDK, etc.) will be closed and we will suggest a more appropriate forum.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="kind"&gt;&lt;/a&gt; What kind of issues should be reported?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Please let us know about anything related to Connect IQ app development and execution, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Problems with the Connect IQ SDK and development tools&lt;/li&gt;
&lt;li&gt;Issues with the Monkey C language&lt;/li&gt;
&lt;li&gt;Problems with the Connect IQ APIs or related documentation&lt;/li&gt;
&lt;li&gt;Inconsistencies between app execution in the Connect IQ simulator and on Garmin devices&lt;/li&gt;
&lt;li&gt;Connect IQ app store problems&lt;/li&gt;
&lt;li&gt;Garmin-published Connect IQ app crashes (typically an &amp;#39;IQ!&amp;#39; icon will appear on the device screen when an app crashes)&lt;/li&gt;
&lt;li&gt;Device crashes/reboots when running Connect IQ apps&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="color:#ff0000;"&gt;&lt;em&gt;&lt;strong&gt;Note that we cannot help address app crashes in apps not developed and maintained by Garmin.&lt;/strong&gt;&lt;/em&gt; &lt;span style="color:#000000;"&gt;The best course of action is to contact the third-party developer using the &lt;strong&gt;Contact Developer&lt;/strong&gt; link on their app&amp;#39;s detail page on the app store.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="before-reporting"&gt;&lt;/a&gt; What should I do before I report an issue with the Connect IQ Bug Reports tool?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Before reporting any issues, please be sure to try:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Updating or Installing the newest version of Eclipse or VS Code&lt;/li&gt;
&lt;li&gt;Installing the latest version of the Connect IQ SDK, Eclipse plug-in, and VS Code extension&lt;/li&gt;
&lt;li&gt;Updating the software of your Garmin Device (if using physical device)&lt;/li&gt;
&lt;li&gt;Check for existing reports of the issue&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="new-report"&gt;&lt;/a&gt;&lt;strong&gt; What information should be included in a new issue report?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Descriptive Title (e.g. &amp;quot;Simulator Freezes Launching App in VS Code&amp;quot;)&lt;/li&gt;
&lt;li&gt;The Environment:
&lt;ul&gt;
&lt;li&gt;Operating System or Device, including OS or firmware version of device&lt;/li&gt;
&lt;li&gt;Connect IQ SDK version&lt;/li&gt;
&lt;li&gt;VS Code Extension version&lt;/li&gt;
&lt;li&gt;VS Code version&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;A detailed description of the issue&lt;/li&gt;
&lt;li&gt;Steps to reproduce the issue&lt;/li&gt;
&lt;li&gt;Images or videos that demonstrate the issue as appropriate&lt;/li&gt;
&lt;li&gt;App source code or a code sample that can reproduce the issue&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We may not be able to effectively investigate a problem without the right info, so please provide as much information as possible. We&amp;#39;ll follow up on the bug report if we need more information.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="already-reported"&gt;&lt;/a&gt; What should I do if I find my issue has already been reported?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Upvote the issue using the voting widget:&lt;/li&gt;
&lt;li&gt;Add any&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;new&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;information about the issue to the existing report as a reply&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Garmin-does"&gt;&lt;/a&gt; &lt;strong&gt;What happens once an issue or suggestion has been reported?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Once an issue is reported, it will automatically be in an &lt;em&gt;Under Revie&lt;/em&gt;w state, which means that it is in our queue to be investigated.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Once enough information is provided, the Connect IQ team will create an internal ticket to investigate the issue. At this point, the status will be updated to &lt;em&gt;Acknowledged.&lt;/em&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Tips and Tricks FAQ</title><link>https://forums.garmin.com/developer/connect-iq/w/wiki/107/tips-and-tricks-faq/revision/4</link><pubDate>Fri, 29 Jul 2022 13:43:57 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:3ede78ce-7097-4042-8581-508474bf05a1</guid><dc:creator>Brandon.ConnectIQ</dc:creator><description>Revision 4 posted to Wiki by Brandon.ConnectIQ on 7/29/2022 1:43:57 PM&lt;br /&gt;
&lt;p&gt;This is a place where we&amp;#39;re throw any interesting threads that contain development tips, tricks, and recommendations.&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Python tool for translating XML strings:&amp;nbsp;&lt;a href="/developer/connect-iq/f/discussion/292146/translate-strings-xml---python-code-and-web-tool"&gt;https://forums.garmin.com/developer/connect-iq/f/discussion/292146/translate-strings-xml---python-code-and-web-tool&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Tips for optimizing Monkey C Code:&amp;nbsp;&lt;a href="/developer/connect-iq/f/discussion/291568/optimizing-monkey-c-code"&gt;https://forums.garmin.com/developer/connect-iq/f/discussion/291568/optimizing-monkey-c-code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Prettier VS Code Extension:&amp;nbsp;&lt;a href="/developer/connect-iq/f/discussion/294852/big-update-to-prettier-extension-monkeyc"&gt;https://forums.garmin.com/developer/connect-iq/f/discussion/294852/big-update-to-prettier-extension-monkeyc&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Using GitHub Actions and Docker to test apps: &lt;a href="/developer/connect-iq/f/discussion/303170/connectiq-docker-image-and-github-action"&gt;https://forums.garmin.com/developer/connect-iq/f/discussion/303170/connectiq-docker-image-and-github-action&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Tips and Tricks FAQ</title><link>https://forums.garmin.com/developer/connect-iq/w/wiki/107/tips-and-tricks-faq/revision/3</link><pubDate>Fri, 29 Jul 2022 13:43:37 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:3ede78ce-7097-4042-8581-508474bf05a1</guid><dc:creator>Brandon.ConnectIQ</dc:creator><description>Revision 3 posted to Wiki by Brandon.ConnectIQ on 7/29/2022 1:43:37 PM&lt;br /&gt;
&lt;p&gt;This is a place where we&amp;#39;re throw any interesting threads that contain development tips, tricks, and recommendations.&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Python tool for translating XML strings:&amp;nbsp;&lt;a href="/developer/connect-iq/f/discussion/292146/translate-strings-xml---python-code-and-web-tool"&gt;https://forums.garmin.com/developer/connect-iq/f/discussion/292146/translate-strings-xml---python-code-and-web-tool&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Tips for optimizing Monkey C Code:&amp;nbsp;&lt;a href="/developer/connect-iq/f/discussion/291568/optimizing-monkey-c-code"&gt;https://forums.garmin.com/developer/connect-iq/f/discussion/291568/optimizing-monkey-c-code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Prettier VS Code Extension:&amp;nbsp;&lt;a href="/developer/connect-iq/f/discussion/294852/big-update-to-prettier-extension-monkeyc"&gt;https://forums.garmin.com/developer/connect-iq/f/discussion/294852/big-update-to-prettier-extension-monkeyc&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Using GitHub Actions and Docker to test apps:&amp;nbsp;https://forums.garmin.com/developer/connect-iq/f/discussion/303170/connectiq-docker-image-and-github-action&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Bug Reports FAQ</title><link>https://forums.garmin.com/developer/connect-iq/w/wiki/5/bug-reports-faq/revision/13</link><pubDate>Tue, 05 Jul 2022 17:20:31 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:87be7e96-9de5-4778-8e54-9edffd7e5cd2</guid><dc:creator>Brandon.ConnectIQ</dc:creator><description>Revision 13 posted to Wiki by Brandon.ConnectIQ on 7/5/2022 5:20:31 PM&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="Where can I report Connect IQ-related issues to Garmin?" href="#where-report"&gt;Where can I report Connect IQ-related issues and feature requests to Garmin?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What kind of issues should be reported?" href="#kind"&gt;What kind of issues should be reported?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What should I do before I report an issue with the Connect I Bug Reports tool?" href="#before-reporting"&gt;What should I do before I report an issue with the Connect IQ Bug Reports tool?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What information should be included in a new issue report?" href="#new-report"&gt;What information should be included in a new issue report?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What should I do if I find my issue has already been reported?" href="#already-reported"&gt;What should I do if I find my issue has already been reported?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What does Garmin do once an issue has been reported?" href="#Garmin-does"&gt;What happens once an issue has been reported?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="where-report"&gt;&lt;/a&gt; Where can I report Connect IQ-related issues and feature requests to Garmin?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Connect IQ developers can report issues to the Connect IQ team with the &lt;a title="Connect IQ Bug Reports" href="/developer/connect-iq/i/bug-reports"&gt;Connect IQ Bug Reports&lt;/a&gt; tool. &lt;span style="color:#ff0000;"&gt;&lt;em&gt;&lt;strong&gt;Please note that this tool is for reporting Connect IQ-related issues only.&lt;/strong&gt;&lt;/em&gt; &lt;span style="color:#000000;"&gt;Any non-Connect IQ-related issues (e.g. Garmin Connect, Garmin Connect Mobile, Health API, FIT SDK, etc.) will be closed and we will suggest a more appropriate forum.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="kind"&gt;&lt;/a&gt; What kind of issues should be reported?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Please let us know about anything related to Connect IQ app development and execution, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Problems with the Connect IQ SDK and development tools&lt;/li&gt;
&lt;li&gt;Issues with the Monkey C language&lt;/li&gt;
&lt;li&gt;Problems with the Connect IQ APIs or related documentation&lt;/li&gt;
&lt;li&gt;Inconsistencies between app execution in the Connect IQ simulator and on Garmin devices&lt;/li&gt;
&lt;li&gt;Connect IQ app store problems&lt;/li&gt;
&lt;li&gt;Garmin-published Connect IQ app crashes (typically an &amp;#39;IQ!&amp;#39; icon will appear on the device screen when an app crashes)&lt;/li&gt;
&lt;li&gt;Device crashes/reboots when running Connect IQ apps&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="color:#ff0000;"&gt;&lt;em&gt;&lt;strong&gt;Note that we cannot help address app crashes in apps not developed and maintained by Garmin.&lt;/strong&gt;&lt;/em&gt; &lt;span style="color:#000000;"&gt;The best course of action is to contact the third-party developer using the &lt;strong&gt;Contact Developer&lt;/strong&gt; link on their app&amp;#39;s detail page on the app store.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="before-reporting"&gt;&lt;/a&gt; What should I do before I report an issue with the Connect IQ Bug Reports tool?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Before reporting any issues, please be sure to try:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Updating or Installing the newest version of Eclipse or VS Code&lt;/li&gt;
&lt;li&gt;Installing the latest version of the Connect IQ SDK, Eclipse plug-in, and VS Code extension&lt;/li&gt;
&lt;li&gt;Updating the software of your Garmin Device (if using physical device)&lt;/li&gt;
&lt;li&gt;Check for existing reports of the issue&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="new-report"&gt;&lt;/a&gt;&lt;strong&gt; What information should be included in a new issue report?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Descriptive Title (e.g. &amp;quot;Simulator Freezes Launching App in VS Code&amp;quot;)&lt;/li&gt;
&lt;li&gt;The Environment:
&lt;ul&gt;
&lt;li&gt;Operating System or Device, including OS or firmware version of device&lt;/li&gt;
&lt;li&gt;Connect IQ SDK version&lt;/li&gt;
&lt;li&gt;Eclipse and plug-in version or VS Code Extension version&lt;/li&gt;
&lt;li&gt;Eclipse version or VS Code version&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;A detailed description of the issue&lt;/li&gt;
&lt;li&gt;Steps to reproduce the issue&lt;/li&gt;
&lt;li&gt;App source code or a code sample that can reproduce the issue&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We may not be able to effectively investigate a problem without the right info, so please provide as much information as possible. We&amp;#39;ll follow up on the bug report if we need more information.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="already-reported"&gt;&lt;/a&gt; What should I do if I find my issue has already been reported?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Upvote the issue using the voting widget:&lt;/li&gt;
&lt;li&gt;Add any&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;new&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;information about the issue to the existing report as a reply&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Garmin-does"&gt;&lt;/a&gt; &lt;strong&gt;What happens once an issue or suggestion has been reported?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Once an issue is reported, it will automatically be in an &lt;em&gt;Under Revie&lt;/em&gt;w state, which means that it is in our queue to be investigated.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Once enough information is provided, the Connect IQ team will create an internal ticket to investigate the issue. At this point, the status will be updated to &lt;em&gt;Acknowledged.&lt;/em&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Tips and Tricks FAQ</title><link>https://forums.garmin.com/developer/connect-iq/w/wiki/107/tips-and-tricks-faq/revision/2</link><pubDate>Mon, 23 May 2022 15:45:43 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:3ede78ce-7097-4042-8581-508474bf05a1</guid><dc:creator>Brandon.ConnectIQ</dc:creator><description>Revision 2 posted to Wiki by Brandon.ConnectIQ on 5/23/2022 3:45:43 PM&lt;br /&gt;
&lt;p&gt;This is a place where we&amp;#39;re throw any interesting threads that contain development tips, tricks, and recommendations.&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Python tool for translating XML strings:&amp;nbsp;&lt;a href="/developer/connect-iq/f/discussion/292146/translate-strings-xml---python-code-and-web-tool"&gt;https://forums.garmin.com/developer/connect-iq/f/discussion/292146/translate-strings-xml---python-code-and-web-tool&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Tips for optimizing Monkey C Code:&amp;nbsp;&lt;a href="/developer/connect-iq/f/discussion/291568/optimizing-monkey-c-code"&gt;https://forums.garmin.com/developer/connect-iq/f/discussion/291568/optimizing-monkey-c-code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Prettier VS Code Extension:&amp;nbsp;&lt;a href="/developer/connect-iq/f/discussion/294852/big-update-to-prettier-extension-monkeyc"&gt;https://forums.garmin.com/developer/connect-iq/f/discussion/294852/big-update-to-prettier-extension-monkeyc&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Tips and Tricks FAQ</title><link>https://forums.garmin.com/developer/connect-iq/w/wiki/107/tips-and-tricks-faq/revision/1</link><pubDate>Fri, 29 Apr 2022 15:47:09 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:3ede78ce-7097-4042-8581-508474bf05a1</guid><dc:creator>Brandon.ConnectIQ</dc:creator><description>Revision 1 posted to Wiki by Brandon.ConnectIQ on 4/29/2022 3:47:09 PM&lt;br /&gt;
&lt;p&gt;This is a place where we&amp;#39;re throw any interesting threads that contain development tips, tricks, and recommendations.&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Python tool for translating XML strings:&amp;nbsp;&lt;a href="/developer/connect-iq/f/discussion/292146/translate-strings-xml---python-code-and-web-tool"&gt;https://forums.garmin.com/developer/connect-iq/f/discussion/292146/translate-strings-xml---python-code-and-web-tool&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Tips for optimizing Monkey C Code:&amp;nbsp;&lt;a href="/developer/connect-iq/f/discussion/291568/optimizing-monkey-c-code"&gt;https://forums.garmin.com/developer/connect-iq/f/discussion/291568/optimizing-monkey-c-code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Bug Reports FAQ</title><link>https://forums.garmin.com/developer/connect-iq/w/wiki/5/bug-reports-faq/revision/12</link><pubDate>Mon, 04 Apr 2022 22:05:48 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:87be7e96-9de5-4778-8e54-9edffd7e5cd2</guid><dc:creator>Brandon.ConnectIQ</dc:creator><description>Revision 12 posted to Wiki by Brandon.ConnectIQ on 4/4/2022 10:05:48 PM&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="Where can I report Connect IQ-related issues to Garmin?" href="#where-report"&gt;Where can I report Connect IQ-related issues and feature requests to Garmin?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What kind of issues should be reported?" href="#kind"&gt;What kind of issues should be reported?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What should I do before I report an issue with the Connect I Bug Reports tool?" href="#before-reporting"&gt;What should I do before I report an issue with the Connect IQ Bug Reports tool?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What information should be included in a new issue report?" href="#new-report"&gt;What information should be included in a new issue report?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What should I do if I find my issue has already been reported?" href="#already-reported"&gt;What should I do if I find my issue has already been reported?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What does Garmin do once an issue has been reported?" href="#Garmin-does"&gt;What happens once an issue has been reported?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="where-report"&gt;&lt;/a&gt; Where can I report Connect IQ-related issues and feature requests to Garmin?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Connect IQ developers can report issues to the Connect IQ team with the &lt;a title="Connect IQ Bug Reports" href="/developer/connect-iq/i/bug-reports"&gt;Connect IQ Bug Reports&lt;/a&gt; tool. &lt;span style="color:#ff0000;"&gt;Please note that this tool is for reporting Connect IQ-related issues only. Any non-Connect IQ-related issues (e.g. Garmin Connect, Garmin Connect Mobile, Health API, FIT SDK, etc.) will be closed and we will suggest a more appropriate forum.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;This tool functions in a similar way to the other discussion forums, but it provides a couple of added benefits:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Others having a similar issue can upvote an issue to raise Garmin&amp;#39;s awareness of the problem&lt;/li&gt;
&lt;li&gt;The Connect IQ team can maintain and update the status of a reported issue to give you some idea about whether we have a plan to fix the problem&lt;/li&gt;
&lt;li&gt;The status tracks the time since the last status change, which should help the Connect IQ team stay accountable&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="kind"&gt;&lt;/a&gt; What kind of issues should be reported?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Please let us know about anything related to Connect IQ app development and execution, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Problems with the SDK and development tools&lt;/li&gt;
&lt;li&gt;Issues withe the Monkey C language&lt;/li&gt;
&lt;li&gt;Problems with the Connect IQ APIs or related documentation&lt;/li&gt;
&lt;li&gt;Inconsistencies between app execution in the Connect IQ simulator and on Garmin devices&lt;/li&gt;
&lt;li&gt;Connect IQ app store problems&lt;/li&gt;
&lt;li&gt;Garmin-published app crashes(typically an &amp;#39;IQ!&amp;#39; icon will appear on the device screen when an app crashes)&lt;/li&gt;
&lt;li&gt;Device crashes/reboots when running Connect IQ apps&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="color:#ff0000;"&gt;Note that we cannot help address app crashes in apps not developed and maintained by Garmin. The best course of action is to contact the third-party developer using the &lt;strong&gt;Contact Developer&lt;/strong&gt; link on their app&amp;#39;s detail page on the app store.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="before-reporting"&gt;&lt;/a&gt; What should I do before I report an issue with the Connect IQ Bug Reports tool?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Before reporting any issues, please be sure to try:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Updating or Installing the newest version of Eclipse or VS Code&lt;/li&gt;
&lt;li&gt;Installing the latest version of the Connect IQ SDK, Eclipse plug-in, and VS Code extension&lt;/li&gt;
&lt;li&gt;Updating the software of your Garmin Device (if using physical device)&lt;/li&gt;
&lt;li&gt;Check for existing reports of the issue&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="new-report"&gt;&lt;/a&gt;&lt;strong&gt; What information should be included in a new issue report?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Descriptive Title (e.g. &amp;quot;Simulator Freezes Launching App in VS Code&amp;quot;)&lt;/li&gt;
&lt;li&gt;The Environment:
&lt;ul&gt;
&lt;li&gt;Operating System or Device, including OS or software version of device&lt;/li&gt;
&lt;li&gt;Connect IQ SDK version&lt;/li&gt;
&lt;li&gt;Eclipse and plug-in version or VS Code Extension version&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;A detailed description of the issue&lt;/li&gt;
&lt;li&gt;Steps to reproduce the issue&lt;/li&gt;
&lt;li&gt;App source code or a code sample that can reproduce the issue (If you&amp;#39;d rather not share code publicly, please send an email to&amp;nbsp;&lt;a href="mailto:ConnectIQ@garmin.com"&gt;ConnectIQ@garmin.com&lt;/a&gt;&amp;nbsp;with&amp;nbsp;a link to your new thread and your source code attached)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We may not be able to effectively investigate a problem without the right info, so please provide as much information as possible. We&amp;#39;ll follow up on the bug report if we need more information. &lt;span&gt;&lt;em&gt;Please note that if more information is requested, the issue will be marked completed if no response is received within 14 days of the request.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="already-reported"&gt;&lt;/a&gt; What should I do if I find my issue has already been reported?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Upvote the issue using the voting widget:&lt;/li&gt;
&lt;li&gt;Add any&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;new&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;information about the issue to the existing report as a reply&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Garmin-does"&gt;&lt;/a&gt; &lt;strong&gt;What happens once an issue or suggestion has been reported?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Once an issue is reported, it will automatically be in an &lt;em&gt;Under Revie&lt;/em&gt;w state, which means that it is in our queue to be investigated.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Once enough information is provided, the Connect IQ team will create an internal ticket to investigate the issue. At this point, the status will be updated to &lt;em&gt;Ticket Created&lt;/em&gt;, and we&amp;#39;ll include the internal ticket number in the status comment. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Once a fix or feature has been implemented, we will update the status to &lt;em&gt;Complete&lt;/em&gt; and indicate the release in which the fix is available. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;If a feature request will not be implemented, the status will be set to &lt;em&gt;Not Planned&lt;/em&gt;. This primarily applies to feature requests&amp;ndash;the only reason a bug report might not be planned is if it&amp;#39;s a bug in a deprecated feature or for an old product that is no longer in maintenance.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Bug Reports FAQ</title><link>https://forums.garmin.com/developer/connect-iq/w/wiki/5/bug-reports-faq/revision/11</link><pubDate>Wed, 30 Mar 2022 13:27:34 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:87be7e96-9de5-4778-8e54-9edffd7e5cd2</guid><dc:creator>Brandon.ConnectIQ</dc:creator><description>Revision 11 posted to Wiki by Brandon.ConnectIQ on 3/30/2022 1:27:34 PM&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="Where can I report Connect IQ-related issues to Garmin?" href="#where-report"&gt;Where can I report Connect IQ-related issues and feature requests to Garmin?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What kind of issues should be reported?" href="#kind"&gt;What kind of issues should be reported?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What should I do before I report an issue with the Connect I Bug Reports tool?" href="#before-reporting"&gt;What should I do before I report an issue with the Connect IQ Bug Reports tool?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What information should be included in a new issue report?" href="#new-report"&gt;What information should be included in a new issue report?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What should I do if I find my issue has already been reported?" href="#already-reported"&gt;What should I do if I find my issue has already been reported?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What does Garmin do once an issue has been reported?" href="#Garmin-does"&gt;What happens once an issue has been reported?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="where-report"&gt;&lt;/a&gt; Where can I report Connect IQ-related issues and feature requests to Garmin?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Connect IQ developers can report issues to the Connect IQ team with the &lt;a title="Connect IQ Bug Reports" href="/developer/connect-iq/i/bug-reports"&gt;Connect IQ Bug Reports&lt;/a&gt; tool. &lt;span style="color:#ff0000;"&gt;Please note that this tool is for reporting Connect IQ-related issues only. Any non-Connect IQ-related issues (e.g. Garmin Connect, Garmin Connect Mobile, Health API, FIT SDK, etc.) will be closed and we will suggest a more appropriate forum.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;This tool functions in a similar way to the other discussion forums, but it provides a couple of added benefits:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Others having a similar issue can upvote an issue to raise Garmin&amp;#39;s awareness of the problem&lt;/li&gt;
&lt;li&gt;The Connect IQ team can maintain and update the status of a reported issue to give you some idea about whether we have a plan to fix the problem&lt;/li&gt;
&lt;li&gt;The status tracks the time since the last status change, which should help the Connect IQ team stay accountable&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;While not a full ticket tracking system, this should be a significant improvement over our past attempts to track reported issues in regular discussion threads, which became difficult to manage!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="kind"&gt;&lt;/a&gt; What kind of issues should be reported?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Please let us know about anything related to Connect IQ app development and execution, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Problems with the SDK and development tools&lt;/li&gt;
&lt;li&gt;Issues withe the Monkey C language&lt;/li&gt;
&lt;li&gt;Problems with the Connect IQ APIs or related documentation&lt;/li&gt;
&lt;li&gt;Inconsistencies between app execution in the Connect IQ simulator and on Garmin devices&lt;/li&gt;
&lt;li&gt;Connect IQ app store problems&lt;/li&gt;
&lt;li&gt;Garmin-published app crashes(typically an &amp;#39;IQ!&amp;#39; icon will appear on the device screen when an app crashes)&lt;/li&gt;
&lt;li&gt;Device crashes/reboots when running Connect IQ apps&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="color:#ff0000;"&gt;Note that we cannot help address app crashes in apps not developed and maintained by Garmin. The best course of action is to contact the third-party developer using the &lt;strong&gt;Contact Developer&lt;/strong&gt; link on their app&amp;#39;s detail page on the app store.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="before-reporting"&gt;&lt;/a&gt; What should I do before I report an issue with the Connect IQ Bug Reports tool?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Before reporting any issues, please be sure to try:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Updating or Installing the newest version of Eclipse&lt;/li&gt;
&lt;li&gt;Installing the latest version of the Connect IQ SDK and Eclipse plugins&lt;/li&gt;
&lt;li&gt;Updating the software of your Garmin Device (if using physical device)&lt;/li&gt;
&lt;li&gt;Check for existing reports of the issue&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="new-report"&gt;&lt;/a&gt;&lt;strong&gt; What information should be included in a new issue report?*&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Descriptive Title (e.g. &amp;quot;Simulator Freezes Launching App in Eclipse&amp;quot;)&lt;/li&gt;
&lt;li&gt;The Environment:
&lt;ul&gt;
&lt;li&gt;Operating System or Device, including OS or software version of device&lt;/li&gt;
&lt;li&gt;Connect IQ SDK version&lt;/li&gt;
&lt;li&gt;Eclipse Version&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;A detailed description of the issue&lt;/li&gt;
&lt;li&gt;Steps to reproduce the issue&lt;/li&gt;
&lt;li&gt;App source code or a code sample that can reproduce the issue (If you&amp;#39;d rather not share code publicly, please send an email to&amp;nbsp;&lt;a href="mailto:ConnectIQ@garmin.com"&gt;ConnectIQ@garmin.com&lt;/a&gt;&amp;nbsp;with&amp;nbsp;a link to your new thread and your source code attached)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We may not be able to effectively investigate a problem without the right info, so please provide as much information as possible. We&amp;#39;ll follow up on the bug report if we need more information.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="already-reported"&gt;&lt;/a&gt; What should I do if I find my issue has already been reported?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Upvote the issue using the voting widget:&lt;/li&gt;
&lt;li&gt;Add any&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;new&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;information about the issue to the existing report as a reply&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Garmin-does"&gt;&lt;/a&gt; &lt;strong&gt;What happens once an issue or suggestion has been reported?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Once an issue is reported, it will automatically be in an &lt;em&gt;Under Revie&lt;/em&gt;w state, which means that it is in our queue to be investigated.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Once enough information is provided, the Connect IQ team will create an internal ticket to investigate the issue. At this point, the status will be updated to &lt;em&gt;Ticket Created&lt;/em&gt;, and we&amp;#39;ll include the internal ticket number in the status comment.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;After an issue has been verified, it will be prioritized within one business week. Prioritization is indicated by one of three status types:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;em&gt;Coming Soon&lt;/em&gt; - This is a high priority issue for which we are implementing the related fix or feature and will include it in a future release&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;em&gt;Future Consideration&lt;/em&gt; - This is a lower-priority issue for which we understand the issue and will consider a fix or feature addition in a future release&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;em&gt;Not Planned&lt;/em&gt; - This request will not be implemented. This primarily applies to feature requests&amp;ndash;the only reason a bug report might not be planned is if it&amp;#39;s a bug in a deprecated feature or on an old product that is no longer in maintenance.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Once a fix or feature has been implemented, we will update the status to &lt;em&gt;Complete&lt;/em&gt; and indicate the release in which the fix is available. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Bug Reports FAQ</title><link>https://forums.garmin.com/developer/connect-iq/w/wiki/5/bug-reports-faq/revision/10</link><pubDate>Mon, 28 Feb 2022 14:08:14 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:87be7e96-9de5-4778-8e54-9edffd7e5cd2</guid><dc:creator>Brandon.ConnectIQ</dc:creator><description>Revision 10 posted to Wiki by Brandon.ConnectIQ on 2/28/2022 2:08:14 PM&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="Where can I report Connect IQ-related issues to Garmin?" href="#where-report"&gt;Where can I report Connect IQ-related issues and feature requests to Garmin?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What kind of issues should be reported?" href="#kind"&gt;What kind of issues should be reported?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What should I do before I report an issue with the Connect I Bug Reports tool?" href="#before-reporting"&gt;What should I do before I report an issue with the Connect IQ Bug Reports tool?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What information should be included in a new issue report?" href="#new-report"&gt;What information should be included in a new issue report?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What should I do if I find my issue has already been reported?" href="#already-reported"&gt;What should I do if I find my issue has already been reported?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What does Garmin do once an issue has been reported?" href="#Garmin-does"&gt;What happens once an issue has been reported?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="where-report"&gt;&lt;/a&gt; Where can I report Connect IQ-related issues and feature requests to Garmin?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Connect IQ developers can report issues to the Connect IQ team with the &lt;a title="Connect IQ Bug Reports" href="/developer/connect-iq/i/bug-reports"&gt;Connect IQ Bug Reports&lt;/a&gt; tool. &lt;span style="color:#ff0000;"&gt;Please note that this tool is for reporting Connect IQ-related issues only. Any non-Connect IQ-related issues will be closed and possibly moved to a more appropriate forum.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;This tool functions in a similar way to the other discussion forums, but it provides a couple of added benefits:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Others having a similar issue can upvote an issue to raise Garmin&amp;#39;s awareness of the problem&lt;/li&gt;
&lt;li&gt;The Connect IQ team can maintain and update the status of a reported issue to give you some idea about whether we have a plan to fix the problem&lt;/li&gt;
&lt;li&gt;The status tracks the time since the last status change, which should help the Connect IQ team stay accountable&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;While not a full ticket tracking system, this should be a significant improvement over our past attempts to track reported issues in regular discussion threads, which became difficult to manage!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="kind"&gt;&lt;/a&gt; What kind of issues should be reported?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Please let us know about anything related to Connect IQ app development and execution, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Problems with the SDK and development tools&lt;/li&gt;
&lt;li&gt;Issues withe the Monkey C language&lt;/li&gt;
&lt;li&gt;Problems with the Connect IQ APIs or related documentation&lt;/li&gt;
&lt;li&gt;Inconsistencies between app execution in the Connect IQ simulator and on Garmin devices&lt;/li&gt;
&lt;li&gt;Connect IQ app store problems&lt;/li&gt;
&lt;li&gt;Garmin-published app crashes(typically an &amp;#39;IQ!&amp;#39; icon will appear on the device screen when an app crashes)&lt;/li&gt;
&lt;li&gt;Device crashes/reboots when running Connect IQ apps&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="color:#ff0000;"&gt;Note that we cannot help address app crashes in apps not developed and maintained by Garmin. The best course of action is to contact the third-party developer using the &lt;strong&gt;Contact Developer&lt;/strong&gt; link on their app&amp;#39;s detail page on the app store.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="before-reporting"&gt;&lt;/a&gt; What should I do before I report an issue with the Connect IQ Bug Reports tool?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Before reporting any issues, please be sure to try:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Updating or Installing the newest version of Eclipse&lt;/li&gt;
&lt;li&gt;Installing the latest version of the Connect IQ SDK and Eclipse plugins&lt;/li&gt;
&lt;li&gt;Updating the software of your Garmin Device (if using physical device)&lt;/li&gt;
&lt;li&gt;Check for existing reports of the issue&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="new-report"&gt;&lt;/a&gt;&lt;strong&gt; What information should be included in a new issue report?*&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Descriptive Title (e.g. &amp;quot;Simulator Freezes Launching App in Eclipse&amp;quot;)&lt;/li&gt;
&lt;li&gt;The Environment:
&lt;ul&gt;
&lt;li&gt;Operating System or Device, including OS or software version of device&lt;/li&gt;
&lt;li&gt;Connect IQ SDK version&lt;/li&gt;
&lt;li&gt;Eclipse Version&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;A detailed description of the issue&lt;/li&gt;
&lt;li&gt;Steps to reproduce the issue&lt;/li&gt;
&lt;li&gt;App source code or a code sample that can reproduce the issue (If you&amp;#39;d rather not share code publicly, please send an email to&amp;nbsp;&lt;a href="mailto:ConnectIQ@garmin.com"&gt;ConnectIQ@garmin.com&lt;/a&gt;&amp;nbsp;with&amp;nbsp;a link to your new thread and your source code attached)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We may not be able to effectively investigate a problem without the right info, so please provide as much information as possible. We&amp;#39;ll follow up on the bug report if we need more information.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="already-reported"&gt;&lt;/a&gt; What should I do if I find my issue has already been reported?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Upvote the issue using the voting widget:&lt;/li&gt;
&lt;li&gt;Add any&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;new&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;information about the issue to the existing report as a reply&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Garmin-does"&gt;&lt;/a&gt; &lt;strong&gt;What happens once an issue or suggestion has been reported?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Once an issue is reported, it will automatically be in an &lt;em&gt;Under Revie&lt;/em&gt;w state, which means that it is in our queue to be investigated.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Once enough information is provided, the Connect IQ team will create an internal ticket to investigate the issue. At this point, the status will be updated to &lt;em&gt;Ticket Created&lt;/em&gt;, and we&amp;#39;ll include the internal ticket number in the status comment.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;After an issue has been verified, it will be prioritized within one business week. Prioritization is indicated by one of three status types:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;em&gt;Coming Soon&lt;/em&gt; - This is a high priority issue for which we are implementing the related fix or feature and will include it in a future release&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;em&gt;Future Consideration&lt;/em&gt; - This is a lower-priority issue for which we understand the issue and will consider a fix or feature addition in a future release&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;em&gt;Not Planned&lt;/em&gt; - This request will not be implemented. This primarily applies to feature requests&amp;ndash;the only reason a bug report might not be planned is if it&amp;#39;s a bug in a deprecated feature or on an old product that is no longer in maintenance.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Once a fix or feature has been implemented, we will update the status to &lt;em&gt;Complete&lt;/em&gt; and indicate the release in which the fix is available. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Bug Reports FAQ</title><link>https://forums.garmin.com/developer/connect-iq/w/wiki/5/bug-reports-faq/revision/9</link><pubDate>Mon, 28 Feb 2022 14:05:21 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:87be7e96-9de5-4778-8e54-9edffd7e5cd2</guid><dc:creator>Brandon.ConnectIQ</dc:creator><description>Revision 9 posted to Wiki by Brandon.ConnectIQ on 2/28/2022 2:05:21 PM&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="Where can I report Connect IQ-related issues to Garmin?" href="#where-report"&gt;Where can I report Connect IQ-related issues and feature requests to Garmin?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="#kind"&gt;What kind of issues should be reported?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What should I do before I report an issue with the Connect I Bug Reports tool?" href="#before-reporting"&gt;What should I do before I report an issue with the Connect IQ Bug Reports tool?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What information should be included in a new issue report?" href="#new-report"&gt;What information should be included in a new issue report?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What should I do if I find my issue has already been reported?" href="#already-reported"&gt;What should I do if I find my issue has already been reported?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a title="What does Garmin do once an issue has been reported?" href="#Garmin-does"&gt;What happens once an issue has been reported?&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="where-report"&gt;&lt;/a&gt; Where can I report Connect IQ-related issues and feature requests to Garmin?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Connect IQ developers can report issues to the Connect IQ team with the &lt;a title="Connect IQ Bug Reports" href="/developer/connect-iq/i/bug-reports"&gt;Connect IQ Bug Reports&lt;/a&gt; tool. &lt;span style="color:#ff0000;"&gt;Please note that this tool is for reporting Connect IQ-related issues only. Any non-Connect IQ-related issues will be closed and possibly moved to a more appropriate forum.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;This tool functions in a similar way to the other discussion forums, but it provides a couple of added benefits:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Others having a similar issue can upvote an issue to raise Garmin&amp;#39;s awareness of the problem&lt;/li&gt;
&lt;li&gt;The Connect IQ team can maintain and update the status of a reported issue to give you some idea about whether we have a plan to fix the problem&lt;/li&gt;
&lt;li&gt;The status tracks the time since the last status change, which should help the Connect IQ team stay accountable&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;While not a full ticket tracking system, this should be a significant improvement over our past attempts to track reported issues in regular discussion threads, which became difficult to manage!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="kind"&gt;&lt;/a&gt; What kind of issues should be reported?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Please let us know about anything related to Connect IQ app development and execution, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Problems with the SDK and development tools&lt;/li&gt;
&lt;li&gt;Issues withe the Monkey C language&lt;/li&gt;
&lt;li&gt;Problems with the Connect IQ APIs or related documentation&lt;/li&gt;
&lt;li&gt;Inconsistencies between app execution in the Connect IQ simulator and on Garmin devices&lt;/li&gt;
&lt;li&gt;Connect IQ app store problems&lt;/li&gt;
&lt;li&gt;Garmin-published app crashes(typically an &amp;#39;IQ!&amp;#39; icon will appear on the device screen when an app crashes)&lt;/li&gt;
&lt;li&gt;Device crashes/reboots when running Connect IQ apps&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="color:#ff0000;"&gt;Note that we cannot help address app crashes in apps not developed and maintained by Garmin. The best course of action is to contact the third-party developer using the &lt;strong&gt;Contact Developer&lt;/strong&gt; link on their app&amp;#39;s detail page on the app store.&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="before-reporting"&gt;&lt;/a&gt; What should I do before I report an issue with the Connect IQ Bug Reports tool?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Before reporting any issues, please be sure to try:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Updating or Installing the newest version of Eclipse&lt;/li&gt;
&lt;li&gt;Installing the latest version of the Connect IQ SDK and Eclipse plugins&lt;/li&gt;
&lt;li&gt;Updating the software of your Garmin Device (if using physical device)&lt;/li&gt;
&lt;li&gt;Check for existing reports of the issue&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="new-report"&gt;&lt;/a&gt;&lt;strong&gt; What information should be included in a new issue report?*&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Descriptive Title (e.g. &amp;quot;Simulator Freezes Launching App in Eclipse&amp;quot;)&lt;/li&gt;
&lt;li&gt;The Environment:
&lt;ul&gt;
&lt;li&gt;Operating System or Device, including OS or software version of device&lt;/li&gt;
&lt;li&gt;Connect IQ SDK version&lt;/li&gt;
&lt;li&gt;Eclipse Version&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;A detailed description of the issue&lt;/li&gt;
&lt;li&gt;Steps to reproduce the issue&lt;/li&gt;
&lt;li&gt;App source code or a code sample that can reproduce the issue (If you&amp;#39;d rather not share code publicly, please send an email to&amp;nbsp;&lt;a href="mailto:ConnectIQ@garmin.com"&gt;ConnectIQ@garmin.com&lt;/a&gt;&amp;nbsp;with&amp;nbsp;a link to your new thread and your source code attached)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We may not be able to effectively investigate a problem without the right info, so please provide as much information as possible. We&amp;#39;ll follow up on the bug report if we need more information.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a id="already-reported"&gt;&lt;/a&gt; What should I do if I find my issue has already been reported?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Upvote the issue using the voting widget:&lt;/li&gt;
&lt;li&gt;Add any&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;new&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;information about the issue to the existing report as a reply&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Garmin-does"&gt;&lt;/a&gt; &lt;strong&gt;What happens once an issue or suggestion has been reported?&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Once an issue is reported, it will automatically be in an &lt;em&gt;Under Revie&lt;/em&gt;w state, which means that it is in our queue to be investigated.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Once enough information is provided, the Connect IQ team will create an internal ticket to investigate the issue. At this point, the status will be updated to &lt;em&gt;Ticket Created&lt;/em&gt;, and we&amp;#39;ll include the internal ticket number in the status comment.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;After an issue has been verified, it will be prioritized within one business week. Prioritization is indicated by one of three status types:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;em&gt;Coming Soon&lt;/em&gt; - This is a high priority issue for which we are implementing the related fix or feature and will include it in a future release&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;em&gt;Future Consideration&lt;/em&gt; - This is a lower-priority issue for which we understand the issue and will consider a fix or feature addition in a future release&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;em&gt;Not Planned&lt;/em&gt; - This request will not be implemented. This primarily applies to feature requests&amp;ndash;the only reason a bug report might not be planned is if it&amp;#39;s a bug in a deprecated feature or on an old product that is no longer in maintenance.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Once a fix or feature has been implemented, we will update the status to &lt;em&gt;Complete&lt;/em&gt; and indicate the release in which the fix is available. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item></channel></rss>