Я создал CocoaTouch Framework с помощью Swift и хочу импортировать его в приложение Xamarin.iOS . Ниже приведены шаги, которые я выполнил со ссылкой на этот блог
1) Сгенерированные APIDопределения с помощью следующей команды
sharpie bind -sdk iphoneos12.1 /MyFirstFramework.framework/Headers/MyFirstFramework-Swift.h
2) Добавлена родная ссылка
3) Добавлены следующие пакеты Swift 4 в приложение Xamarin.iOS (которое использует фреймворк)
Когда я собираю и запускаю приложение на устройстве или симуляторе, оно вылетает. Журналы сбоев, как показано ниже
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
Результат в Visual Studio