2

I have created binding library successfully, it is initialized properly in Xamarin.iOS app, but at specific point, the app is crashing. I tried to implement the same on XCode, it is crashing also, but the issue has been fixed by enabling the option Embedded content contains Swift Code = true as per this answer.

So How to enable same option in Xamarin?

Moamen Naanou
  • 1,683
  • 1
  • 21
  • 45

1 Answers1

2

The use of Swift frameworks and inclusion of the Swift support libs are not officially supported in the Xamarin build process and thus you have to manually bundle the relevant Swift support libraries into your Xamarin.iOS app.

Note: You have to make sure you include the correct version of those libraries.

User Flash3001 on Github has created Nugets/packages for the Swift frameworks

Swift 4

Libraries:

https://www.nuget.org/packages/Xamarin.Swift4.Accelerate/ https://www.nuget.org/packages/Xamarin.Swift4.ARKit/ https://www.nuget.org/packages/Xamarin.Swift4.AssetsLibrary/ https://www.nuget.org/packages/Xamarin.Swift4.AVFoundation/ https://www.nuget.org/packages/Xamarin.Swift4.CallKit/ https://www.nuget.org/packages/Xamarin.Swift4.CloudKit/ https://www.nuget.org/packages/Xamarin.Swift4.Contacts/ https://www.nuget.org/packages/Xamarin.Swift4.Core/ https://www.nuget.org/packages/Xamarin.Swift4.CoreAudio/ https://www.nuget.org/packages/Xamarin.Swift4.CoreData/ https://www.nuget.org/packages/Xamarin.Swift4.CoreFoundation/ https://www.nuget.org/packages/Xamarin.Swift4.CoreGraphics/ https://www.nuget.org/packages/Xamarin.Swift4.CoreImage/ https://www.nuget.org/packages/Xamarin.Swift4.CoreLocation/ https://www.nuget.org/packages/Xamarin.Swift4.CoreMedia/ https://www.nuget.org/packages/Xamarin.Swift4.Darwin/ https://www.nuget.org/packages/Xamarin.Swift4.Dispatch/ https://www.nuget.org/packages/Xamarin.Swift4.Foundation/ https://www.nuget.org/packages/Xamarin.Swift4.GameplayKit/ https://www.nuget.org/packages/Xamarin.Swift4.GLKit/ https://www.nuget.org/packages/Xamarin.Swift4.HomeKit/ https://www.nuget.org/packages/Xamarin.Swift4.MapKit/ https://www.nuget.org/packages/Xamarin.Swift4.MediaPlayer/ https://www.nuget.org/packages/Xamarin.Swift4.Metal/ https://www.nuget.org/packages/Xamarin.Swift4.MetalKit/ https://www.nuget.org/packages/Xamarin.Swift4.ModelIO/ https://www.nuget.org/packages/Xamarin.Swift4.Intents/ https://www.nuget.org/packages/Xamarin.Swift4.ObjectiveC/ https://www.nuget.org/packages/Xamarin.Swift4.OS/ https://www.nuget.org/packages/Xamarin.Swift4.Photos/ https://www.nuget.org/packages/Xamarin.Swift4.QuartzCore/ https://www.nuget.org/packages/Xamarin.Swift4.RemoteMirror/ https://www.nuget.org/packages/Xamarin.Swift4.SceneKit/ https://www.nuget.org/packages/Xamarin.Swift4.SIMD/ https://www.nuget.org/packages/Xamarin.Swift4.SpriteKit/ https://www.nuget.org/packages/Xamarin.Swift4.SwiftOnoneSupport/ https://www.nuget.org/packages/Xamarin.Swift4.UIKit/ https://www.nuget.org/packages/Xamarin.Swift4.Vision/ https://www.nuget.org/packages/Xamarin.Swift4.WatchKit/ https://www.nuget.org/packages/Xamarin.Swift4.XCTest/

Swift 3

https://www.nuget.org/packages/Xamarin.Swift3.AssetsLibrary/ https://www.nuget.org/packages/Xamarin.Swift3.AVFoundation/ https://www.nuget.org/packages/Xamarin.Swift3.CallKit/ https://www.nuget.org/packages/Xamarin.Swift3.CloudKit/ https://www.nuget.org/packages/Xamarin.Swift3.Contacts/ https://www.nuget.org/packages/Xamarin.Swift3.Core/ https://www.nuget.org/packages/Xamarin.Swift3.CoreAudio/ https://www.nuget.org/packages/Xamarin.Swift3.CoreData/ https://www.nuget.org/packages/Xamarin.Swift3.CoreGraphics/ https://www.nuget.org/packages/Xamarin.Swift3.CoreImage/ https://www.nuget.org/packages/Xamarin.Swift3.CoreLocation/ https://www.nuget.org/packages/Xamarin.Swift3.CoreMedia/ https://www.nuget.org/packages/Xamarin.Swift3.Darwin/ https://www.nuget.org/packages/Xamarin.Swift3.Dispatch/ https://www.nuget.org/packages/Xamarin.Swift3.Foundation/ https://www.nuget.org/packages/Xamarin.Swift3.GameplayKit/ https://www.nuget.org/packages/Xamarin.Swift3.GLKit/ https://www.nuget.org/packages/Xamarin.Swift3.HomeKit/ https://www.nuget.org/packages/Xamarin.Swift3.MapKit/ https://www.nuget.org/packages/Xamarin.Swift3.Intents/ https://www.nuget.org/packages/Xamarin.Swift3.ObjectiveC/ https://www.nuget.org/packages/Xamarin.Swift3.OS/ https://www.nuget.org/packages/Xamarin.Swift3.Photos/ https://www.nuget.org/packages/Xamarin.Swift3.QuartzCore/ https://www.nuget.org/packages/Xamarin.Swift3.RemoteMirror/ https://www.nuget.org/packages/Xamarin.Swift3.SceneKit/ https://www.nuget.org/packages/Xamarin.Swift3.SIMD/ https://www.nuget.org/packages/Xamarin.Swift3.SpriteKit/ https://www.nuget.org/packages/Xamarin.Swift3.SwiftOnoneSupport/ https://www.nuget.org/packages/Xamarin.Swift3.UIKit/ https://www.nuget.org/packages/Xamarin.Swift3.WatchKit/ https://www.nuget.org/packages/Xamarin.Swift3.XCTest/

SushiHangover
  • 73,120
  • 10
  • 106
  • 165
  • Thanks, where shall I add the required nugets? in Xamarin.iOS or in Binding Library project? – Moamen Naanou Dec 11 '17 at 06:07
  • @MoamenNaanou In the `Xamarin.iOS` **application** project – SushiHangover Dec 11 '17 at 06:12
  • After adding the required library, the app is crashing after installation on iPhone simulator immediately, and error on VS is only `The app has been terminated.` – Moamen Naanou Dec 11 '17 at 06:34
  • @MoamenNaanou Have you tried on a physical device? I know that those libraries include the simulator versions as Apple has *separate* fat libraries for `armv7 armv7s arm64` and `i386 x86_64`. Otherwise I would post a new issue on that GitHub project... – SushiHangover Dec 11 '17 at 06:58
  • Yeah Actually I tried both physical device and simulator. It is weird, because before adding the nuget libs, the app was working properly but on specific point it was crashing, now after adding the nuget libs, it is crashing immediately after initialization, and the most weird point that I tried to add the binding library + nuget libs in empty project, and it is initialized properly! – Moamen Naanou Dec 11 '17 at 07:02
  • @MoamenNaanou `I tried to add the binding library + nuget libs in empty project, and it is initialized properly` No sure I understand... so your Swift framework is working in a new application project but not your original one? – SushiHangover Dec 11 '17 at 07:08