Xamarin support tracking issue

There's a bunch of work that is planned but that is also required to make SignalR work:

https://github.com/dotnet/corefx/pull/28034/files
https://github.com/xamarin/xamarin-android/pull/1509
https://github.com/xamarin/xamarin-macios/pull/3791
https://github.com/xamarin/xamarin-android/pull/1356

We also need to determine our plan for MsgPack in Xamarin. If we support it in the initial release, we need to make sure it's configured appropriately to not use Reflection.Emit.

Is there an actual version that actually works? Trying to get this to work but getting system.memory error all the time.

/cc @migueldeicaza

I found to get Android building, directly reference: system.memory
Then to get running, copy over to debug/Android/assets at post build time:
system.io.pipelines, system.threading.tasks.extensions, system.buffers, system.runtime.compilerservices.unsafe

Version="1.0.0-preview2-final" doesn't build for iOS project on VS 2017 15.6.6
Failed to resolve "System.Buffers.IBufferWriter`1" reference from "System.Memory, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51"

@muratg I'd need access to a build with these fixes

@mikaelm12 sounds good, punting the verification out of the milestone.

@akoeplinger any more details you can give here?

With latest VS for mac 15.7 preview, the AOT compilation error goes away.
https://stackoverflow.com/questions/49646078/xamrin-ios-aot-compilation-fails-from-mac-but-builds-fine-from-pc/49699385#49699385
However, on iOS, the following error remains even with rc1-final.
Failed to resolve "System.Buffers.IBufferWriter`1" reference from "System.Memory, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51"

We added the System.Memory.dll facade (that's why the AOT error went away) but we haven't added all the types yet. I'll find out where we're tracking that :)

It's an issue on both iOS and Android actually.

The AOT error didn't go away because I upgraded signalr (it was on preview 1), it went away because I upgraded vs 4 mac :-)

BTW, I'm lost.
System.Memory <IP_ADDRESS> is in .Net Core 2.1. So how can it be used by Xamarin anyway?

Also, if I change the linker behavior to "Don't link" then I get another error:
Could not AOT the assembly '/Users/francois/Library/Caches/Xamarin/mtbs/builds/AotTests.iOS/678ab06afbe35836bdafdf91a7d48f1c/obj/iPhone/Debug/mtouch-cache/Build/System.IO.Pipelines.dll'
This is strange because I thought the aot errors where caused by the new way of referencing packages and that it was solved with VS 15.7 (and indeed the previous aot error I raised was solved), as explained here.

System.Memory <IP_ADDRESS> is not support on mono framework 5.10 which is in 15.7.
Ref https://releases.xamarin.com/release-15-7/
Support mono version will be 5.12 or above. which are not release yet.
Ref https://github.com/xamarin/xamarin-android/pull/1509

But why do you use version <IP_ADDRESS> which is in net core and not in mono when maybe you could use 4.5.0 which (I think) is net standard and already referenced as a nuget package?

Morover, if somewhere you use version <IP_ADDRESS>, why isnt there a #if NETCOREAPP2_1  to prevent it from being compiled in the net standard version consummed by xamarin?

I have sane issue. It works with windows version but not with Android and IOS.

@AwsomeCode, you said that System.Memory is not supported on Mono framework and will be on 5.12 or above. How can we know if a library is supported by mono? Is there a list somewehere (maybe that )? I upgraded VS for mac to the version 7.6 preview which has Mono <IP_ADDRESS> but the error remains.

@michelmoorlag Can you clarify what you mean? You need to use ASP.NET Core SignalR to use Microsoft.AspNetCore.SignalR.Client on the client.

@davidfowl My current signalR server is written with 'classic' asp.net technology and I am using the Microsoft.AspNet.SignalR.Client from my XF app to access it. Now I have rewritten my signalR server with asp.net core technology. I tried to access the new .net core signalR server with the 'classis' Microsoft.AspNet.SignalR.Client but then you get a 404 not found error. After googeling I found that the .net core signalR technology is incompatible with the 'classic' signalR technology and I needed to use the new Microsoft.AspNetCore.SignalR.Client which I tried but ended me up on this page. So that is what i mean with

The old client is not compatible with the new server (and vice versa)

The issue still exists in Visual Studio 15.8.0 Preview 1.1. Is there any workaround?

There is no workaround at this time. We are working directly with the Xamarin team to get more information and will update this thread when we have the information.

Issue mono#8623 has been done and closed but the milestone part is empty. Does this mean we wil have a solution soon? My migration process has been stopped in it's tracks because of this and I'm awaiting a solution.

There is a fix going in to dotnet/corefx to resolve the issue temporarily: https://github.com/dotnet/corefx/issues/29847
This won't be making the RTM release, but we anticipate getting it in place for the first patch release.

Is there a timeline when a first patch is going out?

There is no public timeline, but we are aiming to get the patch out fairly soon after RTM (which is imminent).

I'm also blocked with the issue Failed to resolve "System.Buffers.IBufferWriter`1" reference on IOS
This is a BIG problem, I was already late... ):

So, IOS doesn't work, and same for Android: System.IO.FileNotFoundException: Could not load assembly 'System.Memory, Version=<IP_ADDRESS> ...
My work is blocked ):

Are u using uwp as well?

No only IOS and Android + .Net core 2.x

@marchanddesable It's not possible to work around this which is why this is one of our highest priorities for the first patch release. We don't have it fully locked down, but we're getting it out as quickly as possible. We weren't able to get official Xamarin support on the schedule for 2.1.0, but it's a high priority now that the RTM is out the door.

Any news on the Xamarin Support resolution. Will be very much appreciated for a pending deliverable.

@anurse Will we see the patch release for Xamarin support be made available before the end of this month?

We are working towards a patch release this month, but there are a number of moving parts so I can't guarantee anything right now. This is a very high priority for us, so we're working to get it resolved as quickly as possible.

Just checked latest MyGet builds (Microsoft.AspNetCore.SignalR.Client Version 1.0.1-rtm-30843 and System.Memory Version 4.6.0-preview3-26501-04) and the issue is still there. Maybe this will save time for other people desperately looking for any alternatives.
Glad to see this is a high priority, on the other hand wondering how we all ended up with no workarounds at all.
Will be checking if we can use this on iOS https://github.com/DyKnow/SignalR-ObjC and this  on Android https://github.com/SignalR/java-client meanwhile
Or something from these old samples (includes source code and .dll binaries for both platforms)
https://github.com/shanselman/PanTiltZoomSystem/tree/master/PTZRemoteController-iOS
https://github.com/shanselman/PanTiltZoomSystem/tree/master/PTZRemoteController-Android

As @alexsorokoletov said,  "wondering how we all ended up with no workarounds at all"
I use SignalR since the very first version (I was even using Comet with long polling before that), this is the first time I see an isssue like this with no alternative.
I totaly understand that you guys have a lot of work to do to make it work again.
But for some of us, the situation is very scary, because even when the issues will be fixed, we will still wonder if It is a good idea to continue working with Signalr.
I use signalr in the project I'm about to start, on Web, IOS and Android.
This is a Startup project, with fund raising in a few month.
One of the main features is a WebRTC video conferencing app with SignalR for the signaling steps of the communication, before the peer2peer connection.
Because of the situation I have to work on other parts of the project and expect the issue to be fixed soon. The more I wait, the more the situation becomes complicated because I will run out of funds.
If I was already in production, I would not be able to sleep with an issue like that : )
So maybe the team should provide us some alternatives in case something like that happen again in the future.

Maybe you should raise funds to write an alternative to signalr then?😂😂😂😂😂😂

Hahaha there is no reason to do that, SignalR is exactly what we need.
There are other options like WebSync, but they don't have a .net core version and it's not free.
Really, the problem here is not the issues, it's more the situation "no other options" :)
I love the crazy work that you do on SignalR, I have seen this library growing years after years, since the first version and this is why I made the choice to use it.

Maybe step up and see if you can work around things yourself (or fix
things)? Isn't that the power of open source?
2018-06-07 8:46 GMT+02:00 marchanddesable<EMAIL_ADDRESS>
Hahaha there is no reason to do that, SignalR is exactly what we need.
There are other options like WebSync, but they don't have a .net core
version and it's not free.
Really, the problem here is not the issues, it's more the situation "no
other options" :)
I love the crazy work that you do on SignalR, I have seen this library
growing years after years, since the first version and this is why I made
the choice to use it.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/aspnet/SignalR/issues/1886#issuecomment-395311550,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAG931GDrgCwhxKs6Da3HZc1uknv6Yl8ks5t6Mw-gaJpZM4TKh5r
.

Sure but here's how you sound to me:" I raised funds trying to get rich using a free library and I'm not happy that it doesn't work".

We're actively working on the issue, we can't go any faster. We fixed the what thought was the main issue and another one popped up. We're not looking for ways to fix that one. Stay tuned...

@davidfowl Thank you for the informations!
@FrancoisM Trust, me, I'm not that kind of person : )
Raising fund is still a goal to reach "later", I'm not here yet.
I have worked for more than 2 years on this project "for free", with only expenses, 0 earnings, no guarantees that it will work as expected.
And the potential fund raising is to try to build a team, not to become rich... : )

Fair enough ;-)

The passion is great! 😄 I love SignalR too 😉

Anybody interested in this issue might also want to track the issue I opened for Xamarin.iOS specifically w.r.t. System.Memory: iOS app build fails when referencing package (e.g. Entity Framework Core 2.1) that depends on newer System.Memory.

Here is a poor man's workaround I found so far.
I’ve used SignalR libaries from here https://github.com/shanselman/PanTiltZoomSystem/lib with one little change. These dlls use non-signed Newtonsoft.Json so in runtime whole thing just does not work. I’ve “ildasm+ilasm” them to specify public token in the Newtonsoft.Json:

After that change, I was able to use the updated library in Xamarin.iOS both in debug and release, even with a newer version of Newtonsoft.Json (I already had it referenced in the project). I can send and receive messages. Server side runs latest SignalR server SDK (Hail to the compatibility!)
The same trick workes with Android as well.
The updated iOS and Android libraries can be downloaded here:
https://github.com/DreamTeamMobile/PanTiltZoomSystem/blob/master/lib/Microsoft.AspNet.SignalR.Client.iOS.dll
https://github.com/DreamTeamMobile/PanTiltZoomSystem/blob/master/lib/Microsoft.AspNet.SignalR.Client.Android.dll

@alexsorokoletov isn't that ASP.NET SignalR? That's not compatible with ASP.NET Core SignalR. Am I missing something?

For those who really want a workaround, just make an hybrid view and delegate the interaction with your backend to the js client library.

@davidfowl, please forgive me for my lame question. What is the right way to get Xamarin SignalR SDK that works with classic ASP.NET?
Which package/version?

The Microsoft.AspNet.SignalR.Client package is the client for ASP.NET SignalR. It supports .NET Standard, so it should work on Xamarin. If you have any issues with it, you should report those on the http://github.com/SignalR/SignalR repository

Indeed, I got somehow confused by the package that we use on the server - Microsoft.AspNet.SignalR and one of it's dependencies Microsoft.AspNet.SignalR.Core https://www.nuget.org/packages/Microsoft.AspNet.SignalR.Core/. Thank you for clarification and sorry for the noise, should've RTFM first.

We are also waiting for the release with Xamarin support. But those who are looking for a workaround, Microsoft.AspNetCore.SignalR.Client 1.0.0-preview1-final is working fine in Xamarin.

this exception is related to this issue?:
System.TypeLoadException: Could not resolve the signature of a virtual method
  at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x0001b] in <f32579baafc1404fa37ba3ec1abdc0bd>:0
  at System.Reflection.MonoCMethod.DoInvoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0007a] in <f32579baafc1404fa37ba3ec1abdc0bd>:0
  at System.Reflection.MonoCMethod.Invoke (System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <f32579baafc1404fa37ba3ec1abdc0bd>:0
  at System.Reflection.ConstructorInfo.Invoke (System.Object[] parameters) [0x00000] in <f32579baafc1404fa37ba3ec1abdc0bd>:0
  at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor (Microsoft.Extensions.DependencyInjection.ServiceLookup.ConstructorCallSite constructorCallSite, Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope scope) [0x00035] in <15b87bbf30da4bf4b95652066811831b>:0
  at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2[TArgument,TResult].VisitCallSite (Microsoft.Extensions.DependencyInjection.ServiceLookup.IServiceCallSite callSite, TArgument argument) [0x00056] in <15b87bbf30da4bf4b95652066811831b>:0
  at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped (Microsoft.Extensions.DependencyInjection.ServiceLookup.ScopedCallSite scopedCallSite, Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope scope) [0x0002d] in <15b87bbf30da4bf4b95652066811831b>:0
  at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitSingleton (Microsoft.Extensions.DependencyInjection.ServiceLookup.SingletonCallSite singletonCallSite, Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope scope) [0x0000d] in <15b87bbf30da4bf4b95652066811831b>:0
  at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2[TArgument,TResult].VisitCallSite (Microsoft.Extensions.DependencyInjection.ServiceLookup.IServiceCallSite callSite, TArgument argument) [0x00072] in <15b87bbf30da4bf4b95652066811831b>:0
  at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor (Microsoft.Extensions.DependencyInjection.ServiceLookup.ConstructorCallSite constructorCallSite, Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope scope) [0x0001b] in <15b87bbf30da4bf4b95652066811831b>:0
  at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2[TArgument,TResult].VisitCallSite (Microsoft.Extensions.DependencyInjection.ServiceLookup.IServiceCallSite callSite, TArgument argument) [0x00056] in <15b87bbf30da4bf4b95652066811831b>:0
  at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped (Microsoft.Extensions.DependencyInjection.ServiceLookup.ScopedCallSite scopedCallSite, Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope scope) [0x0002d] in <15b87bbf30da4bf4b95652066811831b>:0
  at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitSingleton (Microsoft.Extensions.DependencyInjection.ServiceLookup.SingletonCallSite singletonCallSite, Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope scope) [0x0000d] in <15b87bbf30da4bf4b95652066811831b>:0
  at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2[TArgument,TResult].VisitCallSite (Microsoft.Extensions.DependencyInjection.ServiceLookup.IServiceCallSite callSite, TArgument argument) [0x00072] in <15b87bbf30da4bf4b95652066811831b>:0
  at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve (Microsoft.Extensions.DependencyInjection.ServiceLookup.IServiceCallSite callSite, Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope scope) [0x00000] in <15b87bbf30da4bf4b95652066811831b>:0
  at Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine+<>c__DisplayClass1_0.<RealizeService>b__0 (Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope scope) [0x0003e] in <15b87bbf30da4bf4b95652066811831b>:0
  at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetService (System.Type serviceType, Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope serviceProviderEngineScope) [0x00032] in <15b87bbf30da4bf4b95652066811831b>:0
  at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetService (System.Type serviceType) [0x00008] in <15b87bbf30da4bf4b95652066811831b>:0
  at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService (System.Type serviceType) [0x00000] in <15b87bbf30da4bf4b95652066811831b>:0
  at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetService[T] (System.IServiceProvider provider) [0x0000e] in <0483c335f48f46709723603c1a3a0703>:0
  at Microsoft.AspNetCore.SignalR.Client.HubConnectionBuilder.Build () [0x00041] in <b0d1d37b5fba4e70bb8beedfba950c0d>:0
  at SignalRAndroid.MainActivity.OnCreate (Android.OS.Bundle savedInstanceState) [0x00023] in C:\Users\mariano\src\signalr\SignalRAndroid\SignalRAndroid\MainActivity.cs:29

@pravinpatil83 the Microsoft.AspNetCore.SignalR.Client 1.0.0-preview1-final compiles on the iOS Simulator but I get a System.Buffer exception on the physical device. Are you able to get it to run on the device with the preview?

@pravinpatil83 I could not compile it on a 5.1 android using Microsoft.AspNetCore.SignalR.Client 1.0.0-preview1-final

VS15.8 preview (https://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2017-preview-relnotes) include a fix for this issue?

The current released preview does not contain a fix. I believe the fix is targeting the next preview.

@eopeter @marianogenovese I am using preview package in my development project and it's working for some time. I have created a new GitHub repository to demonstrate. it worked on my machine. I have not tested it elsewhere. The new project structure is different and it doesn't contain the packages.config file but I added a list of packages in a readme.

@pravinpatil83 thank i saw what you did, and I was able to create a connection from android using 1.0.0-preview1-final.

For me preview1 client works on android v7 nougat physical device and on emulators v5 - v7, also it works on iOS emulators but does not compile on iOS 11 physical device.

Preview1 works for both iOS and Android, but Android we can't enable "Linking" for Release mode. In debug linking works for some reason though.

I have confirmation that the fix is expected to arrive in 15.8 and should be available in the next preview release (Preview 3). I have confirmed that SignalR is working on Android with the fix, but I'm still working on confirming iOS.
I wouldn't recommend downgrading to preview 1 for any kind of production workload since there were a number of critical issues fixed after preview 1

I've now confirmed both Android and iOS scenarios work in the upcoming Xamarin build. To make it absolutely clear, to resolve this issue you will need to:

Upgrade Microsoft.AspNetCore.SignalR.Client to 1.0.1. This build is not yet available on NuGet, but we expect to be releasing it next week.
Upgrade Xamarin to the appropriate version:

Xamarin.Android <IP_ADDRESS>
Xamarin.iOS <IP_ADDRESS>
These will be included in:

Visual Studio 15.8 Preview 3 (not yet released)
Visual Studio for Mac 7.6 Preview 3 (also not yet released; will be available in the Alpha and Beta channels in VS for Mac)

I'm going to close this issue as we now believe all known Xamarin issues are resolved. If you are still encountering issues after updating to those versions, please file a new issue! Make sure to note the Xamarin versions you are using in the issue so we can accurately reproduce your environment.

The packages are now available on NuGet. At this time, the Visual Studio (Windows and Mac) updates are still not yet public.
Please note that additional dependencies may be required (two packages that SignalR references transitively need to be upgraded). See https://github.com/aspnet/Announcements/issues/305 for more detail.

I am able to build with just the 2.1.1 signalR client update without any update to Visual Studio. Have not tested sending messages but the project builds

I believe that is expected. The 1.0.1 patch fixes build-time issues but there are still some runtime issues that require the Xamarin fix. But hey, if it works for you, great! :)

@anurse there is a build-time issue when trying to build for a physical iPhone device. Something with the System.Memory. I'll let you know what the full error is. The only person with the iPhone just left the office

@anurse I saw the disclaimer you had written in the Xamarin folder in the samples and I wanted to let you know that at least for me it's not working with the most recent stable packages. I had written a new issue here https://github.com/aspnet/SignalR/issues/2518 . Apologies if it's a repeat of another issue. I just thought that it might be something different this time.

So while we wait for VS to get updated, how do we go about updating Xamarin manually as per item 3: https://github.com/aspnet/Announcements/issues/305

I don't believe the Xamarin versions are available other than through Visual Studio previews.

@anurse I updated to SignalR version 1.0.1 and it worked on iphone simulator debug mode ( I can't check on a real device as i don't have any)
On Android it gave me this error:
Unable to connect to the server with any of the available transports.
Setting SignalR on server
app.UseSignalR((HubRouteBuilder obj) =>
            {
                obj.MapHub<MessagingHub>("/messanger",(Microsoft.AspNetCore.Http.Connections.HttpConnectionDispatcherOptions obj) =>
                {
                    obj.Transports = Microsoft.AspNetCore.Http.Connections.HttpTransportType.WebSockets;
                });

            });

Here is the details of visual studio:
=== Visual Studio Community 2017 for Mac ===
Version 7.5.3 (build 7)
Installation UUID: 867dfddd-5059-4764-be12-3125347a8abf
Runtime:
Mono <IP_ADDRESS> (2017-12/ea8a24b1bbf) (64-bit)
GTK+ 2.24.23 (Raleigh theme)
Xamarin.Mac <IP_ADDRESS> (master / eeaeb7e6)
Package version: 510010057

=== NuGet ===
Version: <IP_ADDRESS>45
=== .NET Core ===
Runtime: /usr/local/share/dotnet/dotnet
Runtime Versions:
2.0.6
2.0.5
2.0.3
2.0.0
1.1.6
1.0.9
SDK: /usr/local/share/dotnet/sdk/2.1.101/Sdks
SDK Versions:
2.1.101
2.1.4
2.0.3
2.0.0
1.1.7
MSBuild SDKs: /Library/Frameworks/Mono.framework/Versions/5.10.1/lib/mono/msbuild/15.0/bin/Sdks
=== Xamarin.Profiler ===
Version: 1.6.2
Location: /Applications/Xamarin Profiler.app/Contents/MacOS/Xamarin Profiler
=== Apple Developer Tools ===
Xcode 9.4.1 (14161)
Build 9F2000
=== Xamarin.Mac ===
Version: <IP_ADDRESS> (Visual Studio Community)
=== Xamarin.iOS ===
Version: <IP_ADDRESS> (Visual Studio Community)
Hash: 64fece5f
Branch: d15-7
Build date: 2018-05-29 20:00:44-0400
=== Xamarin.Android ===
Version: <IP_ADDRESS> (Visual Studio Community)
Android SDK: /Users/kevin/Library/Developer/Xamarin/android-sdk-macosx
Supported Android versions:
2.3    (API level 10)
4.3    (API level 18)
4.4    (API level 19)
4.4.87 (API level 20)
5.0    (API level 21)
5.1    (API level 22)
6.0    (API level 23)
7.0    (API level 24)
7.1    (API level 25)
8.0    (API level 26)
8.1    (API level 27)
SDK Tools Version: 26.1.1
SDK Platform Tools Version: 28.0.0
SDK Build Tools Version: 28.0.0 rc1
Java SDK: /usr
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
Android Designer EPL code available here:
https://github.com/xamarin/AndroidDesigner.EPL
=== Xamarin Inspector ===
Version: 1.4.0
Hash: b3f92f9
Branch: master
Build date: Fri, 19 Jan 2018 22:00:34 GMT
Client compatibility: 1
=== Build Information ===
Release ID: 705030007
Git revision: 13cecd02aceddf29a1ed57b86f81c02994df1483
Build date: 2018-06-14 15:48:08-04
Xamarin addins: 7065de97cf22c9038fdc39dd627f2c30790fd8af
Build lane: monodevelop-lion-d15-7
=== Operating System ===
Mac OS X 10.13.5
Darwin 17.6.0 Darwin Kernel Version 17.6.0
Tue May  8 15:22:16 PDT 2018
root:xnu-4570.61.1~1/RELEASE_X86_64 x86_64
=== Enabled user installed addins ===
LiveXAML 1.3.31
Prism Template Pack 2.0.0
Gorilla Player <IP_ADDRESS>
Internet of Things (IoT) development (Preview) 7.5

Hey guys, just wanted to let you know that all is working for me again with VS Mac Version 7.6 Preview (7.6 build 1773) (Android and iOS) and VS Windows 15.7.4 (Android)

Android and UWP projects build ok, but for iOS i'M getting this error:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Xamarin\iOS\Xamarin.iOS.Common.targets(791,3): error : Failed to resolve "System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder" reference from "System.Threading.Tasks.Extensions, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51"
All my projects are referencing SignalR 1.0.1,  System.Threading.Tasks.Extensions version 4.5.1 and System.Runtime.CompilerServices.Unsafe version 4.5.1.
Visual Studio Professional 15.7.4
Xamarin iOS <IP_ADDRESS>

Is anyone see linking issues in Release Mode for Android? The debug version compiles fine.
Error		The "LinkAssemblies" task failed unexpectedly.
Java.Interop.Tools.Diagnostics.XamarinAndroidException: error XA2006: Could not resolve reference to 'System.Threading.ValueAwaiter1' (defined in assembly 'Microsoft.AspNetCore.Sockets.Client.Http, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60') with scope 'System.IO.Pipelines, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60'. When the scope is different from the defining assembly, it usually means that the type is forwarded. ---> Mono.Cecil.ResolutionException: Failed to resolve System.Threading.ValueAwaiter1
Visual Studio Professional 15.7.4
Xamarin.Android SDK   <IP_ADDRESS> (HEAD/dffc59120)

As said by @anurse  before, there is also a xamarin update required to get everything to work, Probably the upcoming xamarin updates will fix your problem.

I really hope so, but @anurse also said that SignalR 1.0.1 should fix build time problems

To clarify, it solves IL build-time issues, however iOS requires ahead-of-time native compilation and it will fail there.

Got it, will wait for Xamarin update.

I've updated to Visual Studio 2017 15.8 Preview 3 which includes Xamarin.Android <IP_ADDRESS> and Xamarin.iOS <IP_ADDRESS>, installed Microsoft.AspNetCore.SignalR.Client and Microsoft.AspNetCore.SignalR.Client.Core 1.0.1 and am still getting this error when trying to build my Android app on Xamarin Forms.

After updating to all the latest bits as suggested to fix the issue by @anurse , I was still having issue and the fix for me was to create a new project and copy files over. (was a pain but works after that)

Maybe delete all packages from project and reopen the project may be a quicker way to get all fresh libraries but didn't try it

@reznor244 did you also install the additional dependencies listed in https://github.com/aspnet/Announcements/issues/305 ?
@eopeter Hrm, I wouldn't have thought you'd have to recreate the project. I didn't have to do that, but I had a very simple test project. Glad it did work out in the end...

Can you provide you obj/project.assets.json file and the PackageReference nodes in your csproj? Please post them to a gist or something similar and link them as the files are quite large. Also note that these will include all Package IDs and Versions you are referencing so if there's any sensitive information in that, you should filter it out before posting it.

These are from a fresh test project I created to try to see if I could get it to build, so no sensitiveinfo.
TestSignalRClient.csproj: https://gist.github.com/reznor244/2f5bcac412060400c5b0119d75925f9a
TestSignalRClient.Android.csproj: https://gist.github.com/reznor244/e80bc2339dcb37f67f32a69e1c61ed9d
project.assets.json (from TestSignalRClient): https://gist.github.com/reznor244/798a3f1fc89dd98d2d5d51fb376fcee3

Hrm, I'm not able to reproduce this with our Xamarin.Forms client.
Can you push your test project up to a GitHub repo and open a new issue for this? I want to try reproducing this with exactly the same project you are. Please also include your Xamarin versions so I can compare them with the ones I'm using.

With 1.0.2 I get System.IO.FileNotFoundException: Could not load file or assembly 'System.Numerics.Vectors, Version=<IP_ADDRESS> on Android with Xamarin. The UWP Xamarin project works fine.

ok, I just saw the announcement and need to wait for 15.8 update to get it working.

15.8.0 Preview 4.0 is released

@marchanddesable there is already Preview 5, but I don't want to install a Preview, I want a stable version.

ok, the 15.8 Preview 5 works. So I wasted some time to figure this out.
@anurse
The docs are wrong until 15.8 gets out:

The ASP.NET Core SignalR .NET client can be used by Xamarin

Because of this statement I did not expect my issue.

Any update on this since 15.8.1 is out now? I don't want to update just yet because last time I did, Xamarin.iOS wasn't working at the time and I had to uninstall VS, resulting in losing my keystore.

@titonton 15.8.1 works for Android if I use packages.config. I can't speak about iOS.

I was able to use it with iOS on a shared project. I was unable to get it to work on .NET Standard 2.0 because mtouch would fail to link Systems.Threading.Tasks.Extensions 4.5.1 because of some reference issues (see xamarin-macos issue #4629). There may be a work around, but I stripped out the feature requiring SignalR (business decision to put the new feature on hold). Hopefully that is resolved in next update.

Remove the app.config from the project. It helped me for Xamarin.iOS and Xamarin.Andoird

Based on the info here aspnet/Announcements#305 I was hoping to finally get my Xamarin iOS client working with ASP.Net Core SignalR, but still no luck. I get an exception when the client tries to connect to the hub:
//  Connect to the SignalR hub.
string url = $"http://{DataService.HostName}:{DataService.MainPort.ToString()}/hub";
try
{
    MediaHubConnection = new HubConnectionBuilder().WithUrl(url).Build();
}
catch (Exception e)
{ // Handle exception }

Exception: A suitable constructor for type Microsoft.AspNetCore.SignalR.Client.HttpConnectionFactory could not be located. Ensure the type is concrete and services are registered for all parameters of a public constructor.

The code above works in the iPhone simulator, but crashes on the device itself.
I am using Visual Studio 15.8.0 with Xamarin iOS <IP_ADDRESS> on Windows 10; Visual Studio for Mac 7.6.1 Build 9 with Xamarin iOS <IP_ADDRESS> on the Mac. Latest released Nugets for AspNetCore SignalR (server and client).
Any help is highly appreciated.

Just to close the loop: more info here. Much thanks to @anurse for helping out.

@anurse Hey! Is there any way to use SignalR Client 1.0.0-preview1-final in Xamarin? Exactly this version is used on server and I can't affect this.
If I set linker behavior to Don't link then I'll get runtime exception:
Could not load type of field 'Microsoft.AspNetCore.Sockets.Client.ServerSentEventsTransport:_memoryPool' (0) due to: Could not resolve type with token 01000064 (from typeref, class/assembly System.Buffers.MemoryPool, System.IO.Pipelines, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60) assembly:System.IO.Pipelines, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60 type:System.Buffers.MemoryPool member:(null) signature:<none> after calling hubConnection.StartAsync(). There are no compile errors, though.
But if I use Link All I will get build time error:
Error MT2101: Can't resolve the reference 'System.Void System.Buffers.MemoryPool::.ctor()', referenced from the method 'System.Void Microsoft.AspNetCore.Sockets.Client.ServerSentEventsTransport::.cctor()' in 'System.IO.Pipelines, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60'. (MT2101) (Coinlion.iOS)
or with Link framework SDKs only:
error MT2002: Failed to resolve "System.IO.Pipelines.PipeReader" reference from "System.IO.Pipelines, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60"
There is part of my Link framework SDKs only build log with additional -v -v -v -v mtouch arguments (unrelated info removed):
https://gist.github.com/rs1t/4cb71af7750bb9c34a40a63105f5c776
And packages.config:
https://gist.github.com/rs1t/1fe3be9ee801a2d4858c400db43d8131
I have latest VS Mac and Xamarin versions (the issue was present with earlier versions as well):

=== Visual Studio Community 2017 for Mac ===
Version 7.6.7 (build 49)
Installation UUID: 82d8c3be-5d15-42ff-b578-d2b5bb3b8c97
Runtime:
Mono <IP_ADDRESS>1 (2018-02/4fe3280bba1) (64-bit)
GTK+ 2.24.23 (Raleigh theme)
Xamarin.Mac <IP_ADDRESS> (master / eeaeb7e6)
Package version: 512000301
=== NuGet ===
Version: <IP_ADDRESS>45
=== .NET Core ===
Runtime: /usr/local/share/dotnet/dotnet
Runtime Version: 2.1.2
SDK: /usr/local/share/dotnet/sdk/2.1.302/Sdks
SDK Version: 2.1.302
MSBuild SDKs: /Library/Frameworks/Mono.framework/Versions/5.12.0/lib/mono/msbuild/15.0/bin/Sdks
=== Xamarin.Profiler ===
Version: 1.6.3
Location: /Applications/Xamarin Profiler.app/Contents/MacOS/Xamarin Profiler
=== Apple Developer Tools ===
Xcode 10.0 (14320.25)
Build 10A255
=== Xamarin.Mac ===
Version: <IP_ADDRESS> (Visual Studio Community)
Hash: 1a6e2786
Branch:
Build date: 2018-08-28 00:12:06-0400
=== Xamarin.iOS ===
Version: <IP_ADDRESS> (Visual Studio Community)
Hash: 84552a46
Branch: xcode10
Build date: 2018-09-17 21:54:33-0400
=== Xamarin.Android ===
Version: <IP_ADDRESS> (Visual Studio Community)
Android SDK: /Users/ddrobotov/Library/Developer/Xamarin/android-sdk-macosx
Supported Android versions:
4.2 (API level 17)
4.4 (API level 19)
7.1 (API level 25)
8.1 (API level 27)
SDK Tools Version: 26.1.1
SDK Platform Tools Version: 28.0.1
SDK Build Tools Version: 27.0.3
Java SDK: /usr
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
Android Designer EPL code available here:
https://github.com/xamarin/AndroidDesigner.EPL
=== Xamarin Inspector ===
Version: 1.4.3
Hash: db27525
Branch: 1.4-release
Build date: Mon, 09 Jul 2018 21:20:18 GMT
Client compatibility: 1
=== Build Information ===
Release ID: 706070049
Git revision: 0b48ccfb376397678b3bc3653da2c6603d35357d
Build date: 2018-09-20 21:14:23+00
Build branch: release-7.6
Xamarin extensions: b25fd1e2b9a7859aff9536924e8edb6cbfb78637
=== Operating System ===
Mac OS X 10.13.6
Darwin 17.7.0 Darwin Kernel Version 17.7.0
Fri Jul  6 19:54:51 PDT 2018
root:xnu-4570.71.3~2/RELEASE_X86_64 x86_64

@rs1t
why not update the server and client to last stable version?

My backend dev say that there are problems with errors handling in new SignalR, for example instead of "user not found" we get "generic error" which causes problems with tests. And this app is not the only client, so updating may take a while.

Nope, the preview builds had critical issues that prevented them from working with Xamarin. We fixed this in the final client release.

My backend dev says that there are problems with error handling in new SignalR, for example instead of "user not found" we get "generic error" which causes problems with tests.

Please file these issues and we can look at resolving them.


Count for active channel only when window is not focused.

Make unread count of active channel disappear when the channel is focused. (issue #9)
Because I don't have test environment, I test only at Mac OSX.

Why did you add active to the arg for getElementsByClassName() ?
I checked with Mattermost 1.4 RC2, but active class was not contained in the separator.

Sorry, it's my mistake. I am ashamed of myself.
I fixed the mistake, and checked unread count of active channel appeared when it was not focused, and disappeared when it was focused.
But appeared again, after it was not focused again.
So, don't be care about previous commit.
I'll check this later ...

JFYI, circleci failed because apt-get failed to download zip in docker build. It's not your mistake.

If the app manages multiple teams, unread counts of active channel disappear at inactive tabs when it's focused.
I think we have to resolve this issue to add features of the PR.

I agree with you.
I don't have any idea how to count unread title for active channel from DOM.
I'm trying to count unread title from notification event of active channel.
But, this approach will make the application complex.
I wonder if there is another good way.

I changed to count unread message of active channel from the desktop notification event.
Then, check about belows at Mac OSX and windos 7.

Active channel badge disappear when the active channel is focused.
Active channel badge does not disappear when the another tab is focused.

Thanks a lot, however I want to merge #18 first. Because this PR makes large changes for code structure.

OK, I think so too.

@mid0111 @ttyniwa Could you check whether app performs as you expect?

ok. I'll check it.

Thank you for marge PR.
The unread count is appeared I expected.
However it is not the interest on this issue, I’m worried about the mention count was not disappeared when clicking on the application.

I fixed bugs, please see #12 for details.


Upgrade for Compat with Slate 0.27, Data fixes

Hey guys, here is my suggestion for an update to get to where we need to be for 0.27.
This also includes the data stuff that I PR'd before.  Can we talk about getting that in too?  I know at some point there was concern about using Object.assign instead of Data.merge
Let me know what you think

Thank you @YurkaninRyan 😄


Death screen

Describe your problem here.
I want to remove the black background from the death screen, making the stage still visible at the moment of death
Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
No response

I’m not sure if it’s possible with lua…
but source can easily do the trick.

How?


webRTC.getUserMedia() returns me some wierd array

Which platform(s) does your issue occur on?

Android

What type of device?

Physical device.

Version Numbers:

CLI: tns version 6.7.8
Cross-platform modules: 6.5.8
Runtime(s):
"tns-android": {
"version": "6.5.0"
}
"tns-ios": {
"version": "6.5.1"
}
Plugin(s):
{
"nativescript": {
"id": "org.nativescript.WebRTCTestApp",
"tns-android": {
"version": "6.5.0"
},
"tns-ios": {
"version": "6.5.1"
}
},
"description": "NativeScript Application",
"license": "SEE LICENSE IN ",
"repository": "",
"dependencies": {
"@nativescript/theme": "~2.3.0",
"nativescript-socketio": "^3.3.1",
"nativescript-videoplayer": "^4.2.1",
"nativescript-webrtc-plugin": "^2.0.0-alpha.22",
"tns-core-modules": "~6.5.0"
},
"devDependencies": {
"nativescript-dev-webpack": "~1.5.0"
},
"gitHead": "20a65d338ae8f8911087ab6615b89363f864b07b",
"readme": "NativeScript Application"
}

The problem:
My front camera pops up which helped me make sure that camera is started. I used webRTC.getUserMedia() to store the incoming mediastream into a variable. But it returns something which I am sure is not not even close to how mediastreams usually are. This is how it looks: [b5ee0bd9-bde8-4520-b9fd-60b719bf33bb:A=1:V=1]
How to reproduce:
On press of a button I check for WebRTC.hasPermissions(). once it fulfils the hasPermission, I invoke webRTC.getUserMedia()
code Involved:
var WebRTC = require('nativescript-webrtc-plugin').WebRTC
WebRTC.init();
const webRTC = new WebRTC({
enableAudio:true,
enableVideo:false,
iceServers : [
{ 'url': 'stun:stun.l.google.com:19302' },
{ 'url': 'xyz', 'username': 'xyz', 'credential': 'xyz' }
]
})
onTap(){
if(!WebRTC.hasPermissions()){
try{
WebRTC.requestPermissions();
}catch(e){
console.log(e)
}
}
let localstream = await webRTC.getUserMedia();
console.log(localstream)
}

I need to add a deprecated to that class because the v2 way is the only classes that's being supported so please try the v2 demo located here

I need to add a deprecated to that class because the v2 way is the only classes that's being supported so please try the v2 demo located here

Thank You for your quick reply. I tried and used the following code:
public setUpUserMedia() {
const video = new Map();
video.set('facingMode', 'user');
this.cameraPosition = 'user';
video.set('width', 960);
video.set('height', 720);
const constraints = new TNSRTCMediaStreamConstraints(true, video);
TNSRTCMediaDevices.getUserMedia(constraints)
.then(mediaStream => {
this.localStream = mediaStream;
this.localView.srcObject = mediaStream;
})
.catch(error => {
console.log(error);
});
}
I did a console.log for mediaStream. I get the following output:
{
"_stream": {}
}
Am I missing some thing

That’s fine it just need to be used by the correct class/methods

That’s fine it just need to be used by the correct class/methods

Thank you once again, it works flawless


Add a way to report Diagnostic

Hi,
I found myself in need to report Diagnostics of my own creation inside a source generator.
How do you like this code to be part of this project?
public static class IncrementalValuesProviderExtensions
{
    /// <summary>
    ///
    /// </summary>
    /// <param name="source"></param>
    /// <param name="initializationContext"></param>
    /// <typeparam name="T"></typeparam>
    /// <returns></returns>
    public static IncrementalValuesProvider<T> SelectAndReportDiagnostics<T>(
        this IncrementalValuesProvider<ResultWithDiagnostics<T>> source,
        IncrementalGeneratorInitializationContext initializationContext
    ) where T : notnull
    {
        initializationContext.RegisterSourceOutput(source
                .Where(static x => x.Diagnostics is { Length: > 0 }),
            (context, result) =>
            {
                foreach (var diagnostic in result.Diagnostics)
                {
                    context.ReportDiagnostic(diagnostic);
                }
            });

        return source
            .Where(static x => x.Result is not null)
            .Select(static (x, _) => x.Result!);
    }
}

public record struct ResultWithDiagnostics<T>(
    T? Result,
    ImmutableArray<Diagnostic> Diagnostics
) where T : notnull
{
    public ResultWithDiagnostics(T? result) : this(result, ImmutableArray<Diagnostic>.Empty)
    {
    }

    public static ResultWithDiagnostics<T> Empty => new();
}

public static class ResultWithDiagnosticsExtensions
{
    public static ResultWithDiagnostics<T> ToResultWithDiagnostics<T>(this T? result) where T : notnull => new(result);

    public static ResultWithDiagnostics<T> ToResultWithDiagnostics<T>(this T? result, ImmutableArray<Diagnostic> diagnostics) where T : notnull => new(result, diagnostics);
}

Yes, of course, I will gladly accept PR regarding this.
We need to consider whether your class is suitable for caching. There is a special EquatableArray here that can be compared.
Are you familiar with how caching works in Source Generators?

I added it and indicated you as co-author: https://github.com/HavenDV/H.Generators.Extensions/commit/187d7e46c8c4b2494aac6197566a52bf44e2723d

Thank you for the release.
It works without T : notnull also, the only difference is that you need to specify ResultWithDiagnostics<T?> instead of ResultWithDiagnostics<T> but it's not an issue. Thank you again.

I know that caching is heavily used in source generators, but I was not aware that ImmutableArray is not enough


Smokers and Blast Furnaces not allowing villagers to change profession

This mod makes it impossible to convert villagers into Butchers or Armorers as it replaces the smokers and blast furnaces

Same problem here

Same problem here


Bump vcr to 6.1 for ruby 3.1 finalizer fix

Fix the rspec finalizer throwing an ArgumentError on ruby 3.1
Ref:

https://github.com/vcr/vcr/pull/907

Finished in 10.73 seconds (files took 4.2 seconds to load)
152 examples, 0 failures

Randomized with seed 15029

/home/grare/adam/.gem/ruby/3.1.0/bin/rspec: warning: Exception in finalizer #<Proc:0x00007fb226bec708 /home/grare/adam/.gem/ruby/3.1.0/gems/vcr-5.1.0/lib/vcr/library_hooks/webmock.rb:36 (lambda)>
/home/grare/adam/.gem/ruby/3.1.0/gems/vcr-5.1.0/lib/vcr/library_hooks/webmock.rb:36:in `block in global_hook_disabled_requests': wrong number of arguments (given 1, expected 0) (ArgumentError)

@miq-bot cross-repo-tests /all

Only cross-repo failure is ui-service which always fails, this is good to go


orthography

#2
The current transcription with orthography.tsv is very good, but there are some mistakes that I don't see how to overcome without a rulebased transcriber, e.g.:

line 1243 is the only non-BIPA conform line, since in gagáhaftjan > ^ g agá h a f t j a n $ > g a ɣ á h a ɸ t j a n the rule á > a never gets applied.
in line 10 abrs > a β r s doesn't mark the syllabic <r̥> since the r gets clustered to <abr>, so the rule for <brs> doesn't apply.

Not only do these rules cancel each other out but also if I wanted to explicitly mention all these transformations in orthography.tsv, i.e. to hardcode every word (which I tried) then the clts-validation is failing since 1 word = 1 grapheme.
I think it would be nice if I could somehow plug in a third-party transcriber and check those results for clts-conformity. I've added the column IPA in a post-processing step for now. Those are generated with the epitran-library and I've included the transcription rules in the folder etc for more transparency. I like those transcriptions more, but of course that's not worth much if it can't be checked against the clts data.

Our procedure so far is to say: if there's a case that is applied less than 100 times, we can also spell it out. Why not write the whole word to your profile in Grapheme and then in IPA the segmented one?

People give too much power to rules. It may seem comforting to have a rule that solves a case that occurs five times in your data, but our approach is: if it is not essential for the theory, but to curate the data, it is better to be explicit and add some extra lines, rather than break one's head over finding a way to make a very complex approach to change these five cases to something else. We think this gains transparency ACROSS datasets.

Thanks for the explanation, seems I forgot to look at the big picture, but now it's clear.

Why not write the whole word to your profile in Grapheme and then in IPA the segmented one

I don't know why I haven't thought about this. Tried it out and it worked.


fix: python bindings optional dependency organization

Thanks! It looks like Pola.rs requires PyArrow too. Should we pull that into both the Pandas and Polars dependencies, and remove it as its own thing?