mono / monodevelop

MonoDevelop is a cross platform .NET IDE
http://www.monodevelop.com
2.84k stars 1.02k forks source link

Can't deploy F# Xamarin.iOS app through Xamarin Live Player #3728

Closed knocte closed 6 years ago

knocte commented 6 years ago

Trying to deploy this app through Xamarin Live Player: https://github.com/knocte/gwallet/tree/frontend

I get these errors:

Running /Users/andres/Documents/Code/gwalletFRONTEND/src/GWallet.Frontend.XamForms.iOS/bin/iPhone/Debug/GWallet.Frontend.XamForms.iOS.exe…
Start (GWallet.Frontend.XamForms.iOS, Andrew’s iPhone Player (unreachable), ).
Attempting connection to debug address: 0.0.0.0:37847.
'AddressNotAvailable' socket error while trying to connect directly to the device.
Connected to: 10.26.42.112:49904.
Deploying /Users/andres/Documents/Code/gwalletFRONTEND/src/GWallet.Frontend.XamForms.iOS/GWallet.Frontend.XamForms.iOS.fsproj…
Got device info: Andrew’s iPhone Player (iOS) @ 0.0.0.0:37847
Synchronizing files…
Building and running…
Built with 4 messages.
(1,1): error: File '/private/var/containers/Bundle/Application/282E9C0A-05DB-43B9-97AD-9FBD3BCE68E2/Player.app/.monotouch-64/FSharp.Core.optdata' not found alongside FSharp.Core
(1,1): error: Error opening binary file '/private/var/containers/Bundle/Application/282E9C0A-05DB-43B9-97AD-9FBD3BCE68E2/Player.app/.monotouch-64/FSharp.Core.dll': File '/private/var/containers/Bundle/Application/282E9C0A-05DB-43B9-97AD-9FBD3BCE68E2/Player.app/.monotouch-64/FSharp.Core.optdata' not found alongside FSharp.Core
(1,1): error: Problem reading assembly 'FSharp.Core, Version=3.98.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a': Error opening binary file '/private/var/containers/Bundle/Application/282E9C0A-05DB-43B9-97AD-9FBD3BCE68E2/Player.app/.monotouch-64/FSharp.Core.dll': File '/private/var/containers/Bundle/Application/282E9C0A-05DB-43B9-97AD-9FBD3BCE68E2/Player.app/.monotouch-64/FSharp.Core.optdata' not found alongside FSharp.Core
(1,1): error: internal error: BuildFrameworkTcImports: no successful import of /private/var/containers/Bundle/Application/282E9C0A-05DB-43B9-97AD-9FBD3BCE68E2/Player.app/.monotouch-64/FSharp.Core.dll

VS bug #557895, VS bug #577270

olegoid commented 6 years ago

Hi @knocte,

Thanks for the report. I also can reproduce the problem.

@praeclarum @jamesmontemagno could you take a look?

praeclarum commented 6 years ago

From the errors, it looks like the "optdata" - one of the two files needed by the compiler - is missing.

dsyme commented 6 years ago

Recent versions of F# and FSharp.Core should never require optdata, it is integrated into the dll. We should work out why an old compiler or old Fsharp.Core is being used here.

dsyme commented 6 years ago

You may be able to workaround the problem by deploying the optdata and sigdata as part of your application

knocte commented 6 years ago

We should work out why an old compiler or old Fsharp.Core is being used here.

Version information:

Visual Studio Community 2017 for Mac
Version 7.3.3 (build 5)
Installation UUID: fd06ff65-69de-47ae-8b99-ddf257032b7c
Runtime:
    Mono 5.4.1.7 (2017-06/e66d9abbb27) (64-bit)
    GTK+ 2.24.23 (Raleigh theme)

    Package version: 504010007

NuGet
Version: 4.3.1.4445

.NET Core
Runtime: /usr/local/share/dotnet/dotnet
Runtime Version: 2.0.0
SDK: /usr/local/share/dotnet/sdk/2.0.0/Sdks
SDK Version: 2.0.0
MSBuild SDKs: /Library/Frameworks/Mono.framework/Versions/5.4.1/lib/mono/msbuild/15.0/bin/Sdks

Xamarin.Profiler
Version: 1.6.0
Location: /Applications/Xamarin Profiler.app/Contents/MacOS/Xamarin Profiler

Xamarin.Android
Version: 8.1.3.0 (Visual Studio Community)
Android SDK: /Users/andres/Library/Developer/Xamarin/android-sdk-macosx
    Supported Android versions:
        7.1 (API level 25)

SDK Tools Version: 26.1.1
SDK Platform Tools Version: 26.0.2
SDK Build Tools Version: 26.0.3

Java SDK: /usr
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

Android Designer EPL code available here:
https://github.com/xamarin/AndroidDesigner.EPL

Apple Developer Tools
Xcode 9.2 (13772)
Build 9C40b

Xamarin.Mac
Version: 4.0.0.215 (Visual Studio Community)

Xamarin.iOS
Version: 11.6.1.3 (Visual Studio Community)
Hash: f70a1348
Branch: xcode9.2
Build date: 2017-12-18 14:47:16-0500

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: 703030005
Git revision: b1c2982e201e71ef758866c9ade05f253a8c6f47
Build date: 2017-12-21 11:04:40-05
Xamarin addins: f397ddfbacfb39e60c9cc8d9e410f73faf8c2cbc
Build lane: monodevelop-lion-d15-5

Operating System
Mac OS X 10.13.1
Darwin 17.2.0 Darwin Kernel Version 17.2.0
    Fri Sep 29 18:27:05 PDT 2017
    root:xnu-4570.20.62~3/RELEASE_X86_64 x86_64

Enabled user installed addins
Internet of Things (IoT) development (Preview) 7.1
knocte commented 6 years ago

Also:

$ mono /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/fsharp/fsc.exe --help
Microsoft (R) F# Compiler version 4.1
praeclarum commented 6 years ago

@knocte I have a fix in the pipeline. I'll work to make sure it's included in the next update. Unfortunately, XAML files are not working, but code-based UIs work great.

@dsyme yes the compiler service I'm using is quite old these days. We can discuss updating it.

nosami commented 6 years ago

image

knocte commented 6 years ago

How can I check if I have a version that includes this fix? I don't know what does "1.5" refers to.

My VS4Mac version details are:

Visual Studio Community 2017 for Mac
Version 7.4 (build 1033)
Installation UUID: fd06ff65-69de-47ae-8b99-ddf257032b7c
Runtime:
    Mono 5.8.0.129 (2017-10/835a98d8559) (64-bit)
    GTK+ 2.24.23 (Raleigh theme)

    Package version: 508000129

NuGet
Version: 4.3.1.4445

.NET Core
Runtime: /usr/local/share/dotnet/dotnet
Runtime Versions:
    2.0.5
    2.0.0
SDK: /usr/local/share/dotnet/sdk/2.1.4/Sdks
SDK Versions:
    2.1.4
    2.0.0
MSBuild SDKs: /Library/Frameworks/Mono.framework/Versions/5.8.0/lib/mono/msbuild/15.0/bin/Sdks

Xamarin.Profiler
Version: 1.6.1
Location: /Applications/Xamarin Profiler.app/Contents/MacOS/Xamarin Profiler

Apple Developer Tools
Xcode 9.2 (13772)
Build 9C40b

Xamarin.Mac
Version: 4.2.0.20 (Visual Studio Community)

Xamarin.iOS
Version: 11.8.0.20 (Visual Studio Community)
Hash: 1c6f300e
Branch: d15-6
Build date: 2018-02-07 23:42:40-0500

Xamarin.Android
Version: 8.2.0.15 (Visual Studio Community)
Android SDK: /Users/andres/Library/Developer/Xamarin/android-sdk-macosx
    Supported Android versions:
        7.1 (API level 25)

SDK Tools Version: 26.1.1
SDK Platform Tools Version: 26.0.2
SDK Build Tools Version: 26.0.3

Java SDK: /usr
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, 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: 704001033
Git revision: 053991068f3c88497d3e5cc52fe7fdf57c28b62f
Build date: 2018-02-28 05:02:28-05
Xamarin addins: cc3283953e0af0b8bfab1bdfdf847d9e403c4606
Build lane: monodevelop-lion-d15-6

Operating System
Mac OS X 10.13.1
Darwin 17.2.0 Darwin Kernel Version 17.2.0
    Fri Sep 29 18:27:05 PDT 2017
    root:xnu-4570.20.62~3/RELEASE_X86_64 x86_64

Enabled user installed addins
Internet of Things (IoT) development (Preview) 7.1
nosami commented 6 years ago

@knocte I think it must be the version number of the Live Player extension. I'm currently on v1.4.25 and I still get the missing optdata exception message on build.

knocte commented 6 years ago

And how to know what version do I have? it doesn't seem to be listed in the version information I pasted above.

nosami commented 6 years ago

It's in the extension manager.

image

knocte commented 6 years ago

Ah cool! And I go to that menu from Visual Studio Community -> Extensions.

I'm on 1.3.131, hopefully it comes soon to stable! Cheers

jamesmontemagno commented 6 years ago

It isn't the extension, it is just the actual App in TestFlight that you need.

knocte commented 6 years ago

it is just the actual App in TestFlight that you need.

Excuse my ignorance, but what's the "App in TestFlight"?

nosami commented 6 years ago

@knocte TestFlight is an application that you can download on your phone. Once installed, you can use it to download the beta versions of Live Player. You need to register first though.

For Android devices without Google Play the Xamarin Live Player is available through HockeyApp distribution. Additionally, early preview builds for Android can be installed directly from Google Play by opting in to the open beta program

Xamarin Live Player for iOS We encourage users to join the Xamarin Live Player app iOS Preview to enjoy quick access to the latest improvements through TestFlight.

nosami commented 6 years ago

@knocte It didn't work for me with the standard F# XF template though. I see compilation errors in the Live Player output window even though the app builds and works fine in the IDE.

Building and running…
Built with 3 messages.
/Users/jason/Projects/fsblk/iOS/AppDelegate.fs(1,1): error: The type 'App' is not compatible with the type 'Application'
/Users/jason/Projects/fsblk/iOS/AppDelegate.fs(1,1): error: Type constraint mismatch. The type 
    'App'    
is not compatible with type
    'Application'    

/Users/jason/Projects/fsblk/fsblk/App.xaml.fs(1,1): error: Two type definitions named 'App' occur in namespace 'fsblk' in two parts of this assembly
jamesmontemagno commented 6 years ago

Can you uploaded your app. We were using VS Mac as VS 2017 seems to have some issues.

jamesmontemagno commented 6 years ago

I was testing with VS for Mac with the latest version of the live player. I can try to upload my sample app. Would like to test your app though and know if it was with VSM or VS 2017

knocte commented 6 years ago

and know if it was with VSM or VS 2017

It was with VSM, as my second comment states.

Would like to test your app though

It's opensource. As my 1st comment states, you can clone the repo, switch to the frontend "branch" and build the main sln, then you can try deploying it.

aaronfranke commented 6 years ago

How do you install Xamarin Live Player on MonoDevelop? Or is it only for the version branded as "Visual Studio for Mac"?