Edit

Share via


Troubleshooting Arm UWP apps

If your Arm32 or Arm64 UWP app isn't working correctly on Arm, here's some guidance that might help.

Note

To build your UWP application to natively target the Arm64 platform, you must have Visual Studio 2017 version 15.9 or later, or Visual Studio 2019. For more information, see this blog post.

Common issues

Here are some common issues to keep in mind when troubleshooting Arm32 and Arm64 apps.

Using Windows 10 Mobile-only APIs on Arm-based processors

Arm apps might run into problems when using mobile-only APIs (for example, HardwareButtons). To mitigate this issue, you can dynamically detect whether your app is running on Windows 10 Mobile before calling these APIs. For more info, see Dynamically detecting features with API contracts.

Including dependencies not supported by UWP apps

Universal Windows Platform (UWP) apps that aren't properly built with Visual Studio and the UWP SDK might have dependencies on OS components that aren't available to Arm apps running on an Arm64 system. Examples of these dependencies include:

  • Expecting parts of the .NET Framework to be available.
  • Referencing third-party .NET components that aren't compatible with UWP.

You can resolve these issues by removing the unavailable dependencies and rebuilding the app by using the latest Microsoft Visual Studio and UWP SDK versions. As a last resort, you can remove the Arm app from the Microsoft Store so that the x86 version of the app (if available) is downloaded to users' PCs.

For more info on .NET APIs available for UWP apps, see .NET for UWP apps.

Compiling an app with an older version of Visual Studio and SDK

If you run into issues, be sure to use the latest versions of Microsoft Visual Studio and the Windows SDK to compile your app. Apps compiled with an earlier version of Visual Studio and the SDK might have issues that are fixed in later versions.

Debugging

You can use existing tools for developing apps for the Arm platform. Here are some helpful resources.

  • Visual Studio 15.5 Preview 1 and later supports running Arm32 apps by using Universal Authentication mode. This mode automatically bootstraps the necessary remote debugging tools.
  • See Debugging on Arm64 to learn more about tools and strategies for debugging on Arm.