Demo project to try WebRTC native bindings in .net MAUI

Overview

MAUI.WebRTC.Demo

Demo project to try WebRTC native bindings in .net MAUI. There are two projects with Xamarin bindings

Binding libraries are based on https://github.com/dmariogatto/xamarin-webrtc

Status

Android

Android working perfectly without any modifications.

iOS

iOS ApiDefinitions.cs was modified in order to complie:

  • AutoGeneratedName = true - removed
  • [iOS(10, 0)] - commented
  • new RTCVideoCodecInfo[] SupportedCodecs { get; } - new added

Build of WebRtc.iOS on Windows with mac build host succeeds but outputs small 304KB size dll with all bindings and framework separately in "WebRtc.iOS.resources" directory, MAUI app doesn't see it's classes. Compilation of MAUI app with frameworks from both sources fails with:

C:\Program Files\dotnet\packs\Microsoft.iOS.Windows.Sdk\15.4.414\tools\msbuild\iOS\Xamarin.iOS.Common.After.targets(327,3): warning MT1302: Could not extract the native library 'WebRTC.framework' from '/Users/username/Library/Caches/Xamarin/mtbs/builds/MauiSampleApp/609541de2501516f3dc9d3e7c3ac45d11100f8ea426a3434038258fdadaa92b7/obj/Debug/net6.0-ios/ios-arm64/linker-cache/WebRTC.framework.zip'. Please ensure the native library was properly embedded in the managed assembly (if the assembly was built using a binding project, the native library must be included in the project, and its Build Action must be 'ObjcBindingNativeLibrary').

C:\Program Files\dotnet\packs\Microsoft.iOS.Windows.Sdk\15.4.414\tools\msbuild\iOS\Xamarin.iOS.Common.After.targets(327,3): error IL7000: An error occured while executing the custom linker steps. Please review the build log for more information.

C:\Program Files\dotnet\packs\Microsoft.iOS.Windows.Sdk\15.4.414\tools\msbuild\iOS\Xamarin.iOS.Common.After.targets(327,3): error MT0140: File '/Users/username/Library/Caches/Xamarin/mtbs/builds/MauiSampleApp/609541de2501516f3dc9d3e7c3ac45d11100f8ea426a3434038258fdadaa92b7/obj/Debug/net6.0-ios/ios-arm64/linker-cache/WebRTC.framework/WebRTC' is not a valid framework.

C:\Program Files\dotnet\packs\Microsoft.iOS.Windows.Sdk\15.4.414\tools\msbuild\iOS\Xamarin.iOS.Common.After.targets(327,3): error MT2342: The linker step 'Extract Binding Libraries' failed during processing: File '/Users/username/Library/Caches/Xamarin/mtbs/builds/MauiSampleApp/609541de2501516f3dc9d3e7c3ac45d11100f8ea426a3434038258fdadaa92b7/obj/Debug/net6.0-ios/ios-arm64/linker-cache/WebRTC.framework/WebRTC' is not a valid framework.

C:\Program Files\dotnet\packs\Microsoft.iOS.Windows.Sdk\15.4.414\tools\msbuild\iOS\Xamarin.iOS.Common.After.targets(368,3): error MSB3371: The file "obj\Debug\net6.0-ios\ios-arm64\linked\Link.semaphore" cannot be created. Could not find a part of the path 'C:\Users\username\Documents\Projects\WebRtc\src\MauiSampleApp\obj\Debug\net6.0-ios\ios-arm64\linked\Link.semaphore'.

Feel free to suggest any solutions or create PR's from forks. I will get back here time to time and try to fix iOS bindings or check if it was fixed by .net team.

iOS issue seems to be fixed - xamarin/xamarin-macios#15289

You might also like...
A native, lightweight and secure time-based (TOTP) & counter-based (HOTP) password client built for iOS
A native, lightweight and secure time-based (TOTP) & counter-based (HOTP) password client built for iOS

A native, lightweight and secure time-based (TOTP) & counter-based (HOTP) password client built for iOS Built by Tijme Gommers – Buy me a coffee via P

CI Example Project
CI Example Project

BookStore 👉 한글 버전 See new releases and search for programming books from IT Bookstore API This is a sample app to practice using Result type, stubbin

MVVM project to show AQI of cities via web socket

Air Quality Monitoring Application Swift project with JSON parsing using codable About the application The app consists of live realtime data from the

iOS Project Manager Client
iOS Project Manager Client

08-iOS-Project-Manager-Client 프로젝트 매니저 STEP 1 프로젝트 할일 리스트 기능구현 UI구현방식 : 코드 아키텍쳐 : ProjectManagerViewController : NavigationViewController위에 StackView(

Grpc example project for swift

How to gRPC on Swift Projects This file aims to guide you to gRPC implementation on your swift project. Installing the Protobuf Compiler Open Terminal

Little project I wrote a while ago I decided to clean up and upload.

ImageSearch About The project uses the Pixabay (https://pixabay.com/) API to show images relating to entered text. The app is built using an MVVM arch

ADVANCED APP DESIGN The main goal of this mini project is to inspire you on what we can accomplish with the SwiftUI framework.
ADVANCED APP DESIGN The main goal of this mini project is to inspire you on what we can accomplish with the SwiftUI framework.

Restart-App.0.2 ADVANCED APP DESIGN The main goal of this mini project is to inspire you on what we can accomplish with the SwiftUI framework. COMPLEX

EasyImplementationAlamoFire - An iOS project to demonstrate the usage of Alamofire in an efficient and organised way.

EasyImplementationAlamoFire Tutorial to demonstrate an efficient way of handling the APIs structure for your iOS Applications. Prerequisites Swift 5 X

iOS client for the Brewfactory project - brew your own beer
iOS client for the Brewfactory project - brew your own beer

BrewMobile iOS client for the Brewfactory project. Read the stories of upgrading BrewMobile to ReactiveCocoa & Swift on AllTheFlow. What is this? App

Owner
null
ZeroMQ Swift Bindings for iOS, macOS, tvOS and watchOS

SwiftyZeroMQ - ZeroMQ Swift Bindings for iOS, macOS, tvOS and watchOS This library provides easy-to-use iOS, macOS, tvOS and watchOS Swift bindings fo

Ahmad M. Zawawi 60 Sep 15, 2022
Shawn Frank 2 Aug 31, 2022
Request adapter for URL requests from "MovieLister" demo app (Swift for Good book, a chapter by Ben Scheirman)

RequestAdapter Request adapter for URL requests from "MovieLister" demo app (Swift for Good book, a chapter by Ben Scheirman) The code is taken from:

Mihaela Mihaljevic Jakic 0 Nov 22, 2021
Http - Demo for Http Layer

http Example To run the example project, clone the repo, and run pod install fro

null 0 Jan 24, 2022
Access Xcode Server API with native Swift objects.

Xcode Server SDK Use Xcode Server's API with native Swift objects. First brought to you in Buildasaur, now in an independent project. This is an unoff

Buildasaurs 401 Dec 29, 2022
Access the native iOS / macOS reminders (get, update, delete) in TiDev / Titanium.

Titanium iOS Reminders API Access the native iOS reminders (get, update, delete) in TiDev / Titanium. Requirements The NSRemindersUsageDescription pri

Hans Knöchel 5 Nov 28, 2021
Native ios app to download tiktoks localy made in swift with SwiftUI

sequoia Native ios app to download tiktoks localy made in swift with SwiftUI without external dependencies. features save video localy view saved vide

fleur 9 Dec 11, 2022
Impervious is a privacy and security-focused browser with native DANE support and a decentralized p2p light client.

Impervious iOS The first browser with support for native DNS-Based Authentication of Named Entities (DANE) with true downgrade protection, and the fir

Impervious Inc 25 Jun 15, 2022
Beacon is a privacy and security-focused browser with native DANE support and a decentralized p2p light client.

Beacon iOS The first browser with support for native DNS-Based Authentication of Named Entities (DANE) with true downgrade protection, and the first b

Impervious Inc 25 Jun 15, 2022
Swift implementation of WalletConnect v.2 protocol for native iOS applications

Wallet Connect v.2 - Swift Swift implementation of WalletConnect v.2 protocol for native iOS applications. Requirements iOS 13 XCode 13 Swift 5 Usage

WalletConnect 142 Jan 4, 2023