xamarin / xamarin-macios

.NET for iOS, Mac Catalyst, macOS, and tvOS provide open-source bindings of the Apple SDKs for use with .NET managed languages such as C#
Other
2.44k stars 508 forks source link

How to integrate xcframework with a Xamarin iOS project by creating a binding project. #14413

Open Atamanam opened 2 years ago

Atamanam commented 2 years ago

Can you please help me with documentation on how to integrate xcframework with a Xamarin iOS project by creating a binding project.

Steps to Reproduce

  1. I have a third party app which has 11 xcframeworks in the Xcode project, i am looking to integrate that in Xamarin iOS project by creating a binding project.

Expected Behavior

  1. Able to create a binding project by integrating multiple xcframework & importing that in Xamarin iOS project.

Actual Behavior

  1. No proper documentation on how to integrate multiple xcframework & importing that in Xamarin iOS project.

Environment

=== Visual Studio Community 2019 for Mac ===

Version 8.10.19 (build 2)
Installation UUID: bfd7ee1a-beff-4233-940b-b73a89cac548
    GTK+ 2.24.23 (Raleigh theme)
    Xamarin.Mac 6.18.0.23 (d16-6 / 088c73638)

    Package version: 612000162

=== Mono Framework MDK ===

Runtime:
    Mono 6.12.0.162 (2020-02/2ca650f1f62) (64-bit)
    Package version: 612000162

=== Roslyn (Language Service) ===

3.10.0-4.21269.26+029847714208ebe49668667c60ea5b0a294e0fcb

=== NuGet ===

Version: 5.9.0.7134

=== .NET SDK (x64) ===

SDK: /usr/local/share/dotnet/sdk/5.0.405/Sdks
SDK Versions:
    5.0.405
    5.0.402
    5.0.401
    5.0.301
    5.0.203
    5.0.103
    5.0.101
    3.1.416
    3.1.414
    3.1.413
    3.1.410
    3.1.409
    3.1.406
    3.1.404
    3.1.102
    3.1.101
    3.0.101
    2.1.701
    2.1.700
    2.1.505
    2.1.503
    2.1.302
    2.1.4
    2.0.3
    2.0.0
MSBuild SDKs: /Applications/Visual Studio.app/Contents/Resources/lib/monodevelop/bin/MSBuild/Current/bin/Sdks

=== .NET Core Runtime ===

Runtime: /usr/local/share/dotnet/dotnet
Runtime Versions:
    5.0.14
    5.0.11
    5.0.10
    5.0.7
    5.0.6
    5.0.3
    5.0.1
    3.1.22
    3.1.20
    3.1.19
    3.1.16
    3.1.15
    3.1.12
    3.1.10
    3.1.2
    3.1.1
    3.0.1
    2.1.23
    2.1.15
    2.1.14
    2.1.12
    2.1.11
    2.1.9
    2.1.7
    2.1.2
    2.0.5
    2.0.3
    2.0.0

=== .NET Core 3.1 SDK ===

SDK: 3.1.416

=== .NET 5.0 SDK ===

SDK: 5.0.405

=== Xamarin.Profiler ===

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

=== Updater ===

Version: 11

=== Apple Developer Tools ===

Xcode 13.2.1 (19586)
Build 13C100

=== Xamarin.Mac ===

Version: 8.6.0.3 (Visual Studio Community)
Hash: caa899d24
Branch: d17-1
Build date: 2022-01-16 21:16:56-0500

=== Xamarin.iOS ===

Version: 15.6.0.3 (Visual Studio Community)
Hash: caa899d24
Branch: d17-1
Build date: 2022-01-16 21:16:56-0500

=== Xamarin Designer ===

Version: 16.11.0.60
Hash: 56f9b80b0
Branch: remotes/origin/d16-11
Build date: 2021-12-15 02:44:16 UTC

=== Xamarin.Android ===

Not Installed

=== Eclipse Temurin JDK ===

Java SDK: Not Found

=== Android SDK Manager ===

Version: 16.10.0.13
Hash: 1b81df5
Branch: remotes/origin/d16-10
Build date: 2021-11-12 01:17:32 UTC

=== Android Device Manager ===

Version: 16.10.0.15
Hash: 89dcc0b
Branch: remotes/origin/d16-10
Build date: 2021-11-12 01:17:52 UTC

=== Build Information ===

Release ID: 810190002
Git revision: 632b6ca654e2733a685bfc9c6a0686e0a317092b
Build date: 2022-02-09 13:38:14-05
Build branch: release-8.10

=== Operating System ===

Mac OS X 11.6.4
Darwin 20.6.0 Darwin Kernel Version 20.6.0
    Wed Jan 12 22:22:42 PST 2022
    root:xnu-7195.141.19~2/RELEASE_X86_64 x86_64

Build Logs

Example Project (If Possible)

dodikk commented 1 year ago

@Atamanam how about this guide? Is it an official one? https://github.com/kinfey/AMapMAUIControls/blob/main/tutorial/en/01.iOSBinding.md

dodikk commented 1 year ago

I am unable to build the iOS7 project with native ios binding

The sample project is here: https://github.com/dodikk/themis-maui-prototype

Here is the error:

/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk/16.2.1024/targets/Xamarin.Shared.Sdk.targets(1225,3): error : Undefined symbols for architecture arm64:
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk/16.2.1024/targets/Xamarin.Shared.Sdk.targets(1225,3): error :   "_OBJC_CLASS_$_TSCell", referenced from:
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk/16.2.1024/targets/Xamarin.Shared.Sdk.targets(1225,3): error :       objc-class-ref in registrar.o
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk/16.2.1024/targets/Xamarin.Shared.Sdk.targets(1225,3): error :   "_OBJC_CLASS_$_TSCellContextImprint", referenced from:
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk/16.2.1024/targets/Xamarin.Shared.Sdk.targets(1225,3): error :       objc-class-ref in registrar.o
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk/16.2.1024/targets/Xamarin.Shared.Sdk.targets(1225,3): error :   "_OBJC_CLASS_$_TSCellSeal", referenced from:
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk/16.2.1024/targets/Xamarin.Shared.Sdk.targets(1225,3): error :       objc-class-ref in registrar.o
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk/16.2.1024/targets/Xamarin.Shared.Sdk.targets(1225,3): error :   "_OBJC_CLASS_$_TSCellToken", referenced from:
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk/16.2.1024/targets/Xamarin.Shared.Sdk.targets(1225,3): error :       objc-class-ref in registrar.o
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk/16.2.1024/targets/Xamarin.Shared.Sdk.targets(1225,3): error :   "_OBJC_CLASS_$_TSCellTokenEncryptedData", referenced from:
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk/16.2.1024/targets/Xamarin.Shared.Sdk.targets(1225,3): error :       objc-class-ref in registrar.o
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk/16.2.1024/targets/Xamarin.Shared.Sdk.targets(1225,3): error :   "_OBJC_CLASS_$_TSCellTokenEncryptedResult", referenced from:
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk/16.2.1024/targets/Xamarin.Shared.Sdk.targets(1225,3): error :       objc-class-ref in registrar.o
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk/16.2.1024/targets/Xamarin.Shared.Sdk.targets(1225,3): error :   "_OBJC_CLASS_$_TSComparator", referenced from:
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk/16.2.1024/targets/Xamarin.Shared.Sdk.targets(1225,3): error :       objc-class-ref in registrar.o
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk/16.2.1024/targets/Xamarin.Shared.Sdk.targets(1225,3): error :   "_OBJC_CLASS_$_TSKeyGen", referenced from:
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk/16.2.1024/targets/Xamarin.Shared.Sdk.targets(1225,3): error :       objc-class-ref in registrar.o
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk/16.2.1024/targets/Xamarin.Shared.Sdk.targets(1225,3): error :   "_OBJC_CLASS_$_TSMessage", referenced from:
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk/16.2.1024/targets/Xamarin.Shared.Sdk.targets(1225,3): error :       objc-class-ref in registrar.o
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk/16.2.1024/targets/Xamarin.Shared.Sdk.targets(1225,3): error :   "_OBJC_CLASS_$_TSSession", referenced from:
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk/16.2.1024/targets/Xamarin.Shared.Sdk.targets(1225,3): error :       objc-class-ref in registrar.o
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk/16.2.1024/targets/Xamarin.Shared.Sdk.targets(1225,3): error :   "_OBJC_CLASS_$_TSSessionTransportInterface", referenced from:
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk/16.2.1024/targets/Xamarin.Shared.Sdk.targets(1225,3): error :       objc-class-ref in registrar.o
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk/16.2.1024/targets/Xamarin.Shared.Sdk.targets(1225,3): error :   "_TSGenerateSym
    0 Warning(s)
    1 Error(s)