这是我尝试过的最复杂的事情,在花更多时间之前,我想知道是否还有滚雪球的机会。
我正在尝试实现使用第三方服务的功能。公司中的其他人正在使用一项特定的服务,因此我很乐意使用该服务。但是,该服务仅以Android和Swift的库形式提供SDK。我没有可以使用的Xamarin Forms SDK或公共Web API。由于我仍在处理建立帐户的过程,因此其中一些仍在进行中,所以我还没有实际的SDK。所以我不知道我是否有.a或.framework。
所以我想,“好吧,您不能将库绑定到Xamarin吗?”我认为我可以对其进行测试,并在完成时手头有SDK。我开始使用iOS,因为Android的情况似乎更简单。我不了解Swift或Obj-C,所以我花了几天的时间在Swift上戳书,我有足够的信心编写足够的代码来尝试一些事情。然后我感到非常头疼。
如果您正在使用Obj-C并拥有要绑定的库的源代码,则进行绑定似乎很容易。或者至少这就是Xamarin文档所涵盖的内容。 “下载文件!创建一个新项目!用这种方式构建它,运行此工具,调整这些文件,完成!”很复杂,但是合理。
关于绑定Swift .a文件的讨论并不多。我不知道这是否意味着您不能这样做,或者它是否像绑定.framework一样复杂。对于框架,似乎需要付出巨大的努力。您必须以一种特殊的方式来构建它,使用一种工具将所有架构组合到一个文件中,使用一些Xamarin工具生成一些代码,创建一个绑定库(其中必须包含我可能不知道的依赖项,因为我将黑色包装为黑色,框SDK),然后进行操作,因为Swift运行时库并没有到达应该使它们全部正常运行的位置。我发现可能有2篇博客文章详细描述了该过程,有一篇评论说“这太难了”,他不得不调整一些文件,我不确定自己是否会再没有几篇文章。
所以我想,“好吧,如果我用Obj-C包裹它呢?”我并没有花很多时间,但是似乎我正在阅读的内容表明,Swift代码必须在我正在使用的库中用@objc
专门标记其内容。我不确定是否是这样,所以可能无济于事。
所以。要使这个成为实际问题:
我是否可以:
.framework
项目。