Skip navigation
All Places > ArcGIS AppStudio > Blog > 2018 > May

The new GNSS Info sample, included in AppStudio 3.0 Desktop Edition, brings together the components in Qt and the AppStudio AppFramework that you can use to build an app that interacts with GNSS (Global Navigation Satellite System) receivers.


Common features of this type of apps are:

  • The requirement to browse and connect to a receiver
  • Display a location on a map along with metadata about that location
  • Presentation of available satellite information
  • Presentation of key quality parameters that may indicate the usefulness of the data received
  • Display a raw feed of the data coming from the receiver for troubleshooting purposes


Each of these features are shown in this app on separate tabs. You may choose to use one or more of these tabs in your own app, or use this app as it is, to test out your own GNSS receivers with your hardware.


What type of receivers can be used?

This app will connect to, and display location information from, GNSS receivers that output NMEA sentences. For examples of recievers that we have tested with see GPS receiver support—AppStudio for ArcGIS | ArcGIS .


Qt and the AppFramework can also read and write data to other bluetooth devices using the same components used in this app. For example, you can connect to a bluetooth printer using the same device discovery component and send data from your app to the printer for immediate printing.


For more information on the key components in this sample refer to:


Receiver detection

This app can detect receivers that are connected to your device using:

  • Bluetooth pairing – to connect to a receiver in your app you must first pair it with your device. Note that some receivers have a limit to the number of devices they can be paired to at anyone time. For example, the Eos Arrow can only pair to one device at a time, while Bad Elf devices can pair with up to 2 devices at a time. For information on pairing your reciever see Use a high-accuracy GPS receiver—AppStudio for ArcGIS | ArcGIS .
  • USB/COM connection – A GPS receiver that plugs into a computer via USB is displayed in the app as a COM port. To confirm which COM port your device is represented by, look at the list of devices connected to your computer. For example, on Windows go to Device Manager > Ports (COM & LPT).
  • TCP/UDP network connection – A TCP (Transmission Control Protocol) connection is bidirectional and has limited error handling. On the other hand, UDP (User Datagram Protocol) is one way only and has no error handling. Creation of a UDP connection requires the hostname and port of the destination machine (where you are running the app), while creation of a TCP connection requires the hostname and port of the machine providing the GNSS information to the destination machine.


On the device tab, press to select a device. Next time you launch the GNSS Info app, it will attempt to automatically connect to the last device used. You can always return to the device tab and change which device you connect to.


Location display

The location tab shows the current location on a map. If your device has network connectivity, an online basemap is used. A limited offline basemap is also available in the sample.


Key metadata about the current location is displayed. The app also allows the user to change the units in which latitude and longitude are displayed.


Use the location tab to confirm that the location reported from your hardware is the expected location.



Satellite sky plot

The skyplot tab shows both a skyplot and a table view of the satellites reported by the receiver. Be aware that some receivers have a physical display that may sometimes display different values to this page. Other receivers have their own companion app that also may show different results. These differences are mostly likely attributed to manufacturer specific parameters and the way each manufacturer presents data from the receiver.


The GNSS Info app displays the number of satellites in view, and the amount in use to calculate your location. There can also be satellites in view (or in use) that have no signal. This is usually a temporary response and should not affect the quality of a location displayed in an app.


Use the skyplot tab to ensure you have positioned yourself or your hardware in the best location to capture a suitable position value.



Quality tab

The quality tab lists common meta data available from a GNSS receiver. These are values you may choose to capture during data collection as attributes of your feature. Alternatively, you may use these to indicate the quality of the position to the user. For example, you might warn the user that accuracy values are greater than a prescribed threshold and disallow them to capture data.



Log tab

The log tab shows a stream of the sentences that are emitted from the receiver. Different receivers output different sent

ences. The presence or absence alone of sentences is useful for troubleshooting a receiver connection issue. The inspe

ction of the presence or absence of individual sentences can also aid diagnosis of unexpected parameter results. For example, latitude, longitude and altitude errors are only calculated when the GST sentence is present. Not all receivers

output the GST sentence. If the GST sentence is not available, then ‘No Data’ is reported on the quality tab for latitude, longitude and altitude error.


Use the pause button on this tab to study the latest sentences. Use the delete button to clear the screen to make it easier to read new sentences.



Switching between the tabs of this app will display to you the continuous stream of data reported from the connected GNSS receiver in several ways: as text, on a map, as a graphical representation, and in its rawest form. You can choose which of these best suits your own app, or use this app to evaluate what information is available to you from your own receiver.

Map Tour template is ideal when you want to present a linear, place-based narrative featuring images audios, or videos. Each "story point" in the narrative is geo-located. Your users have the option of clicking sequentially through the narrative, or they can browse by interacting with the map or using an optional thumbnail carousel. You can create a Map Tour using the Story Maps builder and then easily convert that to a beautiful native mobile application without writing any code. You can also configure your branding icons, colors, and images to your Map Tour apps. 
Thank you for the usage and providing us good feedback. Many exciting new features and UI enhancements have been added for this release.
Fully offline support  
Currently, Map Tour pictures, thumbnails, and text get cached locally by default, meaning that you are able to view them when you do not have Wi-Fi or a cellular connection.  In this release, we extend your ability to download and view Mobile Map Packages (MMPKs) that was created using the ArcGIS Publisher extension with anonymous use enabled. 
An MMPK ID needs to be set on AppStudio Desktop Settings > Properties > Gallery > Mobile Map Packages (mmpk) item ID field. Once the MMPK has been set on Desktop, the offline map will be automatically detected and trigger a pop-up to ask you to download in your Map Tour app.  You can also download the offline map by opening the top left menu on the Map Tour Gallery page, and choosing Download offline map.  The Clear cache option on the Gallery menu page removes the offline map, cached pictures, thumbnails, and text from your device. 
Note, You will not see Download offline map option on the Menu page if your MMPK was not created using ArcGIS ProPublisher extension with anonymous enabled. 
Upgrade ArcGIS Runtime SDK to 100.2.1
ArcGIS Runtime level has been upgraded from 100.1 to 100.2.1, which means some new features added to Runtime 100.2 and 100.2.1 are available in Map Tour, too.  For example, if your MMPK contains tile packages, it will be supported by Map Tour as well. 
Launching Map Tour at a specific page through a custom URL Scheme
One of the most required enhancements we received from you is to use custom URL Scheme launch a Map Tour at a specific page.  We have added this functionality to Map Tour template version 3.0, allowing you to launch a specific Map Tour or a Map Tour point through custom URL Scheme.  To do this:
Step 1:  Setting a URL Scheme for your Map Tour app in the Advanced Settings dialog. 
Step 2:  Adding Custom URL Scheme to the app that you want to launch Map Tour.  The example below shows one of the ways to do so in QML.  
  • mymaptourapp should be the app’s URL Scheme defined in step 1
  • c50be5615f024cc482ccb88222a8719d is the Story Map ID
  • 2 means you would like to open the second point in the Story Map directly  



Step 3:  If you wish to launch Map Tour app from another app built with AppStudio on iOS devices, you need to whitelist launch URL Scheme.  As of AppStudio 3.0 release, we have included a UI for setting Launch URL Schemes in the Advanced Settings dialog.  To do this, select another app> click Settings icon on the side panel > click the Advanced button and put the URL Scheme of your Map Tour in the Launch URL Schemes field.    
Set default map tour points order 
Previously, the map tour points were sorted by the Default optionWith this release, we have provided a new Sort type field in the AppStudio Desktop Settings to allow you to specify the default map tour points sorting order with the choices of default, distance, or title. 
Ability to hide the Sorting button 
Map Tour template 3.0 has introduced a new Enabled tour item sorting field in the AppStudio Desktop Settings to hide Sorting button on the Map Tour app.  If you wish to hide Sorting button, start AppStudio Desktop, open Settings > Properties > Gallery > disable Enable tour item sorting button 
Data Usage warning
To help you manage your mobile data usage,  a warning message will be displayed when you are trying to download an MMPK using cellular data.  
Update UI to support iPhone X 
Map Tour’s layout has been updated to fill the iPhone X screen, and to not obscure rounded corners and indicators for both portrait and landscape orientation. 
Note: Map Tour template includes ArcGIS Runtime functionalities, please do not forget to set your ArcGIS Runtime license before deploying your app into production.  AppStudio Desktop is capable of automatically generate a free Runtime Lite license for you (Settings > Advanced Settings dialog > Set Lite license).   
We hope you enjoy Map Tour template updates and if you are interested in updates to other templates, please click this link to find all the blog posts related to the 3.0 release of AppStudio for ArcGIS.
AppStudio Player is a great tool to test your AppStudio apps.  It gives you instant feedback of what your apps will look and act like on a real device without build requirements.  We have been continuing our work on adding new functionalities and enhancements to Player to improve your app developing experience.  
Introducing Player Classic
As of AppStudio 3.0 release, ArcGIS Runtime 10.2.6 is no longer supported in Player as the older ArcGIS Runtime 10.2.6 technology gets progressively replaced by the newer ArcGIS Runtime 100.x.  Just in case, if you still have apps that is built using the old generation of ArcGIS Runtime 10.2.6 that need to be tested, we have released Player Classic separately in both Apple app store and Google Play store.  Notice that Player Classic doesn’t include new changes added to 3.0 release. Also you are required to download and install Player Classic separately.  
The existing Player in the app stores will be updated with all the new features and enhancements added to 3.0 release.  
Upgrade ArcGIS Runtime version to 100.2.1
ArcGIS Runtime version has been upgraded from 100.1 to 100.2.1.  This upgrade allows Player to support apps created using ArcGIS Runtime 100.2 or 100.2.1 as well. 
Secure Storage
AppStudio 2.1 release introduced the Secure Storage plugin to allow AppStudio apps to store data into a system-provided location (For example, data will be stored in the Keychain on macOS and iOS devices, and in the Keystore on Android devices).  In this release, Player just got safer and more powerful with the implementation of encryption tokens and sensitive information into the system using the Secure Storage plugin.
Support for fingerprint login on Android and Face ID login on iPhone X
With AppStudio 3.0, Android build tools have been upgraded to API level 23, and as a result, fingerprint authentication is supported by the Player now on the Android devices.  In addition, you can also log into Player using Face ID on iPhone X.
Support for licensing ArcGIS Runtime 100.x apps
Previously, when running an app inside the Player, there will always be a watermark on the map even though your app has assigned ArcGIS Runtime license.  We have been actively taking your feedback and now apply your app’s ArcGIS Runtime license into Player, meaning if your app has an ArcGIS Runtime Lite license, the watermark will be removed when testing your app using Player.  
Update UI to support iPhone X 
Player’s layout has been updated to fill the iPhone X screen, and to not obscure rounded corners and indicators for both portrait and landscape orientation. 
As always, we will continue taking your suggestions and enhancing Player to help improve your app developing experience. A blog post on what's new in Map Tour 3.0 is coming soon, so stay tuned!  
Click this link to find all the blog posts related to the 3.0 release of AppStudio for ArcGIS. 
AppStudio for ArcGIS Desktop Edition provides feature-rich development tools to allow you further configure, customize, test, distribute, and build your apps easily and quickly. Many new features and enhancements are introduced in this release, as well as some key upgrades to the frameworks that you build your apps with. 
Upgrade ArcGIS Runtime to 100.2.1 
ArcGIS Runtime powers GIS capabilities in your applications and is fully supported by AppStudio. In this release, ArcGIS Runtime version has been updated from 100.1 to 100.2.1, which means all of the exciting new and powerful features, bug fixes, and enhancements added to ArcGIS Runtime 100.2 and 100.2.1 are available in AppStudio 3.0.
Upgrade Qt to 5.10
Behind the scenes, the underlying Qt framework has been upgraded from 5.9.1 to 5.10, which enables you to take advantage of new functionalities and enhancements received in Qt 5.10, such as new QML types and styles in Qt Quick Controls 2, a finalized Text-to-Speech module, an updated Qt WebEngine, and so much more. You also benefit from more than 100 bug fixes in Qt 5.10.   
AppStudio 2.1 will be the last release to support ArcGIS Runtime for Qt 10.2.6. If you wish to continue building apps using 10.2.6, please do not update your version of AppStudio to 3.0. AppStudio 3.0 will drop support for 32-bit iOS apps to help optimize an app’s performance on supported devices as well as conserve your device memory.  Please refer to this blog post for more information about deprecations. 
AppFramework.Dialogs plugin has been deprecated in AppStudio 3.0.  You will need to remove ArcGIS.AppFramework.Dialogs import statement to continue running the app.  
Note: This will not cause further issues for the apps that contain Dialogs plugin such as Quick Report, as the app only imported the plugin, and no longer used anything it provided.
To remove ArcGIS.AppFramework.Dialogs import statement from your existing Quick Report:
1.     Click Edit button to run Qt Creator 
2.     Navigate to CameraComponent.qml file
3.     Remove line 14 import ArcGIS.AppFramework.Dialogs 1.0 
Categorize sample apps 
Work has continued to make the sample searching experience as easy as possible. In this release, we have added a new combo box to categorize more than 60 samples in the New App dialog. With this improvement, you can now easily find a sample that you want to use based on its functionality.
New Samples and Layout 
We have added seven new samples (WMS Layer, Feature Layer shapefile - requires ArcGIS Runtime Standard License, GNSS Info, Replicator, SD Card, Network Check, OAuth + Biometric Authentication) and a Quick Capture enterprise template in this release to help you develop your own applications. The newly added ArcGIS Runtime samples demonstrate enhancements and GIS capabilities added to ArcGIS Runtime 100.2 and 100.2.1. You can also see how to connect to high-accuracy GPS receivers and read accuracy parameters from the GNSS Info sample app.  OAuth + Biometric Authentication sample uses OAuth 2.0 to log in to ArcGIS Platform.  It also implements the Secure Storage and the Authentication plug-ins.  
Cloud Make improvements
With AppStudio 3.0, Cloud Make tool now supports newly introduced iOS application distribution mechanisms, such as distributing through the App Store, to members of your team, to your own organization, or to designated devices.
This release also introduces the ability to see the current status of cloud Make builds. Clicking on the notification bar on the cloud Make tool dialog will take you to the Active Cloud Builds view, where you will be able to see the progress of your builds on specific platforms. In addition, Could make Make error messages will be detected and reported to the notification bar.    
AppStudio Desktop 3.0 has deprecated ArcGIS Runtime 10.2.6; however, for users who have existing old Runtime app, can still use Could Make environmental to build old Runtime apps with AppStudio Desktop 2.1.   
Settings dialog UI improvements 
URL Schemes let you launch other apps from your app and as of iOS 9, the URL Schemes need to be whitelisted. We have added UI in the Advanced Settings dialog to allow you to specify launch URL Schemes.  
While adding support for the high accuracy GPS receiver, we also introduced a new field in the Advanced Settings dialog for specifying External Accessory Protocol Strings. This is needed for iOS apps, to provide a list of third-part external accessories that have whitelisted your app.
The Settings tool now provides the option to enable or disable multiple instances for Windows and Linux apps.
Other enhancements 
·        Searching for an app using hashtags is no longer case-sensitive
·        Slovenian language support
·        Support for background external accessory property in appinfo, if High Accuracy Location is enabled in Settings.
·        Support for the new Android Runtime Permission Model
·        Upgraded toolchains (Visual Studio 2017, XCode 9)
·        Improved logging and error handling for Windows builds
We hope you enjoy the new features and enhancements added to Desktop in this release. A blog post on what’s new in Map Tour template is coming soon. 
Click this link to find all the blog posts related to the 3.0 release of AppStudio for ArcGIS. 

While publishing your iOS app to Apple’s App Store or TestFlight, what should you do if you encounter the following error?


Error ITMS-90717: “Invalid App Store Icon”


This is caused due to transparent pixels and/or alpha channels present in the app icon. As per iOS app icon specifications, developers are required to use an app icon with a simple, opaque background. Please refer to the link below to study all the guidelines for creating an app icon.


If you are using Adobe Photoshop to create the app icon image, even if there are no transparent parts of the image, you still need to make sure that you uncheck 'Transparency' before exporting the .png file. 


You can check whether your image has alpha channels using Finder -> right clicking on your app icon .png files -> Get Info -> More Info -> alpha channel.


If you are using any other tool to create your app icons, make sure to apply the appropriate settings to remove transparent pixels and alpha channels from the icon image.


Note: This restriction only applies to iOS apps. Transparency in app icon is permitted on other platforms. With AppStudio 3.0, you can now provide platform specific app icons. Open appinfo.json in your AppStudio project and specify the file as needed for platform.  In AppStudio, Select your app, click on the Edit icon on the side panel to open Qt Creator, then select appinfo.json file on the left panel.


The following snippet shows how to provide platform specific app icon.



"resources": {

        "android": {

            "appIcon": "assets/android_appicon.png"


        "appIcon": "appicon.png",

        "ios": {

            "appIcon": "assets/ios_appicon.png"


        "linux": {

            "appIcon": "linux_appicon.png"


        "macos": {

            "appIcon": "mac_appicon.png"


        "uwp": {

            "appIcon": "uwp_appicon.png"


        "windows": {

            "appIcon": "windows_appicon.png"





I hope this blog post is helpful and please let us know if you have any questions in the comment below.