Проблема с собственным связыванием Xamarin.iOS - CocoaTouch Framework - PullRequest
0 голосов
/ 08 января 2019

Я создал CocoaTouch Framework с помощью Swift и хочу импортировать его в приложение Xamarin.iOS . Ниже приведены шаги, которые я выполнил со ссылкой на этот блог

1) Сгенерированные APIDопределения с помощью следующей команды

sharpie bind -sdk iphoneos12.1 /MyFirstFramework.framework/Headers/MyFirstFramework-Swift.h

2) Добавлена ​​родная ссылка

enter image description here

3) Добавлены следующие пакеты Swift 4 в приложение Xamarin.iOS (которое использует фреймворк) enter image description here

Когда я собираю и запускаю приложение на устройстве или симуляторе, оно вылетает. Журналы сбоев, как показано ниже

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Termination Description: DYLD, Library not loaded: @rpath/libswiftos.dylib | Referenced from: /private/var/containers/Bundle/Application/27F3E785-3CE9-4293-9045-A0E643163F6A/SHApp.app/Frameworks/libswiftMetal.dylib | Reason: image not found

Затем я в проекте Xcode Framework установил Always Embed Swift Standard Libraries = Yes и включил этот фреймворк в Xamarin. После этого приложение Xamarin.iOS не аварийно завершает работу, но не выполняет никаких действий при вызове методов Framework

SHLib.MyFirstFramework.Launch();
Console.Write(SHLib.MyFirstFramework.Print);

Мне нужна помощь в понимании того, что я могу делать неправильно для приложения Xamarin.iOS .


Редактировать 1

Я добавил отсутствующий пакет libswiftos, а приложение не вылетает. Теперь проблема в том, что при выполнении кода платформа возвращает нуль для свойства Print, тогда как предполагается, что он возвращает жестко закодированный текст "Returned by MyFirstFramework"

Swift-код в MyFirstFramework.framework Swift code in MyFirstFramework.framework

Результат в Visual Studio Result in Visual Studio

...