Appcenter: ARM64 Support for Crashes (UWP)

Created on 19 Aug 2018  路  36Comments  路  Source: microsoft/appcenter

Description

Visual Studio 15.8 was released a few days ago which provides ARM64 support for UWP. I managed to target my project to ARM64, and setup the appropriate "RuntimeIdentifiers", but when I build the project I get the following error:

Please build your project specifically for one of the following platforms: x86, x64, ARM

Repro Steps

  1. Create a new UWP Project (Visual Studio 15.8)
  2. Install the Microsoft.AppCenter.Crashes nuget package (1.8.0).
  3. Create a new configuration based off ARM called ARM64.
  4. Add <RuntimeIdentifiers>win10-arm64</RuntimeIdentifiers> to the .csproj file to allow building.
  5. See Please build your project specifically for one of the following platforms: x86, x64, ARM error on build.

Details

  • App Platform: UWP (ARM64)
  • SDK Version: 1.8.0
feature request sdk

Most helpful comment

Thanks to all for your feedback! Since the work is now complete, I am closing this issue. Feel free to reopen it or create a new one if you are running into issues with ARM64.

All 36 comments

Hi @DominicMaas,
Thanks for reaching us. You are right it's not yet supported by the App Center UWP SDK. It's not planned yet but it's tagged as a feature request so we can keep track of it.

Any updates on this issue? Maybe at least changing the error to a warning so you can still compile (and just ignore ARM64 crashes for now)?

@DominicMaas No news on actual arm64 support for now. But thanks for that suggestion - we think it's a good idea! An item to downgrade the error to a warning has been added to our backlog.

Any updates to arm64 support?

@chriskellor This feature is not in our immediate roadmap to support. We'd be working on a better story for UWP crashes in App Center and would prioritize this feature support at that time. We will keep this issue open for visibility and let you know once we plan to support it.

Submission to Store for ARM64 version of my app fails. The issue seems to be tied to sqlite3. Can't this SDK just rely on SQLite that ships with Windows 10?

Hi @myokeeh!

This isn't related to sqlite3. The issue is only about Crashes module that uses C++ bindings which require special care about architectures.

Sorry for going slightly off topic. @myokeeh I'm having the same issue, ARM64 validation fails because sqlite3 uses some restricted APIs on ARM64 or somthing. Do you want to compare packages/libraries and try figure out what's causing the issue?

Can you give an estimate for ARM64 Support? Maybe in a couple of months? 6-10 months? Only after 2020? Estimate would be enough for me. As of right now I had to stop using app center since there is no arm64 support.

@chriskellor our current ETA is around September 2019. I will keep this thread updated as I have more details. Thanks for your patience!

We need ARM64 support!

Our product will ship to arm64 device, and we use AppCenter to monitor something. If AppCenter is not support arm64, it will block our product. May we only use other analytic service.

Almost a year ago, ARM64 support was added to UWP.

FYI, it seems I can now use Crashes and have the Store accept ARM64 submissions with the help of this NuGet package: https://www.nuget.org/packages/SQLitePCLRaw.lib.e_sqlite3/2.0.1-pre20190815133105.

https://github.com/ericsink/SQLitePCL.raw/issues/254

Any updates on this?

We are seriously considering this and will have an update soon for you all. Expected release timeline is end of this year or early next year. Apologies that this got dragged for a long time.

Hey appcenter team, any updates on this? The Surface Pro X is out and my customers are asking for an ARM64 build in order to take full advantage of their device. Can you increase the priority of ARM64? My goal is to deliver a good experience on Surface Pro X. This issue is blocking me

@dpaulino: This feature is next in line and the team will take it on after completion of existing workstream. Once there is more clarity(expected within next few days), I can update you with a more concrete timeline.

@ahbilal-ms I appreciate the response. Looking forward to the concrete timeline.

The reason is clear.

  • AppCenter dependent on sqlite-net-pcl (>= 1.3.1)
  • sqlite-net-pcl (>= 1.3.1) dependent on SQLitePCLRaw.bundle_green (>= 1.1.2)
  • SQLitePCLRaw.bundle_green (>= 1.1.2) dependent on SQLitePCLRaw.lib.e_sqlite3.v140 (>= 1.1.2)

SQLitePCLRaw.lib.e_sqlite3.v140 (>= 1.1.2) only supports x86,x64 and arm32.

But for now, SQLitePCLRaw.bundle_green latest version is 2.0.2,
SQLitePCLRaw.bundle_green (>=2.0.2) dependent on SQLitePCLRaw.lib.e_sqlite3 (>= 2.0.2)

SQLitePCLRaw.lib.e_sqlite3 (>= 2.0.2) support ARM64 now.

So we can try to update the version of SQLitePCLRaw.bundle_green to 2.0.2 to resolve this issue.

Just replace the dependency lib is not work. We need the official support.

@cjw1115 I have the feeling that simply installing that Nuget package doesn't resolve the problem. Yes - the app can be built successfully and passes Store certification, however AppCenter seems to stop working, e.g. I dont receive analytics data any more. I think it is related to this exception that can be observed when manually installing SQLitePCLRaw.bundle_green v2.0.2

2019-11-13 12:58:51.591 [AppCenter] ERROR: An error occurred while initializing storage
Microsoft.AppCenter.Storage.StorageException: The storage operation failed ---> SQLite.SQLiteException: Could not open database file: Microsoft.AppCenter.Storage (CannotOpen)
   at SQLite.SQLiteConnection..ctor(String databasePath, SQLiteOpenFlags openFlags, Boolean storeDateTimeAsTicks)
   at SQLite.SQLiteConnectionWithLock..ctor(SQLiteConnectionString connectionString, SQLiteOpenFlags openFlags)
   at SQLite.SQLiteConnectionPool.Entry..ctor(SQLiteConnectionString connectionString, SQLiteOpenFlags openFlags)
   at SQLite.SQLiteConnectionPool.GetConnection(SQLiteConnectionString connectionString, SQLiteOpenFlags openFlags)
   at SQLite.SQLiteAsyncConnection.<CreateTablesAsync>c__AnonStorey0.<>m__0()
   at System.Threading.Tasks.Task`1.InnerInvoke()
   at System.Threading.Tasks.Task.<>c.<.cctor>b__278_1(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.AppCenter.Storage.StorageAdapter.CreateTableAsync[T]()
   --- End of inner exception stack trace ---
   at Microsoft.AppCenter.Storage.StorageAdapter.CreateTableAsync[T]()
   at Microsoft.AppCenter.Storage.Storage.InitializeDatabaseAsync()

@ahbilal-ms any updates for a more concrete timeline? I want my app to fully support Surface Pro X customers, and this issue is a major blocker.

@dpaulino @ahbilal-ms same thing here :S

The team has started work on it. The work will happen in two phases where in first phase we are removing the dependency on sqlite-net-pcl and in second phase we will remove other blockages that is restricting us to support Arm 64. As pointed earlier, if indeed sqlite-net-pcl is the only hurdle, we might be able to release SDK support in early December. Otherwise we might need more days for the release. I will keep you folks updated once I get any new information.

@ahdbilal Any updates since the last post? As mentioned above by e.g. @dpaulino , this is a major show stopper for supporting Surface Pro X customers with ARM64 versions of my apps.

I don't know why they didn't publish source as opensource, we could fix ourself

This is under active development and expected to release soon (early January if everything goes as per the plan). The team has removed dependency on sqlite-net-pcl but there are other libraries that needs to be changed as well. Sorry that it took time but we are very near. Thanks

Yes we need support for arm 64all thing up and working and declining that does not make any one happy

I think it is related to this exception that can be observed when manually installing SQLitePCLRaw.bundle_green v2.0.2

@tipa did you come any further with this? We are having the same exception right now and will create a new issue here if you didn't already do that?

@bruzkovsky no I did not. I decided to wait until there is official support for ARM64 without any workaround/hacks needed

@tipa okay thank you. BTW I guess this will be fixed with https://github.com/microsoft/appcenter-sdk-dotnet/pull/1274

Any updates here?

This should be available in the February release of the SDK, which is expected to be released soon!

I'm using appcenter v2.6.4 and I'm able to successfully create a store package for my app. However, the app's ARM64 build fails store certification due to some unsupported sqlite binaries.

Does the fix coming in February include a fix for that store certification issue? I really need this fix now.

Looks like we should now be good (I have not yet tested) - https://github.com/microsoft/appcenter-sdk-dotnet/releases/tag/3.0.0

Looks like we should now be good (I have not yet tested) - https://github.com/microsoft/appcenter-sdk-dotnet/releases/tag/3.0.0

Yes, I updated to the last version of App Center SDK, and it's working now.

Thanks to all for your feedback! Since the work is now complete, I am closing this issue. Feel free to reopen it or create a new one if you are running into issues with ARM64.

Was this page helpful?
0 / 5 - 0 ratings