Xamarin.iOS本机绑定的问题-CocoaTouch框架

时间:2019-01-08 08:12:33

标签: ios visual-studio cocoa-touch xamarin.ios swift4.2

我已经使用Swift创建了一个CocoaTouch Framework,并希望将其导入Xamarin.iOS app中。以下是我参考this blog

遵循的步骤

1)使用以下命令生成API定义

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

2)添加了本地参考

enter image description here

3)在Xamarin.iOS应用程序(使用了框架)中添加了以下Swift 4软件包。 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 app做错的事情。


编辑1

我已经添加了缺少的软件包libswiftos,但应用程序不会崩溃。现在的问题是,在执行代码时,框架为Print属性返回null,而应该返回硬编码文本"Returned by MyFirstFramework"

MyFirstFramework.framework中的快速代码 Swift code in MyFirstFramework.framework

Visual Studio中的结果 Result in Visual Studio

0 个答案:

没有答案