我已经使用Swift创建了一个CocoaTouch Framework,并希望将其导入Xamarin.iOS app中。以下是我参考this blog
遵循的步骤1)使用以下命令生成API定义
sharpie bind -sdk iphoneos12.1 /MyFirstFramework.framework/Headers/MyFirstFramework-Swift.h
2)添加了本地参考
3)在Xamarin.iOS应用程序(使用了框架)中添加了以下Swift 4软件包。
当我在设备或模拟器上构建并运行该应用程序时,它崩溃了。崩溃日志如下
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 app做错的事情。
编辑1
我已经添加了缺少的软件包libswiftos,但应用程序不会崩溃。现在的问题是,在执行代码时,框架为Print
属性返回null,而应该返回硬编码文本"Returned by MyFirstFramework"